Skip to Main Content

Software from the lab

PsychRNN - Training recurrent neural network models on cognitive tasks

PsychRNN is an accessible, flexible, and extensible Python package for training RNNs on cognitive tasks. The package designed for accessibility, for researchers to define tasks and train RNN models using only Python and NumPy without requiring knowledge of deep learning software. The training backend is based on TensorFlow and is readily extensible for researchers with TensorFlow knowledge to develop projects with additional customization.

Primary developers: Daniel Ehrlich, Jasmine Stone



Associated publication: Ehrlich*, Stone* et al. (2020) PsychRNN: an accessible and flexible Python package for training recurrent neural network models on cognitive tasks. bioRxiv.

gemmr - Generative modeling of multivariate relationships

gemmr calculates required sample sizes for Canonical Correlation Analysis (CCA) and Partial Least Squares (PLS). In addition, it can generate synthetic datasets for use with CCA and PLS, and provides functionality to run and examine CCA and PLS analyses. It also provides a Python wrapper for PMA, a sparse CCA implementation.

Primary developer: Markus Helmer



Associated publication: Helmer, et al. (2020) On stability of Canonical Correlation Analysis and Partial Least Squares with application to brain-behavior associations. bioRxiv.

PyDDM - A flexible framework for simulating and fitting generalized drift-diffusion models

PyDDM is a simulator and modeling framework for generalized drift-diffusion models (GDDM or DDM), with a focus on cognitive neuroscience.

Key features include:

  • Fast solutions to generalized drift-diffusion models, allowing data-fitting with a large number of parameters
  • Fokker-Planck equation solved numerically using Crank-Nicolson and backward Euler methods for likelihood fitting on the full distribution
  • Arbitrary functions for parameters drift rate, noise, bounds, and initial position distribution
  • Arbitrary loss function and fitting method for parameter fitting
  • Multiprocessor support
  • Optional GUI for debugging and gaining an intuition for different models
  • Convenient and extensible object oriented API allows building models in a component-wise fashion
  • Verified accuracy of simulations using software verification techniques

Primary developers: Maxwell Shinn and Norman Lam



Associated publication: Shinn*, Lam* & Murray (2020) A flexible framework for simulating and fitting generalized drift-diffusion models. eLife 9:e56938.

BrainSMASH - Brain surrogate maps with autocorrelated spatial heterogeneity

BrainSMASH (Brain Surrogate Maps with Autocorrelated Spatial Heterogeneity) is a Python-based computational platform for statistical testing of spatially autocorrelated brain maps. At the heart of BrainSMASH is the ability to simulate surrogate brain maps with spatial autocorrelation that is matched to spatial autocorrelation in a target brain map. Additional utilities are provided for users using Connectome Workbench style surface-based neuroimaging files.

Primary developer: Joshua B. Burt



Associated publication: Burt, et al. (2020) Generative modeling of brain maps with spatial autocorrelation. NeuroImage 220:117038.