Script Author: Katja Borchert, Ph.D. (katjab@millisecond.com), Millisecond
Created: October 27, 2016
Last Modified: September 14, 2026 by K. Borchert (katjab@millisecond.com), Millisecond
Script Copyright © Millisecond Software, LLC
This script implements the Face Name Associative Memory Exam (FNAME) test; a test able to detect subtle memory changes associated with biomarker evidence of preclinical Alzheimer Disease (AD). The implemented procedure is based on the published procedure in Rentz et al (2011/2013).
Rentz et al (2013). Promising developments in neuropsychological approaches for the detection of preclinical Alzheimer’s disease: a selective review. Alzheimer's Research & Therapy 2013, 5:58
Rentz DM, Amariglio RE, Becker JA, Frey M, Olson LE, Frishe K, Carmasin J, Maye JE, Johnson KA, Sperling RA: Face–name associative memory performance is related to amyloid burden in normal elderly. Neuropsychologia 2011, 49:2776–2783.
7 minutes
from Rentz et al, 2011, p.2777: The FNAME requires the subject to remember 16 unfamiliar face-name pairs and 16 face-occupation pairs for a total of 32 cross-modal paired associates to be remembered. The test has an initial study phase as well as free recall and cued recall trials.
The FNAME includes both “free” and “cued” recall trials at immediate and delayed intervals.
(1) script pairs images with names and occupations by their respective itemnumbers (default) ( the pairings can be randomized by changing paramters.randomPairings)
(2) FaceStudy: presents 4 trials of 4 randomly selected faces for initial familiarization. Each trial lasts 8s.
(3) FaceNameStudy: presents 4 trials of 4 randomly selected faces with assigned names for name-face association study. Each trial lasts 20s.
(4) Initial Learning of Names (ILN): presents all 16 faces, one at a time (faces are randomly selected) and collects written name input.
(5) FaceOccupationStudy: presents 4 trials of 4 randomly selected faces with assigned occupations for name-occupation association study. Each trial lasts 20ss.
(6) Initial Learning of Occupations (ILO): presents all 16 faces, one at a time (faces are randomly selected) and collects written occupation input
(7) Free Recall of Names (FRN): provides a textbox and collects written input of recalled names.
(8) Free Recall of Occupations (FRO): provides a textbox and collects written input of recalled occupations.
(9) Cued Recall of both Names and Occupations (CR): presents all 16 faces, one at a time (faces are randomly selected) and collects written name and occupation input
(10) Break (default: 30minutes)
(11) 30 min Delayed Free Recall of Names (FRN30): provides a textbox and collects written input of recalled names after a delay of 30min (default)
(12) 30 min Delayed Free Recall of Occupations (FRO30): provides a textbox and collects written input of recalled occupations after a delay of 30min (default)
(13) 30 min Delayed Cued Recall of both Names and Occupations (CR30): presents all 16 faces, one at a time (faces are randomly selected) and collects written name and occupation input after a delay of 30min
Recall Tasks:
Algorithm to estimate number of recalled words:
In general this algorithm uses the number of a specific word separator (here: comma) to estimate the number of words in between the separators.
The algorithm uses several steps to clean up the text input to ensure as much as possible that only single commas
are used as word separators. It also adds a comma before the first entry and after the last entry.
Steps:
(1) textbox response is stored in values.Recall as lower case letters (Example: values.Recall = "anna; britta; claire") (note: there is a space AND a ; after britta and anna)
(2) values.Recall replaces 7 types of possible word separator symbols (e.g. ";", " ") with a comma (Example: values.Recall = "anna,,britta,,claire")
(3) values.Recall adds a comma to the first item (Example: values.Recall = ",anna,,britta,,claire")
(3) values.Recall replaces all consecutive commas with a single comma (Example: values.Recall = ",anna,britta,claire")
(4) if values.Recall does not end in a comma at this point, this comma is added (Example: values.Recall = ",anna,britta,claire,")
(5) the length of the variable values.Recall is stored in variable values.RecallLength (Example: values.RecallLength = 20)
(6) a second variable (values.reducedRecall) deletes all commas in values.Recall (Example: values.reducedRecall = "annabrittaclaire" => length: 16)
(7) the word count estimate = length of values.Recall* - length of values.reducedRecall - 1 (extra comma) (Example: estimate = 20 - 16 - 1 = 3)
•with length = number of characters
the recall scoring algorithms implemented in this script depend on participants
(a) using the implemented separators
(b) make no spelling mistakes
(c) don't use phonetically similar words (e.g. Clare instead of Claire)
Manual checks of the raw data might be necessary to adjust the scores (e.g. check what is stored under values.intrusionOther)
16 female faces (ethnicly diverse) taken from the internet (the original study does not specify gender) - can be replaced under section Editable Stimuli
16 names - can be replaced under section Editable Stimuli
16 occupations - can be replaced under section Editable Stimuli
not original
provided by Millisecond - can be replaced under section Editable Instructions
File Name: facenameassocitivememoryexam_summary*.iqdat
| Name | Description |
|---|---|
| startDate | Date the session was run |
| startTime | Time the session was run |
| subjectId | Participant ID |
| groupId | Group number |
| sessionId | Session number |
| inquisit.version | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| elapsedTime | Session duration in ms |
| completed | 0 = Test was not completed 1 = Test was completed |
Cued Recall |
|
| iln | Number of correctly recalled names in the ILN condition (initial learning score for names) |
| ilo | Number of correctly recalled occupations in the ILO condition |
| crn | Number of correctly recalled names in the CRN condition |
| cro | Number of correctly recalled occupations in the CRO condition |
| crn30 | Number of correctly recalled names in the CRN30 condition |
| cro30 | Number of correctly recalled occupations in the CRO30 condition |
Free Recall Dependent Measures |
|
| responseFRN | Stores the entered freely recalled names in the FRN condition (freely recall all the names = FRN) |
| countCorrectFRN | Counts the number of correctly recalled names in the FRN condition (freely recall all the names = FRN) |
| wordEstimateFRN | Stores the estimate of the number of names recalled in the FRN condition (freely recall all the names = FRN) |
| intrusionOtherFRN | Stores all the recalled names that were not part of the original list ( might also contain misspelled names!) in the FRN condition |
| responseFRO | Stores the entered freely recalled occupations in the FRO condition (freely recall all the occupations = FRO) |
| countCorrectFRO | Counts the number of correctly recalled occupations in the FRO condition (freely recall all the occupations = FRO) |
| wordEstimateFRO | Stores the estimate of the number of occupations recalled in the FRO condition (freely recall all the occupations = FRO) |
| intrusionOtherFRO | Stores all the recalled occupations that were not part of the original list ( might also contain misspelled occupations!) in the FRO condition |
| responseFRN30 | Stores the entered freely recalled names in the FRN30 condition (freely recall all the names with 30 min delay = FRN30) |
| countCorrectFRN30 | Counts the number of correctly recalled names in the FRN30 condition (freely recall all the names with 30 min delay = FRN30) |
| wordEstimateFRN30 | Stores the estimate of the number of names recalled in the FRN30 condition (freely recall all the names with 30 min delay = FRN30) |
| intrusionOtherFRN30 | Stores all the recalled names that were not part of the original list ( might also contain misspelled names!) in the FRN30 condition |
| responseFRO30 | Stores the entered freely recalled occupations in the FRO30 condition (freely recall all the occupations with 30 min delay = FR030) |
| countCorrectFRO30 | Counts the number of correctly recalled occupations in the FRO30 condition (freely recall all the occupations with 30 min delay = FR030) |
| wordEstimateFRO30 | Stores the estimate of the number of occupations recalled in the FRO30 condition (freely recall all the occupations with 30 min delay = FR030) |
| intrusionOtherFRO30 | Stores all the recalled occupations that were not part of the original list ( might also contain misspelled occupations!) in the FRO30 condition |
File Name: facenameassocitivememoryexam_raw*.iqdat
| Name | Description |
|---|---|
| date | Date the session was run |
| time | Time the session was run |
| subject | Participant ID |
| group | Group number |
| session | Session number |
| build | Inquisit version number |
| computer.platform | Device platform: win | mac |ios | android |
| computer.touch | 0 = device has no touchscreen capabilities; 1 = device has touchscreen capabilities |
| computer.hasKeyboard | 0 = no external keyboard detected; 1 = external keyboard detected |
| blockcode | The name the current block (built-in Inquisit variable) |
| blocknum | The number of the current block (built-in Inquisit variable) |
| trialcode | The name of the currently recorded trial (built-in Inquisit variable) |
| trialnum | The number of the currently recorded trial (built-in Inquisit variable) trialnum is a built-in Inquisit variable; it counts all trials run even those that do not store data to the data file. |
Variables That Store Face-Name-Occupation Information Of The Currently Presented Pic(S) |
|
| face1-face4 | Used for presenting 4 faces per page: store the itemnumber of the presented faces (clockwise starting in upper left quadrant) |
| name1-name4 | Used for presenting 4 names per page: store the itemnumber of the names that were assigned to faces1-4 |
| occupation1-occupation4 | Used for presenting 4 occupations per page: store the itemnumber of the occupations that were assigned to faces1-4 |
| targetFace | Stores the itemnumber of the current face picture (if only 1 is presented) |
| targetName | Stores the itemnumber of the name assigned to the current face |
| targetOccupation | Stores the itemnumber of the occupation assigned to the current face |
Cued Recall Dependent Measures |
|
| responseILN | Stores the given name response to the current ILN trial (ILN = Initial Learning Trials -> Names) |
| correctResponseILN | Stores the current correct name response in condition ILN |
| correctILN | 1 = the current entered name is correct for the given picture; 0 = otherwise (in condition ILN) |
| responseILO | Stores the given occupation response to the current ILO trial (ILO = Initial Learning Trials -> Occupation) |
| correctResponseILO | Stores the current correct occupation response in condition ILO |
| correctILO | 1 = the current entered occupation is correct for the given picture; 0 = otherwise (in condition ILO) |
| responseCRN | Stores the given name response to the current CRN trial (CRN = Cued Recall Names) |
| correctResponseCRN | Stores the current correct name response in condition CRN |
| correctCRN | 1 = the current entered name is correct for the given picture; 0 = otherwise (in condition CRN) |
| responseCRO | Stores the given occupation response to the current CRO trial (CRO = Cued Recall Occupation) |
| correctResponseCRO | Stores the current correct occupation response in condition CRO |
| correctCRO | 1 = the current entered occupation is correct for the given picture; 0 = otherwise (in condition CRO) |
| responseCRN30 | Stores the given name response to the current CRN30 trial (CRN30 = Cued Recall Names after 30 minutes) |
| correctResponseCRN30 | Stores the current correct name response in condition CRN30 |
| correctCRN30 | 1 = the current entered name is correct for the given picture; 0 = otherwise (in condition CRN30) |
| responseCRO30 | Stores the given occupation response to the current CRO30 trial (CRO30 = Cued Recall Occupation after 30 minutes) |
| correctResponseCRO30 | Stores the current correct occupation response in condition CRO30 |
| correctCRO30 | 1 = the current entered occupation is correct for the given picture; 0 = otherwise (in condition CRO30) |
Free Recall Dependent Measures |
|
| responseFRN | Stores the entered freely recalled names in the FRN condition (freely recall all the names = FRN) |
| countCorrectFRN | Counts the number of correctly recalled names in the FRN condition (freely recall all the names = FRN) |
| wordEstimateFRN | Stores the estimate of the number of names recalled in the FRN condition (freely recall all the names = FRN) |
| intrusionOtherFRN | Stores all the recalled names that were not part of the original list ( might also contain misspelled names!) in the FRN condition |
| responseFRO | Stores the entered freely recalled occupations in the FRO condition (freely recall all the occupations = FRO) |
| countCorrectFRO | Counts the number of correctly recalled occupations in the FRO condition (freely recall all the occupations = FRO) |
| wordEstimateFRO | Stores the estimate of the number of occupations recalled in the FRO condition (freely recall all the occupations = FRO) |
| intrusionOtherFRO | Stores all the recalled occupations that were not part of the original list ( might also contain misspelled occupations!) in the FRO condition |
| responseFRN30 | Stores the entered freely recalled names in the FRN30 condition (freely recall all the names with 30 min delay = FRN30) |
| countCorrectFRN30 | Counts the number of correctly recalled names in the FRN30 condition (freely recall all the names with 30 min delay = FRN30) |
| wordEstimateFRN30 | Stores the estimate of the number of names recalled in the FRN30 condition (freely recall all the names with 30 min delay = FRN30) |
| intrusionOtherFRN30 | Stores all the recalled names that were not part of the original list ( might also contain misspelled names!) in the FRN30 condition |
| responseFRO30 | Stores the entered freely recalled occupations in the FRO30 condition (freely recall all the occupations with 30 min delay = FR030) |
| countCorrectFRO30 | Counts the number of correctly recalled occupations in the FRO30 condition (freely recall all the occupations with 30 min delay = FR030) |
| wordEstimateFRO30 | Stores the estimate of the number of occupations recalled in the FRO30 condition (freely recall all the occupations with 30 min delay = FR030) |
| intrusionOtherFRO30 | Stores all the recalled occupations that were not part of the original list ( might also contain misspelled occupations!) in the FRO30 condition |
The procedure can be adjusted by setting the following parameters.
| Name | Description | Default |
|---|---|---|
Design |
||
| randomPairings | True (1): random pairings of images with names and occupations false (0): pairings are predetermined by itemnumbers | false |
Sizing Parameters |
||
| nameSize | Size of name/occupation label during study time in proportion to canvas height | 5% |
| faceSize1 | Size of face photos during the study phase | 30% |
| faceSize2 | Size of face photo during the cued recall testing phases | 50% |
Timing Parameters |
||
| faceStudy | The duration (in ms) assigned for each face-study trial (each trial presents 4 face images associations) | 8000 |
| nameFaceLearning | The duration (in ms) assigned for each name-face learning trial (each trial presents 4 name-face associations) | 20000 |
| occupationFaceLearning | The duration (in ms) assigned for each occupation-face learning trial (each trial presents 4 name-face associations) | 20000 |
| recallDelay | The delay duration (in ms) of the delayed recall conditions | 1800000 |