Skip to main content

Psifr

PyPI version Documentation Status Pytest codecov status DOI

Advanced analysis and visualization of free recall data in Python.

Features:

  • A large library of advanced analyses, tested against published benchmarks
  • Flexible analysis customization and plotting
  • Tools for exploratory analysis of large datasets
  • Extensive automated testing to ensure analysis correctness
  • Based around a simple and flexible table-based data format
  • Comprehensive documentation and user guide

The name Psifr is pronounced "cipher". It's taken from Psi, in reference to the field of psychology, and FR for free recall.

free recall visualization
Raster plot showing each recall in a free recall experiment. Color indicates serial position; yellow items were presented late in the list, while purple items were presented at the beginning. Magenta squares indicate intrusions of items that were not presented during the study list.

Installation

You can install the latest stable version of Psifr using pip:

pip install psifr

You can also install the development version directly from the code repository on GitHub:

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

Quickstart

To plot a serial position curve for a sample dataset:

from psifr import fr
df = fr.sample_data('Morton2013')
data = fr.merge_free_recall(df)
recall = fr.spc(data)
g = fr.plot_spc(recall)

See the user guide for detailed documentation on importing and analyzing free recall datasets.

Also see the Jupyter notebooks for more analysis examples:

Importing data

Generally the best way to get your data into shape for analysis in Psifr is to create a CSV (or TSV) file with one row for each event in the experiment, including study events (i.e., item presentations) and all recall attempts (including repeats and intrusions). See importing data for details.

A number of archival free recall datasets are available in the Matlab-based EMBAM format. Data archives for a number of studies are available from the UPenn and Vanderbilt memory labs. If you have data in EMBAM format, use matlab/frdata2table.m to convert your data struct to a table with standard format. Then use the Matlab function writetable to write a CSV file which can then be read into Python for analysis.

Citation

If you use Psifr, please cite the paper:

Morton, N. W., (2020). Psifr: Analysis and visualization of free recall data. Journal of Open Source Software, 5(54), 2669, https://doi.org/10.21105/joss.02669

Publications using Psifr

Hong, B., Barense, M. D., Pace-Tonna, C. A. & Mack, M. L. (2022). Emphasizing associations from encoding affects free recall at retrieval. Proceedings of the Annual Meeting of the Cognitive Science Society 453–460. https://escholarship.org/uc/item/2gw1s36q

Related projects

EMBAM

Analyses supported by Psifr are based on analyses implemented in the Matlab toolbox EMBAM.

pybeh

pybeh is a direct Python port of EMBAM that supports a wide range of analyses.

Quail

Quail runs automatic scoring of free recall data, supports calculation and plotting of some common free recall measures, and has tools for measuring the "memory fingerprint" of individuals.

Contributing to Psifr

Contributions are welcome to suggest new features, add documentation, and identify bugs. See the contributing guidelines for an overview.

Metadata

Release files for psifr 0.10.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for psifr 0.10.1
File Size Uploaded
psifr-0.10.1.tar.gz 5.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for psifr 0.10.1
File Interpreter ABI Platform
psifr-0.10.1-py3-none-any.whl Python 3 none any Details

Total release size: 11.6 MB

Release files / psifr-0.10.1.tar.gz

Download URL psifr-0.10.1.tar.gz
Size 5.8 MB
Tags Source
SHA-256 checksum
How to use checksums
e7b4aeb1889e8f47a6f8a6fec4bc52b04c4541f6e27743392959774b8b309ff4
BLAKE2b-256 checksum
How to use checksums
fe3702d02cce11a934f5024814e0064e49d5eb26502d14942a859edc7641a0b9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release files / psifr-0.10.1-py3-none-any.whl

Download URL psifr-0.10.1-py3-none-any.whl
Size 5.8 MB
Tags Python 3
SHA-256 checksum
How to use checksums
cd22befa61d5d6cbcb3fef970d5c1f7eda5b9acd94618cac08095dc9a271f562
BLAKE2b-256 checksum
How to use checksums
d1d2f40f44465ef714a70715895cb1ae5ca5c6826133d5cbe091c1bb1ec49a45
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.7

Release history Release notifications | RSS feed

This release

0.10.1 This release

2 release files

0.10.0

2 release files

0.9.3

2 release files

0.9.2

2 release files

0.9.0

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.4

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.0

2 release files

0.2.1

2 release files

0.1.0

3 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page