Skip to content

mortonne/cymr

Repository files navigation

cymr

PyPI version Documentation Status Build Status codecov DOI

Package for fitting and simulating free recall data. Includes a fast implementation of the context maintenance and retrieval (CMR) model using Cython.

See the website for full documentation.

Installation

For the latest stable version:

pip install cymr

To get the development version:

pip install git+https://github.com/mortonne/cymr

To install for development, clone the repository and run:

python install -e .

This will set links to the package modules so that you can edit the source code and have changes be reflected in your installation.

Quickstart

Fit the context maintenance and retrieval model (CMR) to sample data:

from cymr import fit, cmr
# load sample data
data = fit.sample_data('Morton2013_mixed').query('subject <= 3')

# define model weights
n_items = 768
param_def, patterns = cmr.config_loc_cmr(n_items)
param_def.set_fixed(
    T=0.1, Lfc=0.15, Lcf=0.15, Afc=0, Acf=0, Dfc=0.85, Dcf=0.85, 
    P1=0.2, P2=2, B_start=0.3, B_rec=0.9, X1=0.001, X2=0.25
)
param_def.set_free(B_enc=(0, 1))

# fit the model to sample data
model = cmr.CMR()
results = model.fit_indiv(data, param_def, patterns=patterns, tol=0.1)

See the documentation for details.

Unit tests

First, install extra packages needed for testing:

pip install .[test]

To run all tests (from the main repository directory)

pytest

Benchmark

To run a speed benchmark test, first install snakeviz (pip install snakeviz). To run likelihood calculation with a sample dataset and then display an html report:

./benchmark