Behavioral toolbox

From Computational Memory Lab
Jump to: navigation, search

Download Here: github


On this page, you can download the most current release of the behavioral toolbox, which is now maintained by the Vanderbilt Computational Memory Lab. The University of Pennsylvania Computational Memory Lab now maintains a Python version of these tools, accessible here: github

This release also comes with a detailed readme.txt file, and each function has detailed documentation. Nonetheless, there are some points about the toolbox that are worth reiterating here.

This toolbox has three main directories:

  • paradigms: core analysis functions, which calculate the following per participant:
    1. p_rec.m: probability of recall.
    2. spc.m: serial position curve.
    3. pfr.m: probability of first recall as a function of serial position.
    4. lag_crp.m: conditional response probability as a function of lag.
    5. pli.m: number of prior-list intrusions recalled.
    6. xli.m: number of extra-list intrusions recalled.
    7. temp_fact.m: temporal clustering score.
    8. dist_fact.m: distance clustering score, based on a distance matrix provided by the user (most commonly, the distance matrix is an LSA matrix so that this function can be used to determine semantic clustering).
  • utils: tools to transform and clean data into input formats for analysis functions.
  • helpers: many of these functions are just used internally for the functions in the Analyses directory, but some particularly useful functions are described in more detail below.


Most of the Analyses functions expect the associated information from a free recall study to be in a particular format, and provide output in a particular format as well.


In a free recall study, each trial has certain information associated with it: the items presented, the items recalled, the corresponding subject.

Combined across all such trials, one can generate matrices where each row represents a trial, each column represents a recalled item. Specifically, column i represents output position i, and if no item was recalled for that output position, it is simply left as 0. Two main ways of representing these recalls are to index recalled items by the serial position for that presented list: integers from 1 to the list-length (referred to as recalls_matrix in toolbox functions). Another way is to index items by their number in the word pool (rec_itemnos). The latter allows for more detailed information to be extracted, such as if any items recalled were prior-list intrusions.

Corresponding to each trial row, one can also generate matrices with each of the items presented according to their number in the wordpool (pres_itemnos).

Critical to most functions is a vector where each row corresponds to the number of the subject for that trial (subjects).

To facilitate analyses of extra-list and prior-list intrusions, many functions expect as input a matrix with intrusion information (intrusions). Briefly, an item recalled as an extra-list intrusion is indexed as -1, and a prior-list intrusion is indexed by a positive integer indicating the number of lists back from which it occurred. For the specifics of how this matrix can be created and is designed, see helpers/matrixops/make_intrusions.m.


All of the functions in this release output a number or a set of numbers for each participant, depending on the analysis. When the analysis outputs one number per participant (e.g. p_rec.m), the output is a vector, where each row corresponds to the number for one participant. The numbers are listed according to the ascending order of subject numbers. When the analysis outputs more than one number per subject, the rows still correspond to the ascending order of subject numbers, and the columns index the different values for the analysis for that one subject (e.g. the columns indicate probability of recall at ascending serial positions for the output of spc.m).


The plot functions have been designed especially to take the output of functions from the Analyses folder of the Behavioral Toolbox Release 1, and turn them into lovely plots. Simply pass in the numbers from those functions, and admire the figures.

  • plot/plot_crp.m plots the output of lag_crp.m
  • plot/plot_spc.m plots the output of spc.m OR pfr.m


Many of the functions in the Helpers subdirectories are internal functions meant to supplement the functions provided in the Analyses folder. For Release 1, only the functions in the Masks directory and the function make_intrusions.m in the Matrixops folder are designed to be explicitly called upon by the user. make_intrusions.m was described above in the Inputs section of this file, and Masks are described in more detail below.


Masks are matrices with logical elements used to 'mask' out particular recalled and/or presented items. For instance, suppose we are only interested in recall of the odd-numbered items. One could simply create a mask the same size as pres_itemnos, where all even-numbered items are false, and all odd-numbered items are true. One could then create a similar mask for the recalled items, and then pass these two masks into the appropriate analysis function.

NOTE: Many functions make default masks if they are not provided by the user.

Click here to visit the Data_Archive.