About MonkeyCantab

 Top Next

Purpose

Cognitive test battery for animals.

Written for the University of Cambridge.

The battery includes:

· Reinforcement familiarization
· Touchscreen training

· Ambiguous Cue Task (ACT)
· Concurrent Discrimination (CD)
· Concurrent Schedules (CS)
· Continuous Performance Task (CPT)
· Conditional Visual Discrimination (CVD)
· Delayed matching and non-matching to sample (D[N]MTS)
· Dual-Reward Ambiguous Cue Task (DRACT)
· Impulsive choice (delayed/probabilistic reinforcement choice task)
· List-based Delayed Matching/Non-matching to Sample (ListDMS)
· Multiple-choice serial reaction time (MCSRT[T])
· Multireinforcer Search Task (MST)
· Paired-associates learning (PAL)
· Rapid Visual Information Processing (RVIP)
· Reversal learning
· Self-ordered [spatial] search (SO[S]S, a.k.a. spatial working memory, SWM)
· Simple schedules of reinforcement
· Spatial Discrimination (SD)
· Stimulus-stimulus paired-associates learning (SSPAL)
· Variable delayed response (VDR), a.k.a. delayed matching/non-matching to position (DMTP, DNMTP).
· Visual discriminations (simple and compound) with reversal and intradimensional and extradimensional set-shifting
· Probabilistic concurrent discrimination (PCD).

Citing MonkeyCantab

Please cite as, for example:

(in text)

The task was implemented in the MonkeyCantab program (version [INSERT VERSION NUMBER], R.N. Cardinal) using the Whisker control system (Cardinal & Aitken, 2010).

(in bibliography)

Cardinal RN, Aitken MRF (2010). Whisker: a client–server high-performance multimedia research control system. Behavior Research Methods 42: 1059–1071. (PubMed ID: 21139173. DOI:10.3758/BRM.42.4.1059.)

Software requirements

Requires Whisker v2.7 or greater (www.whiskercontrol.com).

Data storage

· Text-based output to disk.
· ODBC data storage to a database (supplied).

Author

Rudolf Cardinal (rudolf@pobox.com).

Some ancestry (for MonkeyCantab, CANTAB, and Whisker) with key references

PMID means PubMed ID (http://www.pubmed.com/).

· Roberts AC, Robbins TW, Everitt BJ (1988). The effects of intradimensional and extradimensional shifts on visual discrimination learning in humans and non-human primates. Q J Exp Psychol B 40: 321–341. PMID 3145534. [Human and non-human performance on the same ID/ED paradigm.]
· Sahakian BJ, Morris RG, Evenden JL, Heald A, Levy R, Philpot M, Robbins TW (1988). A comparative study of visuospatial memory and learning in Alzheimer-type dementia and Parkinson's disease. Brain 111: 695–718. PMID 3382917. [Early human work using cross-species paradigms.]
· Roberts AC, Robbins TW, Everitt BJ, Jones GH, Sirkia TE, Wilkinson J, Page K (1990). The effects of excitotoxic lesions of the basal forebrain on the acquisition, retention and serial reversal of visual discriminations in marmosets. Neuroscience 34: 311–329. PMID 2110326. [Subsequent early marmoset touchscreen task.]
· Roberts AC, Robbins TW, Everitt BJ, Muir JL (1992). A specific form of cognitive rigidity following excitotoxic lesions of the basal forebrain in marmosets. Neuroscience 47: 251–264. PMID 1641123. [Another early marmoset touchscreen task.]
· Sahakian BJ, Owen AM (1992). Computerized assessment in neuropsychiatry using CANTAB: discussion paper. J R Soc Med 85: 399–402. PMID 1629849. [First review of CANTAB.]
· Robbins TW, James M, Owen AM, Sahakian BJ, McInnes L, Rabbitt P (1994). Cambridge Neuropsychological Test Automated Battery (CANTAB): a factor analytic study of a large sample of normal elderly volunteers. Dementia 5: 266–281. PMID 7951684. [Establishing human CANTAB norms in the elderly.]
· Cardinal RN, Aitken MRF (2010). Whisker: a client–server high-performance multimedia research control system. Behavior Research Methods 42: 1059–1071. DOI 10.3758/BRM.42.4.1059. PMID 21139173. [Whisker.]

Acknowledgements

Thanks to Mike Aitken, Shibley Rahman, Hannah Clarke, Susannah Walker, and Laurence Argyle for helpful discussions regarding the ID/ED, PAL, SWM, and reversal learning tasks.

Copyright

Copyright © Cambridge University Technical Services Ltd

Revision history

· 27 March 2003. Started (version 0.1).
· 8 April 2003. Version 0.1 released for spatial working memory researcher. Currently up and running: general parameters, reinforcement familiarization, schedules of reinforcement, spatial working memory. Other tasks disabled.
· 11 April 2003. Version 0.2: RF, TT, VD-predefined, VD-superimposed, D(N)MTS, SWM, MCSRTT, schedules.
· 6 May 2003. Version 0.3: reversal learning in; general controller bug fix (punishment sound Y/N mixed up with reward sound Y/N); SDK bug fix (filenames not enclosed by quotes); visual discriminations bug fix (rewarded stimuli left up for too long); PAL in. Display caching added to all tasks. Released within University of Cambridge.
· 7 May 2003. Version 0.4: changes requested by CamCog. Two additional output lines, REINFORCEMENT_INFO and STIMULUS_INFO, added (see Required Devices); REINFORCEMENT_INFO gives 10ms pulses on reward, 20ms pulses on punishment; STIMULUS_INFO is high when stimuli are being displayed in ID/ED tasks (both varieties) and reversal task (during choice phase only, not when stimuli are left up during reward); option to enforce that an empty box is the last to be displayed in the sample phase of PAL. New configuration file version number. Option to use offset grids with central dispenser (but actual grids for this not yet implemented). Modifications to PAL (4-way edges grid; option to shuffle presentation order when repeating trials). Background touches recorded in SWM.
· 24 July 2003. Added predefined stimulus sets. Now requires WhiskerServer 2.6.8 or greater (with CamcogQuadStimulus built in to the server).
· 30 July 2003. Version 0.5: DMTS and TouchTraining (and, indeed, pretty much all tasks) now compatible with previous CamCog as well as University of Cambridge tasks.
· ...
· 11 March 2004 (approx). Version 0.9. Numerous bug fixes and improvements; see www.whiskercontrol.com/version_tracker/MonkeyCantab.txt
· 6 May 2004. Version 0.91. Changes to PAL stimulus order and WAV file volume selection.
· May 2004. Version 0.92. SWM bug fixed (all touches were erroneously punished if there was no "delaying tactic" between consecutive stimuli).
· 4 June 2004. Version 0.93. For full details see the version tracker (as above). Summary of changes follows. (1) Visual discriminations: if there is an SR (simple reversal) stage, the compound discrimination (+/- compound reversal) stimuli are altered such that there is no longer a reversal upon shifting from SR to CD. Nor is there a reversal moving from SD to CD if no SR stage is used. (2) Visual discriminations and Reversals: ITI touches are recorded, and (optionally) punished. (3) D(N)MTS: task variant with simultaneous presentation of phase 1/2 stimuli. (4) SWM: probe trial facility.
· 25-29 June 2004. Version 0.94. Several new facilities added to the MCSRT task.
· 6 July 2004. Version 0.95. Now informs user of problems encountered when saving configuration files.
· 13 July 2004. Version 0.96. Choice of background colour.
· 20-31 August 2004. Version 0.97. Record all events (or, at least, all that seem even vaguely relevant, with a generic event-recording facility so if someone decides something else is important it's easy to add!).
· 15 October 2004. Version 0.98. Bug fixed in DMTS location recording. Allows zero distractors in phase 2 of DMTS (for training). Bug fixed in DMTS: correction procedure failed to wait for finger to be removed from touchscreen (so always registered incorrect touch). Now it requires finger to be removed after end of phase 2 (but will still start correction procedure, i.e. phase 3, if subject removes finger and retouches before start of correction procedure). SWM allows reward to be delivered after every correct touch (not just on completion of trial). Bug fix, MCSRTT: if lever was used as centring response, background touches were treated as if the lever had been released, even with "Ignore other responses..." ticked. Task alteration, MCSRTT: "absent stimulus" markers appear right from the start of the trial, not just at the end of Phase 1. Bug fix, DMTS: correction procedure for simultaneous presentation didn't remove inert target copy from the screen during punishment. Task modification, DMTS: new colour-variation scheme (Seven Colours Per Trial) to mimic Weed et al. (1999) Cognitive Brain Research 8: 185.
· Version 0.99 (24 Oct - 16 Nov 2004). ET_REV_OMISSION and ET_VD_OMISSION events added. VDS/VDP, EDSHIFT stage: text instance of "B5A6(+)B6A6(-)" should have read "B5A6(+)B6A5(-)" (no execution bug, just descriptive). Database changed: MonkeyCantab_IndividualEvents.Box now long int, not byte (allows relationship from MonkeyCantab_GeneralConfig); CRecordSetIndividualEvents also changed; tested with database still using BYTE format: works. Comma-delimited output for MCSRT misaligned (no comma between Phase1Given and Phase1Responded in header). MCSRT params shrunk to fit an 800x600 screen. MCSRT bug fix: if premature touches were not punished by ending the trial, movements across/within a premature stimulus were counted incorrectly as multiple premature responses. MCSRT bug fix: "ignore responses during Phase 1" flag partially backwards. DMTS task has draw-without-replacement option for Phase 1 and Phase 2 Target locations (to give pseudorandom rather than random location assignment). DMTS: phase 1 location selection when adjusting for a central feeder was not as advertised (it just alternated between middle-left/middle-right positions, ignoring user preference); fixed. DMTS: explicit recording of Phase 1 and Phase 2 Target locations in database.
· Version 1.0 (17 Nov 2004). Up to 7 distractors in DMTS (but note: since the automatic stimulus-varying procedures available to DMTS generate stimuli in groups of 4, the stimuli generated by these procedures with other total numbers of stimuli per trial are not guaranteed to follow the same rules as with 4 total stimuli per trial). Draw-without-replacement system for MCSRT target location. Response location recorded for DMTS.
· Version 1.1 (9 Dec 2004). Improved bitmap centring function. Reinforcement Familiarization: background colour now works; bug fixes ("maximum no. reinfs" didn't work with the lick-contingent FR1 option, and spurious fall-though to main schedule caused by ==/= error). MCSRT: option to measure Phase 2 maximum response time from the end (rather than the start) of the stimulus; bugfix (distractor code erroneously removed a location from viNontargetLocations - so the final non-target pulled from an empty vector).
· Version 1.2 (26 Jan 2005). DMTS: option to draw levels without replacement. MCSRT: option to draw without replacement for (1) pre-stimulus delay; (2) stimulus duration. Option to have trials initiated by a lever/switch response, for use with dogs (see Use with dogs).
· Version 1.3 (10 Feb 2005). Bugfix to DMTS level DWOR.
· Version 1.4 (22 Mar - 3 Apr 2005). New DMTS stimulus generation methods to improve performance with >4 stimuli per trial; option to rotate Phase 2 stimuli in DMTS; option to jumble variant order; bugfix for simultaneous option. Attempt at bugfix to MCSRT - lever reported to be responsive at times that it shouldn't have been. Option to allow mouse input as well as touchscreen input.
· Version 1.5 (21 Apr - 4 May 2005). Cosmetic/convenience change to ID/ED configuration dialogue. Changes to SimpleSchedules (relating to what was displayed during reinforcement timeouts or during reinforcer-device-busy states.
· Version 1.6 (18 May 2005). When levers are used to initiate trials, the lever response now terminates all ongoing sounds, notably the Marker 1 sound.
· Version 1.7 (30 May 2005, 4 Sep 2005). 3, not 2, decimal places in DMTS/MCSRT dialogue boxes displaying floating-point values. Lick latency in Touch Training task.
· Version 1.8 (21 Sep 2005). ReinfFamil was inappropriately proceeding out of "totally free juice" to FR1.
· Version 1.9 (10 Oct 2005). Visual discrimination tasks had a bug in the Harsh correction procedure, such that no stimuli were shown on correction trials.
· Version 1.91 (30 Oct 2005). MonkeyCantab_GeneralConfig.ModuleList changed from String(255) to Memo to accommodate very long module lists.
· Version 2.0 (7 Jan 2006). Clock on main display. // End-of-task summaries on screen, from Reversals, VDP, and VDS. // Support for extra "debug" views showing touches, with WhiskerServer v2.12.1 and higher. // Ability to specify stimulus locations manually in MCSRT. // Marker 2 sound option in MCSRT. // Option for alternative targets within a single test in MCSRT. // Background rectangles added to Camcog ID/ED stimuli.
· Version 2.1 (10 Jan 2006). Option to leave stimuli up during reward in TouchTraining. // Option to punish ITI touches in TouchTraining. // "Copy module" button.
· Version 2.2 (11 Jan 2006). Option to punish, rather than reward, touches during TouchTraining. (A rather specialized option!)
· Version 2.3 (13 Feb 2006). Option to deliver free rewards manually.
· Version 2.4 (16 Feb 2006). Command-line automated execution.
· Version 2.5 (21 Feb - 2 March 2006). Option to repeat entire DMTS trial following errors (either at phase 1 or phase 2) until the subject gets the trial right.
· Version 2.6 (8 Apr 2006). Bug fixed that could cause delayed non-matching to lock up ("waiting for finger release before starting correction procedure") under some circumstances (responding incorrectly in phase 2 and releasing finger while phase 2 incorrect-target stimulus still on screen). // Option to make S+/S- stimulus selection wholly predictable in DMTS.
· Version 2.7 (29 Apr 2006). DMTS problem described above still not fixed - may be a hardware fault. As a workaround, implemented an optional feature: "wait for finger release before proceeding but never for more than X seconds (user can specify X)".
· Version 2.8 (24 May 2006). Now autoupdates data file name on first entering subject ID. // Improved error message if data file already exists.
· Version 2.9 (July-August 2006). Improvements to DMTS in terms of ability to vary the number of distractor/nontarget objects within a session.
· Version 3.0 (9 Sep 2006). Option improvements to reversal learning (limiting the number of reversals possible; improved draw-without-replacement method for spatial randomization).
· Version 3.1 (22-28 Dec 2006). In TouchTraining, the stimulus eventually moved when it was the final size, regardless of whether the "Move" option was ticked; this bug has been fixed. // An option has been added to query the size of a stimulus (in units, and as proportions of the active screen size). // "Strict touches" option for all tasks (though mandatory for SimpleSchedules). // Time since last subject response is shown on the main display. // Separate specification of maximum response times for phase 1 and phase 2 in DMTS.
· Version 3.2 (22-23 Jan 2007). New monochrome option (monochrome, shape-only discrimination, fixed colour, i.e. colour fixed by the experimenter) for DMTS.
· Version 3.3 (27 Jan 2007). Bug fixed in v3.2: monochrome option didn't work properly with shape shuffling.
· Version 3.4 (8 March 2007). Easier compilation for users. Option to stop ID/ED tasks after a criterion has been met (not just to increase the stage).
· Version 3.5 (30 March 2007). "Side task" (location discrimination) option in Reversal Learning task.
· Version 3.6 (21 May 2007). Bug fixed in Spatial Working Memory (SWM or SOSS) task: sometimes, double touches to a stimulus were erroneously ignored because the system failed to notice all finger removals. Fixed.
· Version 3.7 (24 July 2007). Minor bugfix: SimpleSchedules miscalculated the cosmetic version of its end time.
· Version 3.8 (18 Aug 2007). Made the "assume finger released but the touchscreen missed it" setting easier to configure for SimpleSchedules (for which it is mandatory), and added explicit recording of this event.
· Version 3.9 (14 Sep 2007). Bugfix to ensure no attempt is made to play zero-length sounds (they may have created an undesirable "pop"). Also, option to disable houselight entirely.
· Version 4.0 (from 25 Oct 2007). Delayed reinforcement ("impulsive choice") task added.
· Version 4.1 (21 Dec 2007). Bug fix in SimpleSchedules - "assume finger removed" was not always detected correctly.
· Version 4.2 (26 Dec 2007). Two-choice option for multiple-choice serial reaction time task.
· Version 4.3 (7 March 2008). Visual stimulus options for reward/punishment.
· Version 4.4 (from 30 Apr 2008). Pellet collection latency via the MAGAZINE_DOOR device. Some additional reward collection latency measures. Minor bugfix in text file out from SWM (see version tracker).
· Version 4.5 (11 May 2008). MAGAZINE_LAMP device.
· Version 4.6 (24 Sep 2008). Enhanced options for leaving stimuli on screen after choice in Reversals, VisualDiscrimPredefined, VisualDiscrimSuperimposed.
· Version 4.7 (19 Oct 2008). Option to specify "false feedback" trials more precisely (pseudorandomly, not randomly) in Reversals.
· Version 5.0 (12 Jan 2009). (1) Server default now "localhost", not "loopback" (for Windows Vista compatibility and more general standardization). (2) Touch events no longer requested for nontouchable object components. (The check that at least one component is touchable remains as a warning in the "Configure visual objects" dialogue.)
· Version 5.1 (26 Apr 2009). Recompilation on Visual Studio 2008, with a couple of very minor bug fixes (see version tracker). Also, change of random number generator (to use the Boost libraries). There was a previous bug requiring, we think (1) MonkeyCantab to use its previous Mersenne Twister library; (2) it to be compiled with Visual C++ 6.0; (3) particular sound card drivers to be active. We can only guess that this was some fault in low-level floating-point code: on about 14 per 100,000,000 iterations, there were errors in converting float to int values, but only when multiple sound cards were being accessed (and the compiler settings as above). The bug manifested itself as a silly number coming back from the random number generator, and MonkeyCantab seeming to wait for ever.
· Version 5.2 (8 May 2009). Further work on random numbers versus funny sound cards. Further workaround installed; see version tracker. Also, XML format for CamcogQuadPattern changed for compatibility with other XML parsers; see version tracker.
· Version 5.3 (11 May 2009). Option for darkness to accompany reward.
· Version 5.4 (11 May 2009-8 June 2009). RVIP task.
· Version 5.5 (26 June 2009). Non-target option in five-choice task.
· Version 5.6 (27 June 2009-19 July 2009). List-length DMTS task. Also, changed memory delay timing for DMTS in the specific case when Phase 1 responding is rewarded: the memory delay used to begin at the end of the reward, and now it begins at the start of the reward (with an extra check that the memory delays must all exceed the maximum reward time). Also, an off-by-one error in DMTS (in the "avoid stimuli used in the last N trials" option) fixed. And DMTS modification: memory delay now begins at start (not end) of phase 1 reward, if that is used (not that phase 1 rewards are a very sensible option!). See version tracker for full details.
· Version 5.7 (July 2009). Concurrent Discrimination and Spatial Discrimination tasks added (currently restricted to Cambridge users).
· Version 5.8 (Aug 2009). (1) External tool convert_stm_to_monkeycantab_xml.pl. (2) Help launcher fixed, after some change in Windows broke it. (3) Option to stop VisualDiscrimP/S tasks after a certain stage.
· Version 5.9 (Jan 2010). Fix (1) hanging-around-at-the-end bug in ListDMS; (2) occasional crashes in ListDMS. Add (1) option to have "time without distractors" begin at A and increase by B periodically to RVIP and (3) similarly for the "time for which subject must respond" option in MCSRT. (4) PAL training option to allow only one real choice. (5) PAL training option to ignore incorrect choices. (5) Improved scheduling algorithm for ListDMS.
· Version 6.0 (3 Feb 2010). Tightening up the ListDMS scheduling safety margins.
· Version 6.1 (19 Feb 2010). Alternative on-the-fly ListDMS scheduling system. Also, correction to Phase 1 latency calculation: was calculated from trial start time, should have been from phase 1 start time (the difference is only relevant for trials starting with a lever press). And, "reward phase 1" was presented as an option but was non-functional, for timing reasons; now added back in. And scheduling-in-clusters option for ListDMS.
· Version 6.2 (28 Feb 2010). Fix to dumb bug in ListDMS on-the-fly scheduler; see version tracker. Also, WAV file duration was taken as 0 for the ListDMS scheduler, but taken as the non-WAV sound length for actual live calculations, leading to a timing conflict. From now, task continues not to calculate actual WAV file length (for a variety of pragmatic reasons) but will schedule them, and wait for them, for the time specified by the user (so the duration becomes an editable field even for WAV files).
· Version 6.3 (5 Mar 2010). Additional "progressive" options for RVIP and MCSRT.
· Version 6.4 (8 Mar 2010). Option to enforce "subnesting" for ListDMS.
· Version 6.5 (24 Apr 2010). Performance update to some database stores (e.g. PAL).
· Version 6.6 (6 May 2010). Further database performance improvements.
· Version 6.7 (15 May 2010). New SHAPE input line required, and used for giving manual rewards from an external digital input.
· Version 6.8 (19 May 2010). Option to enable shaping input from the command line.
· Version 6.9 (14 Aug 2010). Options for ID/ED tasks (VDS, VDP) to set a criterion for the maximum number of trials per subtask.
· Version 7.0 (21-30 Aug 2010). "Kick" function and network integrity test, both for investigating a problem of uncertain cause (?hardware ?software) in PAL.
· Version 7.1 (30 Aug-6 Sep 2010). MCSRT latency measurements for non-retractable levers. Ongoing work on hard-to-replicate PAL stimulus positioning bug.
· Version 7.2 (8-13 Sep 2010). Ongoing work on PAL stimulus positioning bug. Option whereby touches reset memory delay and/or time between trials for PAL and DNMTS.
· Version 7.3 (7 Oct 2010). F1 help key works everywhere, not just help button on main screen.
· Version 7.4 (14 Oct 2010). Still working to address an intermittent floating-point overflow error not seen on most machines.
· Version 7.5 (4 Nov 2010) and 7.51. Ditto.
· Version 7.6 (10-24 Nov 2010). Apparent bug in PAL looks like it is probably not a bug, but an intermittent error in all calculations using the FPU when certain sound card drivers are active (see also version trackers for MonkeyCantab v5.1 and WhiskerServer between v2.12.9 and v2.12.10). As of 20 Nov 2010, it appears that a SoundBlaster Audigy driver (driver itself dated 7/7/2005) intermittently breaks the FPU for unrelated tasks (not even using sound) under Windows XP. The bug was reproducible by using Sound Recorder and simple floating-point test code only (which produced intermittently wrong numbers when two sound cards were in use, one of them the SoundBlaster). We had suspected DirectX (which can mess up floating-point operations), but this should only occur for processes directly or indirectly calling DirectX. Our "bug" involved completely separate processes, which implies a bug at kernel level. It seems likely that this is a kernel-mode driver violating the Microsoft rule that all floating-point operations in kernel-mode drivers must be wrapped in KeSaveFloatintState and KeRestoreFloatingPointState calls; see http://msdn.microsoft.com/en-us/library/ff565388%28VS.85%29.aspx . This was one of the most unusual and difficult bugs to locate (as it was intermittent and caused by the behaviour of apparently unrelated processes). The bug was also responsible for DirectDraw going wrong in Whisker, and possibly for intermittent failures when MonkeyCantab wrote to an SQL Server database via ODBC. // Continuous Performance task.
· Version 7.7 (26 Mar 2011). REINFORCEMENT_INFO_PUNISHMENT_PULSE_MS was 10, but version_tracker indicates it should be 20; changed to 20.
· Version 8.0 (14 Apr 2011–2 May 2011). Major improvements. Generalization of reinforcer system (including REINFORCEMENT_INFO line control). Generalization of sound system. Corresponding changes to General Parameters, Impulsive Choice configuration, and database (for details, see the version tracker). Configuration version changed to 8.0 (so the program will load, but warn about, older versions - and reinforcer and sound configuration from old files will be lost and need re-entering). Also, XML bug fixed for ImpulsiveChoice, so ImpulsiveChoice delays/probabilities will need re-entering into configurations. ConcurrentDiscrimination and SpatialDiscrimination tasks no longer restricted. Stimulus-triggered trial initiation for those tasks.New Multireinforcer Search Task. Generalization of location system to allow fully user-specifiable locations for all tasks, so some location settings for tasks may need re-entering into configuration files, and option to avoid central feeder has gone (replaced by the option to alter any location to avoid anything). Conversion of tasks to match. Minor change to internal scaling of University of Cambridge stimuli (improves centring precision). ImpulsiveChoice: magazine initiation/magazine light options. SimpleSchedules: range option for maximum session time. TouchTraining: option for initial free rewards, and magazine initiation options.
· Version 8.1 (from 3 May 2011). New task: Conditional Visual Discrimination (CVD), also capable of operation as a two-choice vigilance task. Fixed miscounting of total number of rewards (w.r.t. reward limit; it counted each one twice) in ConcurrentDiscrim, Spatial Discrim, VDS, VDP, MST, Reversals. Display caching for initiation stimulus, and minor finger-on detection fixes, for ConcurrentDiscrim, SpatialDiscrim, MST. Option for magazine-based initiation (with magazine light option) and initiation limited hold period for: Reversals, DMTS, VDS, VDP, ConcurrentDiscrim, MCSRT. Option to lock correct/incorrect lists together (allowing e.g. 8-pair concurrent discrimination) for ConcurrentDiscrim. Options to enable and punish perseverative responding in MCSRT. ImpulsiveChoice: option to repeat omission trials.
· Version 8.2 (15 Aug 2011). Performance-based stopping criterion for ConcurrentDiscrimination task.
· Version 8.3 (from 22 Sep 2011). Bugfix: reinforcer-associated visual stimulus time wasn't contributing to calculated reinforcer duration (in CMonkeyCantabController::DeliverReinforcer). Date/time strings stored in textfiles now include seconds field. New SSPAL task. Option to shuffle module order from main parameters dialogue.
· Version 8.4 (from 1 Nov 2011). SSPAL: delay stimulus edit box now freely editable (so you can blank it); delay stimulus made properly optional.
· Version 8.5 (from 22 Nov 2011). SWM/SOSS: extended options for screen blanking upon response.
· Version 8.6 (from 1 Dec 2011). RVIP: extra target area marker option.
· Version 8.7 (from 1 Jan 2012). Alternative cue presentation methods for SSPAL task.
· Version 8.8 (5 Jan 2012). Bugfix in SWM (symptom was: crash immediately on task start, when non-scheme method used).
· Version 8.9 (from 19 Jan 2012). Cosmetic changes to CPT dialogue. Two CPT bugfixes (see version tracker). New CPT option for "time limit for each attempt".
· Version 9.0 (from 24 Jan 2012). Detection of non-number floating point values when reading from XML. CPT bugfix (loose attempt timer on change of stage).
· Version 9.1 (22 Mar 2012). Fixed a bug introduced into Reversals task in which the HARSH correction procedure failed to show stimuli.
· Version 9.1 (from 29 Mar 2012). Internal code changes to reflect SDK alterations (no change to function).
· Version 9.2 (to 22 May 2012). Code changes (no functional change) to reflect WhiskerClientLib v4.1. // CPT bugfix: CCPT::IsCriterionPassed() didn't restrict "consecutive correct" checking to current attempt. // CPT bugfix: if the stage timed out in the ITI immediately following the correct response that should have passed the stage, the timeout trumped the win (incorrectly).
· Version 9.3 (from 15 June 2012). Reversals: (1) Option for a different within-session reversal criterion for the first and subsequent discriminations. (2) Summary information for each discrimination (reversal) within a session, on ending and as a database query. (3) Recording of touches to "leftover" stimuli (stimuli left on the screen during reinforcement).
· Version 9.4 (from 17 July 2012). Better recording of repeat trials in PAL; stimulus info line support for CPT and DMTS.
· Version 9.5 (from 14 Aug 2012). "TrialGroup" recording in PAL. Additional queries in database. Trial repeat option in SSPAL. Option to punish background touches in SSPAL.
· Version 9.6 (from 25 Sep 2012). Option to reinforce cue responding in SSPAL. Ambiguous Cue Task.
· Version 9.7. Trivial bug fixes to Ambiguous Cue Task. Bug fix to PAL (introduced with recent grid improvements): when creating a new scheme, it was improperly declared invalid.
· Version 9.8 (5 Dec 2012). Ability to duplicate/randomize blocks for PAL. Additional SQL for PAL.
· Version 9.9 (from 13 Feb 2013). Updates to CPT (extra options for maximum time to present stimulus; changing response window accordingly; background image option). This partially breaks old CPT config files; you should manually check all configs after loading; configuration version changed to 9.9 so the programs warns you.
· Version 10.0 (28 Feb 2013). Trivial bugfix: SSPAL started the Marker 1 sound twice at the start of a trial.
· Version 10.1 (1 Apr 2013 to 21 May 2013). Autostop facility. Garish alert when MonkeyCantab finishes. CPT bugfix: a timer wasn't being cleared properly. Strict touch support added for tasks that didn't have it (CPT, IC), with minor tweaks for others (see version tracker) and clearer documentation. Touch training lick/pellet latency calculation bugfix.
· Version 10.2 (4 Jun 2013). Database transaction support.
· Version 10.3 (18 Jun 2013). Bugfix to monkeycantab.com, the pre-launcher.
· Version 10.4 (2 Sep 2013). SSPAL option: background touches in ITI restart ITI.
· Version 10.5 (20 May to 1 June 2014). ConcurrentSchedules task. Hammond contingency schedules. Internal code changes.
· Version 10.6 (3 June 2014). ConcurrentSchedules: bugfix (crashed at startup when only one schedule in use).
· Version 10.7 (10 June 2014). ConcurrentSchedules bugfix (relevant when the same stimulus used for two manipulanda). Simpler compilation for end users without restricted tasks/cryptographic code.
· Version 10.8 (1 July 2014). More fixes for compilation in different development environments. Also, the fixes that were meant to be in 10.7 but somehow don't seem to have been.
· Version 10.9 (1 July 2014). Build directory name error meant v10.7 and v10.8 fixes weren't applied to the Cambridge edition.
· Version 11.0 (27 Aug 2014). New contingency schedule (Jackson).
· Version 11.1 (4 Sep 2014). Option to disable either half of Jackson schedule.
· Version 11.2 (7 Oct 2014 - 5 Dec 2014). Bugfixes; see version tracker. Option to stop after an overall time limit (across all tasks). Logging of module (task) start/stop times to database, along with warnings.
· Version 11.3 (24 Feb 2015). Restriction on noncontingent reinforcement for concurrent version of Jackson schedule. Bugfix: m_bPrimeFirstInterval was being ignored in CReinforcementSchedule creation.
· Version 11.4 (12 Apr 2015). Rebuild with latest WhiskerClientLib in attempt to prevent occasional initiation failures, potentially related to a socket problem. Also bugfix in that delayed reinforcers on RIGHT schedules were probably not being delivered.
· Version 11.5 (from 13 Jun 2015). Multiple "option B" stimuli for ImpulsiveChoice. VDR (DMTP) task.
· Version 11.6 (22 July 2015). (1) Field length of MonkeyCantab_ModuleOverview.ModuleType changed from 50 to 100 - was failing with the Visual Discrimination and Set Shifting (Superimposed Style) task. (2) Critical bugfix: crash occurring due to reentrant StatusMessage() call; likely introduced in v11.4 (so upgrade all v11.4 and v11.5 immediately).
· Version 11.7 (26 Nov 2015). Bugfixes to VDR: (a) it wanted n+1 locations for n targets, and should have required only n; (b) an output field (PossibleResponseLocations) contained commas and so messed up CSV imports; changed to semicolons within the field.
· Version 11.8 (9-10 Dec 2015): ImpulsiveChoice improvements. VDR improvements. Config version changed; will warn on upgrade.
· Version 11.9 (16 Dec 2015). Bugfix to VDR (loose timer).
· Version 11.91 (25 Mar 2016). VDR option to punish background touches during cue.
· Version 11.92 (March 2017). Probabilistic concurrent discrimination (PCD) task.
· Version 11.94 (Dec 2017). New "extra locations" option to SWM.
· Version 11.95 (14 Sep 2019). New PR schedule with floating-point stopping time (for training purposes).
· Version 11.96 (6 Dec 2020). PAL task now supports "stimulus info" hardware output.
· Version 12.00 (6 Feb 2021). Dual-Reward Ambiguous Cue Task (DRACT).
· Version 12.01 (21 Nov 2021). New options for PAL task: only one choice / centring response before choice. Distinguish event codes for sample and choice omission (previously lumped together as sample omissions).
· Version 12.02 (1 Mar 2022). PAL: option to reward the centring response.
· Version 12.03 (15 Apr 2022). DRACT: correction procedure.
· Version 12.1 (10 Jul 2022). VDR correction procedure and option for sample stimulus to disappear when touched.
· Version 12.2 (Jan-Mar 2024). Additional schedule (up to dual concurrency) for Concurrent Schedules task. In DRACT task, new option not to re-present the cue at the time of choice.
· Version 12.3 (5 Jun 2024). Bugfix to fix bug involving blending of same-purpose sounds across two consecutive copies of the same type of task module; see version tracker. Multiple reinforcer options (per schedule) in Concurrent Schedules task.
· Version 12.4 (19 Jun 2024). Minor bugfix to ConcurrentSchedules live status display.


Required devices

 Top Previous Next

The program requires to claim devices in groups named box0, box1, box2… with device names as listed below in bold. (Note that the line numbers themselves are arbitrary and depend on how your apparatus is wired up.)

# ---------------- Box 0 definition

# INPUTS

# Lick sensors are used with peristaltic pump reinforcement (e.g. with marmosets).

# A levers is used for the rhesus version of the five-choice task, and for many tasks in dog testing apparatus.

# The "magazine door" sensor detects entry to the magazine into which pellets are delivered,

# and so is used for pellet reward collection latency (added May 2008).

line 0 box0 LICKSENSOR

line 3 box0 LEVER

line 6 box0 MAGAZINE_DOOR

line 9 box0 SHAPE

# OUTPUTS

# The houselight is on during the tasks.

# Peristaltic pumps are used in marmoset testing.

# "Pump" delivers nice juice; "Pump2" delivers punishment (e.g. saline).

# Pellet dispensers are used in rhesus testing.

# The "extra reward device" might be a tone generator installed in the box, to be associated with reward.

# The "extra punishment device" can be activated when the subject is punished.

# The lever control line is intended for use with retractable levers (see "Lever", above).

# Two other lines are used by Porton Down for interfacing to other hardware:

# REINFORCEMENT_INFO delivers 10ms high pulses upon reward and 20ms high pulses on punishment.

# STIMULUS_INFO is high when stimuli are being presented.

# MAGAZINE_LAMP is a light inside the pellet magazine.

line 24 box0 HOUSELIGHT

line 27 box0 PUMP

line 30 box0 PELLET

line 33 box0 EXTRAREWARDDEVICE

line 36 box0 EXTRAPUNISHMENTDEVICE

line 39 box0 LEVERCONTROL

line 42 box0 PUMP2

line 45 box0 REINFORCEMENT_INFO

line 48 box0 STIMULUS_INFO

line 51 box0 MAGAZINE_LAMP

# DISPLAY

# This is the monitor with a touchscreen attached to it.

display 0 box0 SCREEN

# AUDIO

# This is one of the computer's sound device (typically connected to a loudspeaker in the box).

# Used to reward successful monkeys with Mozart.

audio 0 box0 SOUND

# ... and so on for other boxes

Please ensure that these devices are available and listed in the device definition file in use by the server. (The snippet above shows an extract from a typical definition file.) If you do not have a particular device, and do not need it, then you should configure "fake" lines on the Whisker server, and assign the non-existent device to a fake line. For example, marmoset testing boxes might not have a pellet dispenser or a lever, while rhesus testing boxes might not have a pump.


Configuring Whisker for particular hardware

· Cambridge Cognition legacy hardware
· Cambridge Cognition 2004 hardware


Cambridge Cognition legacy hardware

Computers supplied by Cambridge Cognition to run their DOS-based Monkey CANTAB product have the following characteristics:

· one ICS input/output ISA card at 0x280 [to 0x283]. It should be configured for reversed inputs and reversed outputs; port A is for input; ports B and C are for output.
· one display
· one touchscreen
· one audio card
· no fake lines or failsafes
· a device definition file as follows:

INSERT DEVICE DEFINITION FILE HERE AS SUPPLIED BY CAMCOG

There is a known problem with this hardware. When an ICS card is initialized, it turns all its outputs off. There is no way to avoid this; it's a feature of the 82C55 controller chip used. Since CamCog wire up their boxes with reversed outputs (i.e. when the card thinks something's off, it's actually on, and vice versa), initializing the card actually turns all the outputs on. WhiskerServer fixes this problem as quickly as it can, so that the outputs are on for no longer than a few microseconds, but devices that are sensitive to such short 'blips' may trigger. Some users have noticed this in that a pellet is delivered when WhiskerServer first starts. There are no problems subsequently, when WhiskerServer is running. The only way to fix this would be to rewire the boxes so that outputs are not "reversed".


Cambridge Cognition 2004 hardware

Computers supplied by Cambridge Cognition to run Whisker and MonkeyCantab for Whisker have the following characteristics:

· one Advantech PCI digital I/O card with reversed inputs
· three displays (one for the experimenter, two for subject testing) with a Matrox multimonitor card
· two touchscreens
· two audio cards
· no fake lines or failsafes
· a device definition file as follows:

Sample device definition file #1 - two-box MonkeyCantab system

WhiskerServer v2.0 - DEVICE DEFINITION FILE - DO NOT ALTER THIS LINE

####################################################################

# This file defines device names used by the WhiskerServer program.

# Lines beginning with a hash (#) are comments and are ignored.

#

# Each line takes the following format:

#

#       <device_type> <device_number> <group_name> <device_name>

#

# where <device_type> may be

#       line            = digital I/O line

#       display         = display device (monitor)

#       audio           = audio device (sound card, or half-sound card; see manual)

#

# The <device_number> is the number of the line/display/audio device that you see

# on the server's console - the number that you would otherwise claim.

#

# The COMBINATION of the <group_name> and <device_name> must be unique.

# If the server encounters non-unique device group/name pairs in this file,

# all but the first will be ignored.

# Neither the <group_name> nor the <device_name> may start with a number.

#######################################################################

# File for double Monkey CANTAB test system

# ---------------- Box 0 definition

# INPUTS

line     0    box0    LEVER

line     1    box0    LICKSENSOR

line     2    box0    EXTRAREWARDDEVICE_INPUT

line     3    box0    MAGAZINE_DOOR

line     4    box0    FEEDER_REPORT

line     5    box0    PUMP2_FEEDER2_REPORT

line     6    box0    LEVERHOME

line     7    box0    SPARE_INPUT_BOX0

line    16    box1    LEVER

line    17    box1    LICKSENSOR

line    18    box1    EXTRAREWARDDEVICE_INPUT

line    19    box1    MAGAZINE_DOOR

line    20    box1    FEEDER_REPORT

line    21    box1    PUMP2_FEEDER2_REPORT

line    22    box1    LEVERHOME

line    23    box1    SPARE_INPUT_BOX1

# OUTPUTS

line    8     box0    HOUSELIGHT

line    9     box0    PUMP

line    10    box0    EXTRAREWARDDEVICE

line    11    box0    MAGAZINE_LAMP

line    12    box0    PELLET

line    13    box0    PUMP2

line    14    box0    LEVERCONTROL

line    15    box0    EXTRAPUNISHMENTDEVICE

line    42    box0    STIMULUS_INFO

line    43    box0    REINFORCEMENT_INFO

line    24    box1    HOUSELIGHT

line    25    box1    PUMP

line    26    box1    EXTRAREWARDDEVICE

line    27    box1    MAGAZINE_LAMP

line    28    box1    PELLET

line    29    box1    PUMP2

line    30    box1    LEVERCONTROL

line    31    box1    EXTRAPUNISHMENTDEVICE

line    44    box1    STIMULUS_INFO

line    45    box1    REINFORCEMENT_INFO

# DISPLAY

display  0    box0    SCREEN

display  1    box1    SCREEN

# AUDIO

audio    0    box0    SOUND

audio    1    box1    SOUND

# SAFETY RELAYS

line    40    R1

line    41    R2

Sample device definition file #2 - four-box MonkeyCantab system

WhiskerServer v2.0 - DEVICE DEFINITION FILE - DO NOT ALTER THIS LINE

####################################################################

# This file defines device names used by the WhiskerServer program.

#lines beginning with a hash (#) are comments and are ignored.

#

# Eachline takes the following format:

#

#    <device_type> <device_number> <group_name> <device_name>

#

# where <device_type> may be

#    line    = digital I/Oline

#    display    = display device (monitor)

#    audio    = audio device (sound card, or half-sound card; see manual)

#

# The <device_number> is the number of theline/display/audio device that you see

# on the server's console - the number that you would otherwise claim.

#

# The COMBINATION of the <group_name> and <device_name> must be unique.

# If the server encounters non-unique device group/name pairs in this file,

# all but the first will be ignored.

# Neither the <group_name> nor the <device_name> may start with a number.

#

# CREATED ON: 29-September-2004

# BY: Simon Gow

#######################################################################

# File for 4-Box Monkey Cantab boxes

# ---------------- Box 0 & 1 definition

# INPUTS

line     0    box0    LEVER

line     1    box0    LICKSENSOR

line     2    box0    EXTRAREWARDDEVICE_INPUT

line     3    box0    MAGAZINE_DOOR

line     4    box0    FEEDER_REPORT

line     5    box0    PUMP2_FEEDER2_REPORT

line     6    box0    LEVERHOME

line     7    box0    SPARE_INPUT_BOX0

line    16    box1    LEVER

line    17    box1    LICKSENSOR

line    18    box1    EXTRAREWARDDEVICE_INPUT

line    19    box1    MAGAZINE_DOOR

line    20    box1    FEEDER_REPORT

line    21    box1    PUMP2_FEEDER2_REPORT

line    22    box1    LEVERHOME

line    23    box1    SPARE_INPUT_BOX1

# OUTPUTS

line     8    box0    HOUSELIGHT

line     9    box0    PUMP

line    10    box0    EXTRAREWARDDEVICE

line    11    box0    MAGAZINE_LAMP

line    12    box0    PELLET

line    13    box0    PUMP2_FEEDER_2

line    14    box0    LEVERCONTROL

line    15    box0    EXTRAPUNISHMENTDEVICE

line    72    box0    STIMULUS_INFO

line    73    box0    REINFORCEMENT_INFO

line    24    box1    HOUSELIGHT

line    25    box1    PUMP

line    26    box1    EXTRAREWARDDEVICE

line    27    box1    MAGAZINE_LAMP

line    28    box1    PELLET

line    29    box1    PUMP2_FEEDER_2

line    30    box1    LEVERCONTROL

line    31    box1    EXTRAPUNISHMENTDEVICE

line    74    box1    STIMULUS_INFO

line    75    box1    REINFORCEMENT_INFO

# DISPLAY

display  0    box0    SCREEN

display  1    box1    SCREEN

display  2    box2    SCREEN

display  3    box3    SCREEN

# AUDIO

audio    0    box0    SOUND

audio    1    box1    SOUND

audio    2    box2    SOUND

audio    3    box3    SOUND

# SAFETY RELAYS

line    64    R1    SAFETY_RELAY1

line    65    R2    SAFETY_RELAY2

# ---------------- Box 2 & 3 definition

# INPUTS

line    32    box2    LEVER

line    33    box2    LICKSENSOR

line    34    box2    EXTRAREWARDDEVICE_INPUT

line    35    box2    MAGAZINE_DOOR

line    36    box2    FEEDER_REPORT

line    37    box2    PUMP2_FEEDER2_REPORT

line    38    box2    LEVERHOME

line    39    box2    SPARE_INPUT_BOX0

line    48    box3    LEVER

line    49    box3    LICKSENSOR

line    50    box3    EXTRAREWARDDEVICE_INPUT

line    51    box3    MAGAZINE_DOOR

line    52    box3    FEEDER_REPORT

line    53    box3    PUMP2_FEEDER2_REPORT

line    54    box3    LEVERHOME

line    55    box3    SPARE_INPUT_BOX1

# OUTPUTS

line    40    box2    HOUSELIGHT

line    41    box2    PUMP

line    42    box2    EXTRAREWARDDEVICE

line    43    box2    MAGAZINE_LAMP

line    44    box2    PELLET

line    45    box2    PUMP2_FEEDER_2

line    46    box2    LEVERCONTROL

line    47    box2    EXTRAPUNISHMENTDEVICE

line    76    box2    STIMULUS_INFO

line    77    box2    REINFORCEMENT_INFO

line    56    box3    HOUSELIGHT

line    57    box3    PUMP

line    58    box3    EXTRAREWARDDEVICE

line    59    box3    MAGAZINE_LAMP

line    60    box3    PELLET

line    61    box3    PUMP2_FEEDER_2

line    62    box3    LEVERCONTROL

line    63    box3    EXTRAPUNISHMENTDEVICE

line    78    box3    STIMULUS_INFOx

line    79    box3    REINFORCEMENT_INFO

# ---------------- Box User Inputs

# INPUTS

line    80    box0    USER_INPUT_1

line    81    box0    USER_INPUT_2

line    82    box1    USER_INPUT_1

line    83    box1    USER_INPUT_2

line    84    box2    USER_INPUT_1

line    85    box2    USER_INPUT_2

line    86    box3    USER_INPUT_1

line    87    box3    USER_INPUT_2

Configure the Advantech card like this:


Using MonkeyCantab

When you run the task, the main screen looks as follows:

You must connect to a Whisker server, claim an operant chamber (box), and set up the parameters for your tasks. Configuration is explained on a separate page. Once that's done, the traffic lights will turn amber.

With MonkeyCantab v2.0 and higher, a further option is presented: to claim a box with additional debug display (requires Whisker server v2.12.1 or higher). If you tick this option before claiming the box, an additional window will open on the server computer as you claim the box. This window shows a copy of what the subject sees. You can also see what the subject is seeing by browsing the WhiskerServer console, but this option allows you to run multiple copies of MonkeyCantab (e.g. with 6 touchscreen-equipped boxes) and see copies of all your subjects' screens and their touch responses simultaneously in extra windows. If you tick this option and are not using WhiskerServer v2.12.1 or higher, an error message will appear, though MonkeyCantab will still operate normally.

When you are ready, press Start to begin MonkeyCantab.

The traffic lights will turn green and MonkeyCantab will then work through all the modules (tasks) in your task list.

While the task is running, from MonkeyCantab v2.3 and higher, a tick box offers you the opportunity to enable manual delivery of free rewards. When this box is ticked, clicking the button marked "Give free reward now" will deliver a reward immediately to the subject. The nature of that reward is defined in the General parameters. Note that this option may well interfere with the contingencies of the task in progress; its use is not generally recommended. From MonkeyCantab v6.7 and higher, the SHAPE digital input (see Required devices) does the same thing as clicking the "Give free reward now" button (which is to say, it delivers a free reward IF AND ONLY IF the "Enable manual free rewards" tick-box is ticked). The SHAPE input is debounced in software to 10 ms (to allow for mechanical or electronic bouncing of switches); this means that after the SHAPE input is triggered, second response within this time will be ignored.

In MonkeyCantab v7.0 and higher, an additional tick box enables buttons marked Kick and Network integrity test. These are for testing purposes only:

· Kick sends a "kick" command to the current module. In most modules this is unsupported and does nothing, but under certain circumstances it does more:

In PAL, in the intertrial interval, it starts a new trial.

· Network integrity test sends 1000 zero-delay timer messages to the server and counts them all back, checking that the communication with the server is working properly.

When the task finishes, it saves data to disk and pops up a new dialogue box for you to select a database to store the data to. (The data sources are configured under Control Panel → ODBC.) If you previously specified an ODBC data source in the parameters, that data source is used automatically and you will only see a dialogue box if something goes wrong and the program needs your input.

Your data will be saved and MonkeyCantab has then finished.

From MonkeyCantab v2.4, it is also possible to automate execution by running MonkeyCantab from the command line.


Automatic command-line execution

MonkeyCantab v2.4 and above supports command-line execution.

To execute commands from the command-line, you will need to run a Command Prompt. Windows has one under Start / Programs / Accessories / Command Prompt. Alternatively, you can click Start / Run and type cmd into the "Run" box. You will see a prompt such as

Microsoft Windows 2000 [Version 5.00.2195]

(C) Copyright 1985-2000 Microsoft Corp.

C:\Documents and Settings\Rudolf>

I'll show things from the computer in blue, and things that you type in red. Suppose you have installed MonkeyCantab into C:\Program Files\MonkeyCantab, as is common. You could then type

"c:\program files\monkeycantab\monkeycantab" -?

for syntax help. (The quotes are necessary because "program files" has a space in it.) This would produce something like the following:

MonkeyCantab v2.4 - DEBUG build compiled on Feb 16 2006 at 12:57:24

Usage:

 monkeycantab [-?] [-help] [-autoexecute] [-server SERVER] [-port PORT] [-box BOX] [-debugdisplay] [-config CONFIG] [-enableshape]

Options:

                 When run with no options, starts MonkeyCantab in GUI mode

 -?              Prints this syntax message

 -help           Prints this syntax message

 -autoexecute    Starts MonkeyCantab in auto-execution mode.

                 This requires you to specify a configuration file.

 -server SERVER  Specifies a Whisker server to use (default "localhost").

 -port PORT      Specifies an IP port to use (default 3233).

 -box BOX        Specifies a box (operant chamber) to use (default 0).

 -debugdisplay   Creates a debugging display (default is not to do this).

 -config CONFIG  Specifies a configuration file to load.

 -enableshape    Enables the shaping digital input.

Example:

 monkeycantab -autoexecute -box 1 -config "d:\my configs\subject1_DMTS.xml"

So, if you wanted to run a MonkeyCantab session from a pre-saved configuration file, (1) ensure that WhiskerServer is running, and (2) type a command such as

"c:\program files\monkeycantab\monkeycantab" -autoexecute -box 1 -config "d:\my configs\subject1_DMTS.xml"

Note the use of quotes to surround all filenames with spaces in them. This will run MonkeyCantab, connect to the default Whisker server ("loopback", or the same computer that MonkeyCantab is running on) with the default IP port (3233), and then try to claim box 1 and run a session based on the configuration file named "d:\my configs\subject1_DMTS.xml".

Log files for the session will be stored in the current working directory.

To run multiple consecutive sessions for the same subject, using different configuration files (e.g. for different reward parameters), you could create a batch file. Suppose you use your favourite text editor to create a batch file called Subject7SWM_IDEDRun.BAT that contains the following text:

@echo off

REM the "echo off" command is optional, but has the effect of preventing remarks and commands from being shown on the screen

REM The initial "@" suppresses output from the first "echo off" command

REM "echo" allows you to print things to the screen

REM As you may have noticed, all lines starting with "REM(ark)" are ignored!

echo About to run subject 7 in box 0, first session (spatial working memory task)...

REM we want the output files to go somewhere sensible, so we change directory to that place first

cd "d:\my output files"

REM OK, now we run MonkeyCantab

"c:\program files\monkeycantab\monkeycantab" -autoexecute -box 0 -config "d:\my configs\subject7_SWM.xml"

echo About to run subject 7 in box 0, second session (ID/ED task)...

"c:\program files\monkeycantab\monkeycantab" -autoexecute -box 0 -config "d:\my configs\subject7_IDED.xml"

echo Finished.

As long as WhiskerServer is running, you could then type

Subject7SWM_IDEDRun

from your command prompt and the batch file would execute, running two MonkeyCantab sessions in sequence. The command-line window would show:

About to run subject 7 in box 0, first session (spatial working memory task)...

(pause while MonkeyCantab runs in a separate window)

About to run subject 7 in box 0, second session (ID/ED task)...

(pause while MonkeyCantab runs in a separate window, again)

Finished.

If need be, you can press CTRL-C or CTRL-BREAK to interrupt batch files.

Technical note: To allow this to work on as many operating systems as possible, this facility is implemented with a small program called MonkeyCantab.COM, which provides syntax help, checks syntax, and passes on the message to MonkeyCantab.EXE, which it expects to be in the same directory as itself. The .EXE file is the main graphical user interface (GUI) program and behavioural task suite. This is necessary because the GUI program may not have a command line to provide syntax help to. When you type monkeycantab at the command line, Windows prefers to execute the .COM version, rather than the .EXE.


Converting DOS CANTAB STM files

In MonkeyCantab's installation directory (usually C:\Program Files\MonkeyCantab) there's a Perl script called convert_stm_to_monkeycantab_xml.pl.

This reads old DOS CANTAB stimulus (STM) files, which encode Cambridge Cognition "quad pattern" stimuli, and produces an XML file legible by MonkeyCantab, so you can import your old stimuli.

To use this, download and install Perl 5.10 or higher (e.g. from ActiveState). Run the Perl script from the command line. Specify the input (something.stm) and output (something.xml) files.


Configuring MonkeyCantab (general settings)

To configure MonkeyCantab, choose Parameters from the main screen.

MonkeyCantab allows you to run a selection of tasks. You must therefore tell MonkeyCantab which tasks you want to run, and in what order.

You may load a configuration file or save it again. (If you load a configuration file, alter the settings, and click OK, your changes will be saved automatically for next time.) Loading may take a few seconds if the configuration files contain many stimuli, such as the supplied ID/ED task stimuli.

You may set any of the subject details (ID, session number, comment) by typing in the relevant boxes. You may set a data file if you choose; if you load a configuration file, the program will choose a default data file for you. (Similarly, if you type in a subject name from scratch, and no data file name exists, the program will guess one for you; if you wish to regenerate a new filename based on the current subject name and date/time, click Autoset.) This data file contains a textual summary of your results. The full result set is saved in a database via the ODBC (Open Database Connectivity) protocol. You may select the database at this point, or when the program finishes running.

A sample configuration is supplied with MonkeyCantab. It's called "MonkeyCantab_TestConfig_And_SampleObjectLibrary.xml" and it lives in the directory you installed MonkeyCantab into (typically C:\Program Files\MonkeyCantab).

To pick an ODBC database in advance of finishing, click Pick and you will be offered the ODBC Data Source picker (below). Your choice will be recorded and will apply to this subject from now on (or until you specify a different source).

If you don't specify an ODBC data source now, or you delete the value in the ODBC data source name box, you'll be asked to choose when the task ends (and that choice will only apply to the session in progress). To find out how to create a new ODBC source, click here.

The bottom half of the screen contains the module (task) list for the subject. You may specify any number of tasks from those that MonkeyCantab provides. They may be executed in any order. Click Add Module to add a new module to the end of the list. Click a module in the list to select it, and click Remove Module to or remove that module from the list. Click Move Up or Move Down to move a module up/down the list.

Click Configure general parameters to set up parameters that apply to all tasks.

Click Configure visual objects to set up objects used by the tasks.

Select a module from the list and click Configure module to set up parameters for the chosen module. Parameters that are specific to each task are explained with each task's description (click on the links below). The tasks are listed on the first page.


General parameters

Links between tasks

· Duration (s). The duration of the link between tasks.
· Play sound? If you select this option, the Link sound will be played at the start of the link (see Sounds below).
· Use houselight? By default, the houselight is on during tasks but switched off during linking periods. Choose this option to keep it on during the links.
· Start with link? If you choose this option, the session will start with a link before any tasks begin. This allows you to insert a pause before the start of the first task.
· Link sound. Click to configure the sound played at the start of the link.

Houselight

· Disable houselight during tasks? If ticked, the houselight will be off during actual tasks. Note that if you don't have the houselight on, the "punishment darkness" will be harder to notice! :-) (Although the notional extra darkness will still contribute to the punishment time, so specifying a "darkness time" with no houselights allows you just to specify a timeout as a punishment.)

Visual appearance and touchscreen control

· Background colour. Choose the colour of the background for use during tasks, by specifying a red/green/blue combination - by default black (red = 0, green = 0, blue = 0). Each of the three numbers can range from 0 (none) to 255 (full). So black is R=0, G=0, B=0; white is R=255, G=255, B=255; bright red is R=255, G=0, B=0; bright yellow is R=255, G=255, B=255... and so on. When no task is running, the display will be black.
· Respond to mouse input as well as touches. By default, the program responds to touches and ignores direct mouse input. This allows mouse input to be used in addition to touchscreen input. (Note that WhiskerServer can be used to make mouse input to the server's "observation" copy of a display mimic touchscreen input to the "real" copy of a display - the one the subject sees. This option allows mouse input to the "real" copy to be used.)
· 'Strict' touches. If ticked, the subject is not allowed to touch the background and then "slide" its finger onto the stimulus, or to leave the finger on the screen from a previous trial. It must remove its finger and touch the stimulus squarely. Note that the SimpleSchedules task requires, and always uses, strict touches, regardless of this setting (and it always uses the "touchscreen timeout" value described next).
· If touchscreen fails to tell us the finger's come off, how long to wait before assuming it? The use of "strict" touches requires that the touchscreen send "finger off" messages correctly. Some touchscreens fail to do this, occasionally. If this happens, then MonkeyCantab might think that a finger is on the screen when actually it has been removed. So that the program does not wait for ever, you can specify a timeout here: if this time elapses, the equivalent of an automatic "finger off" message is generated so the task can progress. Specify 0 for no limit, if you're confident in your touchscreen!

The "strict touches" facility is supported in the following tasks:

· Touch Training
· Ambiguous Cue Task
· Concurrent Discrimination
· Conditional Visual Discrimination
· Continuous Performance Task
· Delayed Matching/Non-matching To Sample
· Impulsive Choice
· List-based Delayed Matching/Non-matching To Sample
· Multiple-Choice Serial Reaction Time Task
· Multireinforcer Search Task
· Paired-Associates Learning
· Rapid Visual Information Processing
· Reversal Learning
· Self-Ordered Search (Spatial Working Memory)
· Spatial Discrimination
· Stimulus-stimulus PAL
· Visual Discriminations (predefined, superimposed)

The "strict touches" facility does not apply to the following tasks:

· Reinforcement Familiarization (not applicable)
· Simple Schedules of Reinforcement (always uses strict touches, as above)

Reward

· Set default reward parameters. Click to edit the reinforcer that will be delivered by default when a task delivers "reward". Most tasks use the default reward/punishment reinforcers.
· Overall number of rewards. Optionally, MonkeyCantab can terminate an entire session when a certain number of rewards have been delivered (where "one reward" is defined as above). This applies across all tasks. Specify 0 for no limit. For example, if you specify a limit of 100 rewards here, and your subject starts with a Reversals task in which it gains 60 rewards, and then proceeds to a DMTS task, then when 40 rewards have been gained in the DMTS task, the whole session will end, even if the DMTS task's trial limit has not yet been reached. Note that this facility does not "interrupt" individual tasks at odd points. If a task allows the delivery of two or more rewards in one trial (e.g. in DMTS if both Phase 1 and Phase 2 are rewarded, or in Spatial Working Memory if every touch is being rewarded), then the DMTS task gets to choose when it actually ends (in this case, after a full trial has been completed). So this limit is an "advisory" rather than an "absolute" limit: tasks are allowed to complete trials that they're in the middle of, even if they hit this limit. In practice, this limit will not be exceeded by very many.

Punishment

· Set default punishment parameters. Click to edit the reinforcer that will be delivered by default when a task delivers "punishment". Most tasks use the default reward/punishment reinforcers.

Media

· Default media directory. If the server needs WAV files or bitmaps (.BMP) and cannot find them, it looks in this directory. If you have a collection of multimedia files (.WAV, .BMP) that you are using with MonkeyCantab, we suggest you select that directory here. Click Set to browse for the directory.

Other sounds

You may edit the the predefined marker sounds (Marker1, Marker2, Marker3) here.

· Marker 1 is typically used to indicate the start of a trial.
· Marker 2 is typically used to indicate the start of a second phase of a trial.
· Marker 3 is typically used to provide response feedback.

Autostop facility

· Automatically stop MonkeyCantab after... If ticked, you may specify a time (in minutes). If the subject is inactive this long, MonkeyCantab will terminate and alert the user.

Overall session time limit

· Automatically stop MonkeyCantab after... If ticked, you may specify a time (in minutes) to apply a session time limit across all modules/tasks; if this expires, any ongoing task will be aborted.


Reinforcers

You can edit reinforcers with the following dialogue box. All reinforcers (including those nominally reward or punishment) are edited here. This means that you can make your "punishers" rewarding, or vice versa, and have detailed control over all types of reinforcement.

· Give pellet? If you select this option, pellets will be delivered when the subject is rewarded.
· Pellets per reinforcement. Choose the number of pellets per reinforcement. (This option is only applicable if you choose to give pellets in the first place.)
· Pellet pulse length (ms). Select the length, in milliseconds, of the electrical pulse that will successfully activate your pellet dispenser. (For typical Med Associates 45-mg pellet dispensers, 45 ms works quite well, and for Cambridge Cognition pellet dispensers, 100 ms is typical, but you will have to experiment to find the best value for your device.)
· Time between pellets (s). The interpellet gap. Only applicable if you are giving multiple pellets per reinforcement. This determines the length of time, in seconds, that the program will wait between giving each pellet in a multi-pellet reward. Choose a value that is long enough to let your pellet dispenser recover from the previous delivery - very short interpellet gaps can cause pellet dispensers to jam.
· Use pellet magazine lamp? If selected, then the pellet magazine lamp will be turned on when a pellet reward is delivered, and turned off when the subject next collects reward (i.e. responds at the pellet magazine door).
· Turn on pump 1? Select this to use pump reinforcement (the PUMP device).
· Pump reinforcement duration. How long should the pump run?
· Pump contingent upon licking during this time? If this option is not ticked, then the pump simply runs for the time specified. If you tick this option, the pump is available for this duration, but is only actually activated when the subject licks.
· Each lick delivers liquid for this duration (s): If the pump is made contingent upon licking, then each lick activates the pump for a certain time. Specify that time here.
· Turn on pump 2? Optionally, you can use the PUMP2 device to deliver an alternative or additional substance (e.g. mildly aversive substances, or an alternative reward). Configure the options as for the first pump.
· Extra reward device? To have another device activated when the subject is rewarded (e.g. an external tone generator), tick this option.
· Duration (s). How long should this extra reward device be activated for?
· Extra punishment device? To have another device activated when the subject is punished (e.g. an external tone generator), tick this option.
· Duration (s). How long should this extra punishment device be activated for?
· Flash visual stimulus? Optionally, an arbitrary visual stimulus can be displayed during reinforcement, and flashed if need be. The stimulus so chosen will not respond to being touched in any way (moreover, it will be "transparent" to touches, so anything being displayed by the MonkeyCantab task in use can still be responded to - so take care not to position your visual reinforcement stimulus where it might get in the way of a task!).
· Click Choose to select a stimulus from the available visual stimuli.
· X and Y coordinates. Specify an X coordinate and a Y coordinate for the centre of the stimulus (see Locations for visual stimuli).
· Overall duration (s). Choose the duration for which the stimulus should be displayed/flashed for.
· On time and off time (s). Choose the "on time" and "off time" for the flashing stimulus. To explain on time, off time, and overall duration, suppose the overall duration is 10 s, with the on time at 2 s and the off time at 1 s. Then the stimulus will be on for 2 s, off for 1 s, on for 2 s, off for 1 s, on for 2 s, off for 1 s, on for 1 s - and then a total of 10 s has elapsed and the stimulus is turned off and left off.
· Darkness? If you select this option, the houselight will be switched off as part of the reinforcer.
· Darkness time (s). This sets the length of time the houselight will be off.
· Set sound parameters. This configures the sound associated with this reinforcer (which can be disabled, or a WAV file, or a simple tone-like sound).
· Flash REINFORCEMENT_INFO line. This controls the REINFORCEMENT_INFO line; by default, this is flashed on for 10ms for the default reward and 20ms for the default punishment.
· Database considers this reinforcer to be a reward. Many tasks deliver "rewards" and "punishments"; the reinforcement editing process allows those rewards/punishments to be made somewhat more ambiguous, if desired! Since the database classifies some events (particularly in the MonkeyCantab_IndividualEvents table) as being "correct" if they lead to reward and "incorrect" if they lead to punishment, choose here whether this reinforcer should be considered (for this purpose) a "reward" - if not, it will be considered a "punishment". This option has no impact on the operation of actual tasks, just the data-recording features.


Sounds

You can edit sounds with the following dialogue box.

The following options are available:

· Play sound. If unticked, no sound will be played. This allows predefined sounds (e.g. for Link, Marker[1-3], Reward, Punishment) to be silenced.
· Use WAV. If ticked, a waveformat (.WAV) file will be played. Otherwise, a simple tone will be played.

Options for WAV files

· Click Set to choose the filename. Otherwise, a simple tone will be played, configured as follows:

Options for simple sounds

· Frequency (Hz). Specifies the sound's frequency in Hertz. Click Specify Note to specify a musical note (e.g. C4 is middle C; A4 is concert pitch 440 Hz; frequencies will be rounded to integers).
· Sound type. Choose the waveform of your sound. The options are Tone, Sine, Square, Sawtooth. "Tone" is similar to "Sine" but contains more energy; both give fairly pure tones. "Square" and "Sawtooth" are buzzy.

Options for either

· Level (0-100). The volume of the sound (minimum 0, maximum 100). More specifically, the level number is 100 minus the sound attenuation in decibels (dB).
· Duration (s). The duration of the sound in seconds. The meaning of this is obvious for simple sounds. For WAV files, which have a length encoded into the file itself, the duration specified here is the length of time that MonkeyCantab will wait for when playing WAV files and waiting for them to complete (whether the actual sound is longer or shorter than this).


Mimicking Monkey CANTAB for DOS

Cambridge Cognition Ltd used to sell Monkey CANTAB for DOS.

To mimic this, several settings are relevant.

Sounds

Reward sound: 1000 Hz, sound type square, volume 85

Feedback sound (marker 3?): 300 Hz, sound type square, volume 85

Punishment sound: 40 Hz, sound type square, volume 85

[Frequencies confirmed with Cambridge Cognition, e-mail of 25 Feb 2004: PC_TONES file reads "correct=1000 feedback=300 incorrect=40".]

[Square-wave choice is preferred by Spencer Tye of Merck, Sharpe, Dohme, Feb 2004.]


Use with dogs

Woof.

For use with dogs, in apparatus that has an omnidirectional lever (an on/off device triggered whenever the dog pushes a stick in any direction).

The lever can be used to initiate trials in a variety of tasks. This is configured within each task, not in the General Parameters.

From the program's point of view, the dog lever is indistinguishable from the monkey lever (i.e. it's simply an on/off lever as far as the program is concerned, and is referred to as LEVER in the Required Devices).

In general, when a lever-press is required to start a trial:

· the houselight is on throughout a task and is not switched off during the ITI (unless the previous trial was failed and the punishment includes darkness)
· lever activations are required to start each trial, rather than to start the task as a whole
· the Marker 1 sound (where used), which previously indicated the start of the trial, will indicate the opportunity to press a lever to start the trial
· when the lever is activated, the trial begins immediately
· if the lever is already being held "on" when a lever response is required, the program waits until it's released and activated again.
· if the session time limit elapses while the program is waiting for a lever-press, the program will wait for the current trial to be initiated and completed, and will then finish.


Visual stimuli

Stimuli used by MonkeyCantab come from one of two places: the visual object library, which contains stimuli you have defined, and a group of predefined stimuli.

For further details, see:

· How to choose stimuli for use with a task
· How big should a stimulus be? The coordinate and grid systems used by MonkeyCantab
· Editing your own stimuli
· Predefined stimuli


Choosing stimuli for a task

Many tasks ask you to pick stimuli to use. For example, here's the Simple Schedules task:

It would like to use two stimuli (the response object and the marker object). At the moment, the stimuli "SS_bluebox" and "SS_redbox" are being used. But you could change that. If you know the name of one of your stimuli in the visual object library, or the name of a predefined stimulus, you can type that name directly. Otherwise, press the Set button next to the object. You'll get a choice like this:

This is the list of all the objects currently defined in your Visual Object Library. If there aren't any, or there aren't enough, you need to edit the visual object library to add some more. If you see one that you want, highlight it (by clicking on it) and then click OK. If you want to use a predefined object, click Choose predefined object instead, and you'll see this:

Choose a stimulus set from the predefined stimuli available; then choose an object within that set, and press OK.


Locations for visual stimuli

If you're having problems positioning your own stimuli, see My stimuli are mis-positioned.

What coordinate system does MonkeyCantab use?

How do the tasks position objects on the screen?

Note: this system has changed (May 2011) from the previous system of multiple fixed grids.

All MonkeyCantab tasks treat the screen as if it were a 1000 (wide) x 750 (high) rectangle. They then use one or more location sets to determine where to position stimuli. For example, a two-stage task might display a single stimulus, then display a choice of two stimuli; this task might have a location set for the first phase (having one location in the set) and then a location set for the second phase (having two locations in the set). When MonkeyCantab displays a stimulus at a location, it calculates the centre of the stimulus, and places the centre at the location in question. Where exactly those locations are on the screen is something you can configure in the following dialogue box. There are many predefined options, including some for avoiding central areas of the screen (e.g. if you have a central ceiling-based feeding unit that would be in the way).

The task will determine a name for the location set (shown at the top of the dialogue box), and may specify a certain minimum and maximum number of locations that it needs. (This example is from the MCSRT task, which has insisted that it needs at least 1 but no more than 5 coordinates.)

You may then edit the locations (Add, Remove, Up, Down, Edit). A graphical preview is shown (and if you click on a location to select it, that location turns red in the preview). The location numbers (in this example, numbers 0-4) are then referred to by the task (e.g. for data storage, and sometimes for further configuration purposes).

When you click Edit, you are offered this dialogue:

... and you can alter the coordinates by hand.

You can also choose from a large number of preset defaults, categorized by the number of locations within them. Try clicking on them to see previews. The various tasks use different defaults; explore the tasks to see what they're using (and then change it if you like).


My stimuli are mis-positioned!

What do you do if your stimuli are mis-positioned? There are several things you can do.

(1) Ensure that your touchscreen is calibrated correctly.

If the stimuli look OK but touches aren't being detected at quite the right position, your touchscreen needs calibration. WhiskerServer helps you calibrate. When you're not running MonkeyCantab but have WhiskerServer running, choose "Display → Show test pattern on all displays" from the WhiskerServer menus. Now touch your touchscreen; you should see a crosshair appear and change colour. If the crosshair isn't exactly where your finger is, recalibrate your touchscreen (for example, using the UPDD control panel - e.g. Start → Control Panel → Pointer Devices → Calibrate).

(2) Alter the positioning by editing the relevant Locations for the task in question.

(3) Alter the positioning by redefining the stimuli.

How does the program position stimuli?

· When MonkeyCantab displays a stimulus, it does so at a location. The pattern of possible locations depends on the task; for example, by default, the D(N)MTS task uses a 3x3 (9-way) grid of locations, while the Visual Discriminations task uses a two-way grid.
· Next, it calculates the total extent (X extent and Y extent) of your stimulus.
· It works out the midpoint of your stimulus, which it assumes to be the point that's halfway between the leftmost point and the rightmost point, and halfway between the topmost point and the bottommost point.
· It displays your stimulus so that the midpoint of your stimulus is at the grid location.

Here are some examples of how you can use this:

Note that the figures below refer to the midpoint of a grid rectangle; in the newer (2011) Location system, this midpoint is the location that you specify itself. This in no way alters the logic shown below.

Note that for BITMAPS, you may need to specify a desired width/height, or your stimuli may be mis-positioned. See bitmaps.

The tasks will also have problems determining the size of text. You should therefore test any text or bitmap stimuli before using them. (More realistically, you should test all stimuli before using them!)

(4) Move the whole display left/right or up/down using the controls on your monitor.

(5) Shrink or enlarge the whole display using the controls on your monitor.

(6) Shrink or enlarge the whole display by altering the size of the screen's border, using WhiskerServer.

If stimuli are too far left when they're on the left of the screen, too far right when they're on the right of the screen, too far up when they're at the top, and so on, you can simply shrink the active area of the screen (within WhiskerServer, choose Server → Configure hardware → Display devices, and alter the "border" setting).


Editing stimuli

Editing the visual object library

Every visual object (picture) used by MonkeyCantab lives in the visual object library and has a unique name associated with it.

· You can add and remove objects from the list - though you cannot remove an object that is being used by one of your tasks. You can make a copy of an object and you can rename objects. If you rename an object, all references to it by other tasks in your task list will be amended accordingly.
· Click Define object to configure the object itself.
· If you are already connected to a Whisker server, you may click Test object, and the object will be displayed in a new window (a "virtual device window") on the server's desktop for you to inspect it.
· Click Report size to show the overall size in units (compared to an active screen area that is 1000 notional units wide and 750 units high).
· Click OK to accept your changes, or Cancel to abort.
· Sometimes (as shown above) when you select an object, a message appears saying "WARNING: This object has no touchable components." In this case, the object will not respond to being touched, so you are probably best avoiding it in all your tasks until you have added a component to it that is touchable (see below)!
· You may add predefined objects, either by selecting them from a list (click Predefined object) or by specifying their name directly (Predefined by name).
· You may import and export objects from other configuration files. You may find it convenient to keep one configuration file as a master object library (for example, you could give it a dummy subject name and not use it to run tasks). If you design a handy object for one subject, you could export it to the library. When you create a new configuration file, you can either load one that's quite similar and save it under a new name, or start from scratch and import objects from your library. Click Import and Export to import/export objects. You will be asked to choose the configuration file for import/export, and then to choose the objects to copy across. When importing, you can select multiple objects (click on several objects). If objects with the same name exist in the file you are importing into (or exporting to), the objects will be renamed upon arrival.

A sample object library is supplied with MonkeyCantab. It's called MonkeyCantab_TestConfig_And_SampleObjectLibrary.xml.

Editing individual objects

When you use your new object in a MonkeyCantab task, the task may place your object anywhere on the screen. Each task defines certain locations that it uses (for example, the ThreeChoice task displays them in one of three locations in a horizontal line in the middle of the screen). The task's locations are defined as rectangles. The tasks automatically try to centre your objects in these rectangles. (Some objects, like text, give them more difficulty!) This centring system relies on you basing the top-left corner of your objects at the point (0,0). If you don't, your objects will be offset in the tasks.

Editing components of individual objects

When you clicked Define in the dialogue box above, you can define components of one particular object in the dialogue box shown below.

Here we are defining the object called "green", and at present it has two components, named "greenpie" and "bluerectanglebackground". The objects are in a stack: "greenpie" is at the top of the stack, so it will be the object in front of all the others. "Bluerectangle..." is at the bottom of the pile.

· Click Add or Remove to add/remove components from the list. When you click Add, you will be offered a choice of the various types of component that are available, and then be asked to give your new component a name. (Note that two components can't have the same name.)

· Click Copy or Rename to copy or rename a component. (Note that two components can't have the same name.)
· Click Up or Down to move components up or down the stack.
· Click Define to specify a component's details.

Adding copies of predefined objects to your library of stimuli

MonkeyCantab is supplied with a set of predefined stimuli. You can use them in your tasks without having to add them to your Visual Object Library. However, you can also make copies of predefined stimuli in your library; you can then edit them to make new stimuli.

When you click on Predefined object, you are offered a choice of predefined stimuli. First, pick the stimulus set:

Next, choose the object number within that set:

Finally, give your copy a name:

When you click on Predefined by name, the same procedure applies except that steps 1 and 2 are replaced by you typing in the name of a predefined stimulus or a variant thereof (see Predefined stimuli), like this:


Defining components of objects

What do the components look like, and how do we define them?

Aside from bitmaps and text, all component types are illustrated in the picture below.

Your objects should begin at the top-left point (0,0). Increasing x/y coordinates move to the right and down.

Which components are touchable?

Note that arcs, bezier splines, lines, and text CANNOT support mouse or touchscreen events. Everything else (bitmaps, chords, ellipses, pies, polygons, rectangle, rounded rectangles) can.

What part of the object is touchable?

What you see is what you can touch. If you want a larger area to be touchable, define a black rectangle of the desired size (all MonkeyCantab tasks use a black background), giving it a black or null pen, and place it at the bottom of your object's stack of components.

Defining the components

When you click Define in the Component Definition dialogue, you can set the options for a particular component. Here are the possible components:

· Arc
· Bezier spline
· Bitmap
· CamcogQuadPattern - a special type of shape used to implement older stimulus types
· Chord
· Ellipse
· Line
· Pie
· Polygon
· Rectangle
· Rounded rectangle (roundrect)
· Text


Arc

· The meaning of the points is explained in the figure above.
· Click Pen options to determine how the edge of the object is painted.


Bezier spline

· The meaning of the points is explained in the figure above and in the examples and mathematical description below.
· Click Pen options to determine how the edge of the object is painted.

Some more examples:

Definition of a Bezier curve (de Casteljau, 1959; Bezier, 1962)

Let's start simple. Imagine a line that begins at A and ends at D. Let t be a variable from 0 to 1. We can define a point PAD(t) on the line segment AD as

PAD(t) = (1-t)A + tD

If we add another point, B, into the picture, we can define PAB(t) as a point between A and B, and PBD(t) as a point between B and D. If we apply the same method to define PAB-BD(t) as a point between PAB(t) and PBD(t), we get

PAB(t) = (1-t)A + tB

PBD(t) = (1-t)B + tD

PAB-BD(t) = (1-t){ (1-t)A + tB } + t{ (1-t)B + tD) } = (1-t)2A + 2t(1-t)B + t2D

This quadratic equation in t defines a quadratic Bezier curve - a parabola. For computer graphics purposes, cubic Bezier curves are more often used. As you might expect, these are defined by four points A, B, C, and D. If the cubic Bezier function is defined as a point between PAB-BC(t) and PBC-CD(t) in the same manner as we've been doing so far...

PAB(t) = (1-t)A + tB

PBC(t) = (1-t)B + tC

PCD(t) = (1-t)C + tD

PAB-BC(t) = (1-t){ (1-t)A + tB } + t{ (1-t)B + tC) } = (1-t)2A + 2t(1-t)B + t2C

PBC-CD(t) = (1-t){ (1-t)B + tC } + t{ (1-t)C + tD) } = (1-t)2B + 2t(1-t)C + t2D

CubicBezier(t) = (1-t)PAB-BC(t) + tPBC-CD(t) = ... = (1-t)3A + 3(1-t)2tB + 3(1-t)t2C + t3D

Summary: Where we end up

Cubic Bezier splines are usually defined with endpoints A and D and control points B and C that are not on the curve, as above. The equation for a point on this curve is given by

CubicBezier(t) = (1-t)3A + 3(1-t)2tB + 3(1-t)t2C + t3D

where t is the curve's parameter and ranges from 0 to 1. This curve can be expressed in a different way: as a curve passing through four points, PQRS, where P=CubicBezier(0), Q=CubicBezier(1/3), R=CubicBezier(2/3), and S=CubicBezier(1). From the formula above,

P = A

Q = 1/27(8A + 12B + 6C + D)

R = 1/27(A + 6B + 12C + 8D)

S = D

and therefore

A = P

B = 1/6(-5P + 18Q - 9R + 2S)

C = 1/6(2P - 9Q +18R - 5S)

D = S

In MonkeyCantab's Bezier dialogue box (above), you enter the points ABCD and MonkeyCantab shows you the points PQRS ("The curve passes through these points: ...").

Some properties of Bezier curves

· Bezier curves always pass through their first and last points (A and D here), but not necessarily through their other control points (B and C).
· A Bezier curve always lies fully within the convex hull defined by its control points.
· The line AB has the same tangent at the curve at A, and the line CD has the same tangent as the curve at D.
· Bezier curves are always divisible into two Bezier curves (in a manner which makes them easy to draw iteratively). See Yuan, F. (2001), Windows Graphics Programming, Hewlett-Packard/Prentice Hall, New Jersey (p481 onwards).


Bitmap

· Choose the (x, y) coordinates of the top left point. This is normally (0,0).
· Choose the filename of the bitmap. Click Set to browse for the file. If you are running MonkeyCantab on a different computer to WhiskerServer, remember that the filename must be accessible by the server, not the client.
· Choose a width and height to force the bitmap to, or leave the values at -1 to use the bitmap's intrinsic height. Note that using the bitmap's intrinsic size may lead MonkeyCantab to mis-position the stimulus (because MonkeyCantab doesn't then know how big the bitmap is, and it may mis-calculate its position).
· Choose whether to stretch or clip the bitmap (leave the tickbox unticked for clipping). Stretching means that the bitmap is deformed to fit your specified width/height. Clipping means that the bitmap's size isn't changed, but that the right/bottom edges may be cut off if the width/height you specify are smaller than the bitmap's intrinsic size.


CamcogQuadPattern

This allows you to edit 16 x 16 coloured patterns, as used by many of the predefined stimuli. You can see a small preview of the final stimulus as you edit it (though its actual, final size may be altered by changing the size of each 'pixel', or dot, making up the pattern).

· Choose the (x, y) coordinates of the top left point. This is normally (0,0).
· Choose the size of each 'pixel'.
· Specify the background colour, and the detail and colour for each quadrant.
· Colours are specified from 0-255. Here are some examples with different the red/green/blue (RGB) components:
· 0/0/0 gives black;
· 255/0/0/0 is red;
· 0/255/0 is green;
· 0/0/255 is blue;
· 255/255/0 is yellow;
· 255/0/255 is magenta;
· 0/255/255 is cyan;
· 255/255/255 is white;
· 100/100/100 is a dark grey;
· 255/150/0 is an orangey colour; and so on.


Chord

· The meaning of the points is explained in the figure above.
· Click Pen options to determine how the edge of the object is painted.
· Click Brush options to determine how the inside of the object is filled.


Ellipse

· The meaning of the points is explained in the figure above.
· Click Pen options to determine how the edge of the object is painted.
· Click Brush options to determine how the inside of the object is filled.


Line

· The meaning of the points is explained in the figure above.
· Click Pen options to determine how the edge of the object is painted.


Pie

· The meaning of the points is explained in the figure above.
· Click Pen options to determine how the edge of the object is painted.


Polygon

· The meaning of the points is explained in the figure above. You need at least three points for a polygon component.
· Click Add or Remove to add points to the polygon or remove them.
· Click Edit to alter a point.
· Click Up or Down to re-order the points.
· The meaning of the rather complicated winding/alternate fill setting is also explained in the figure above.
· Click Pen options to determine how the edge of the object is painted.
· Click Brush options to determine how the inside of the object is filled.


Rectangle

· The meaning of the points is explained in the figure above.
· Click Pen options to determine how the edge of the object is painted.
· Click Brush options to determine how the inside of the object is filled.


Rounded rectangle

· The meaning of the points is explained in the figure above.
· Click Pen options to determine how the edge of the object is painted.
· Click Brush options to determine how the inside of the object is filled.


Text

· Choose the (x, y) coordinates of the top left point. This is normally (0,0).
· Set the text itself.
· Set the text height (in pixels, not points), or use 0 for a default setting.
· Choose the font name to be used by the server.
· Choose whether the font should be italic or underlined.
· Choose a font weight (equivalent to "boldness", and ranging from 1-1000), or use 0 for a default weight.
· Choose the text colour. Bear in mind that picking a black font (as would be common for wordprocessing and the like) will make the font invisible on the default black background of Whisker screens. Alter the background colour, place the text on another object, or change the font colour.
· Many of the settings listed above can be set by clicking the Set font button, which lists the fonts available on your system.
· Choose whether the font should be opaque or not. If it is opaque, the gaps between the letters are filled in with a background colour, in which case you may choose this too.


Pen options

Pens draw round the edges of components.

· Choose a pen style. The options solid, dash, dot, dashdot, and dashdotdot should be fairly self-explanatory. Null gives an invisible pen. Insideframe is relevant when the pen is thick; for example, if you draw a circle of diameter 100 units with a pen of width 20 units, the circle will normally end up having an external diameter of 120 units and an internal diameter of 80 units (as the pen overlaps by 10 units on the inside and the outside of the circle). If you specify insideframe, the circle's outside diameter is 100 units in this situation.
· Choose a pen width in pixels.
· Choose a pen colour by specifying values from 0-255 for the red, green, and blue components of the colour.


Brush options

Brushes are used to fill the insides of solid components with colours or patterns.

· Choose a brush style. This may be hollow (invisible), solid, or hatched (in which case you can specify the hatching style and colour).
· For solid and hatched brushes, choose the hatching colour.
· If you select a hatched brush, choose the hatching style. The hatching styles are back diagonal (lines at 45° anticlockwise from the horizontal axis), cross (horizontal and vertical lines); diagcross (lines at 45° clockwise and anticlockwise from the horizontal); fdiagonal (lines at 45° clockwise to the horizontal); horizontal (horizontal lines); vertical (vertical lines).
· A hatched brush may either be opaque or transparent. If it is transparent, you can see through the hatching to whatever is beneath. If it is opaque, you may set the background colour used to fill in the gaps in the hatching.


Predefined stimuli

MonkeyCantab is supplied with a set of built-in stimulus sets. They are:

Stimulus name

where X is from 1 to...
· University of Cambridge ID/ED stimuli: shape set, line set.

univcam_IDED_shape_X

univcam_IDED_line_X

54

44
· Cambridge Cognition DNMTS stimuli: sets 0, 5, 6, 7.

camcog_mdms0_X

camcog_mdms5_X

camcog_mdms6_X

camcog_mdms7_X

430

469

16

10
· Cambridge Cognition PAL stimuli: sets 0 to 5.

camcog_pal0_X

camcog_pal1_X

camcog_pal2_X

camcog_pal3_X

camcog_pal4_X

camcog_pal5_X

67

17

17

17

17

18
· Cambridge Cognition 'STAR' stimuli: sets 0 to 4.

camcog_star0_X

camcog_star1_X

camcog_star2_X

camcog_star3_X

camcog_star4_X

48

48

48

48

48
· Cambridge Cognition ID/ED stimuli: sets 0 to 8, both of which have a shape subset and a line subset.

camcog_nedi0shape_X

camcog_nedi0line_X

camcog_nedi1shape_X

camcog_nedi1line_X

camcog_nedi2shape_X

camcog_nedi2line_X

camcog_nedi3shape_X

camcog_nedi3line_X

camcog_nedi4shape_X

camcog_nedi4line_X

camcog_nedi5shape_X

camcog_nedi5line_X

camcog_nedi6shape_X

camcog_nedi6line_X

camcog_nedi7shape_X

camcog_nedi7line_X

camcog_nedi8shape_X

camcog_nedi8line_X

6

6

6

6

6

6

6

6

6

6

6

6

6

6

6

6

3

2

These stimulus sets can be used in a number of ways.

· You can make your own copy of them by importing them into your configuration file (giving them a name of your choice), and then edit them for your own needs. See The Visual Object Library.
· You can refer to them directly, whereever you are asked to supply a stimulus name, using the names shown above. For example, the first stimulus in the University of Cambridge ID/ED shape set is called univcam_IDED_shape_1. (Please note that if you create your own stimulus with the same name as a predefined stimulus, MonkeyCantab will choose your version.)
· You can use whole sets of stimuli in tasks that require large numbers of stimuli, such as the D(N)MTS and PAL tasks. These tasks can manipulate the stimuli, to generate a much larger set of potential stimuli (for example, by altering the colours of each quadrant).

Technical details of the stimulus-generating techniques used

· The PAL task varies the stimuli by altering the colour of each quadrant; since there are 4 quadrants per stimulus and 7 possible colours (red, green, yellow, blue, magenta, cyan, white), there are 7^4 = 2401 variants on each stimulus (giving, for the PAL0 stimulus set, 160,867 possible stimuli in total). You can refer to them directly; for example, variant 817 of stimulus 65 of the PAL 0 set is called camcog_pal0_65_PV817. Variants are numbered from 0.

· The DNMTS task varies stimuli in several ways; a single varant number is interpreted according to the variation system required. Stimuli are created in groups of four (even if not all four are to be used on a given trial) using the specified stimulus, plus the three that follow it in the set (wrapping round to the start if need be).
· (1) If shape quadrants are to be shuffled, then the quadrants are exchanged between stimuli, keeping them in the same place (e.g. top right), in a manner that gives 64 ways of generating 4 stimuli from the 4 stimuli that we started with.
· (2) Colour reassignment is applied. This can be:
· unmodified (UN) (don't change a thing). If shapes are also not shuffled, this is intended to correspond to the old DOS Monkey CANTAB scheme of "STIMULUS DIRECT".
· vary colours (VC) (alters the colours of each quadrant of each of the 4 stimuli in the same way; as there are 7 usable colours, this gives 7*7*7*7 = 2401 further variations).
· monochrome, shape-only discrimination (MS) (all stimuli are made the same colour; there are 7 possible colours) [remember, monochrome means one colour, not black-and-white]. The colour is that of the top-left quadrant of the first shape in the group (shifted by the value of the variant). This is intended to correspond to the old DOS Monkey CANTAB scheme of "MONOCHROME / SHAPE".
· monochrome, shape-only discrimination, fixed colour (MF) (all stimuli are made the same colour; the user specifies this colour) [remember, monochrome means one colour, not black-and-white]. This option is new as of Jan 2007. The colours are as follows (with red/green/blue components shown on a scale of 0-255):

· colour 0 = black (R 0, G 0, B 0)
· colour 1 = red (R 255, G 0, B 0)
· colour 2 = green (R 0, G 255, B 0)
· colour 3 = yellow (R 255, G 255, B 0)
· colour 4 = blue (R 0, G 0, B 255)
· colour 5 = magenta (R 255, G 0, B 255)
· colour 6 = cyan (R 0, G 255, B 255)
· colour 7 = white (R 255, G 255, B 255)
· colour 8 = orange (R 255, G 165, B 0)
· colour 9 = indigo (R 75, G 0, B 130)
· colour 10 = violet (R 238, G 130, B 238)
· colour 11 = moccasin (R 255, G 228, B 181)
· colour 12 = light slate grey (R 119, G 136, B 153)
· colour 13 = saddle brown (R 139, G 69, B 19)

There is only one colour variant, because only one colour can be used at one time (but the user can specify which colour this is).

· monochrome, colour-only discrimination (MC) (all stimuli are made the same shape; all stimuli are monochrome [meaning one colour, not black-and-white] but the colour of each stimulus in the set of four is different; there is only 1 possible variation with this theme before colours are repeated, which can't be done as it would make at least one stimulus non-unique in the full set). This is intended to correspond to the old DOS Monkey CANTAB scheme of "MONOCHROME / COLOUR".
· monochrome, mixed (MM) (one distractor has a different shape and a different colour to the target; one has the same shape but a different colour; one has the same colour but a different shape. There are seven available colours, so 3 variations of two colours each). This is intended to correspond to the old DOS Monkey CANTAB scheme of "MONOCHROME / MIXED".
· seven colours per trial (SC) (the target uses four colours; the incorrect stimulus uses the three remaining unused colours and one colour that overlaps with the target stimulus, though the overlapping colour is never in the same quadrant in the incorrect stimulus as it is in the target). The target stimulus can have up to 7*6*5*4 = 840 colour variations, so that limits the number of trial-unique stimuli; the further variations in the distractor (namely 4 possible choices of overlapping colour, 3 possible choices of quadrant to place that overlapping colour, and 3*2*1 possible arrangements of the unique colours in the distractor) do not contribute to trial uniqueness and are chosen in a way that is deterministic but tends to vary from trial to trial (specifically, the variant number is re-used to determine these, so these parameters covary with the colour scheme of the target; this is not obvious to the user!). 18-Oct-2004: this scheme, when used with one target and only the first incorrect stimulus, is intended to correspond to the old DOS Monkey CANTAB scheme of "PAIRED STIMULI", as used by Weed et al. (1999) Cognitive Brain Research 8: 185. With the MDMS5 stimulus set (469 stimuli), this gives 840*469/2 = 196,980 unique trials with two stimuli per trial. It can also be used with four stimuli per trial; a second pair of stimuli, related in the same way as the target/first incorrect stimulus, are added to the set. These extra stimuli will not necessarily share exactly one colour with the target. Please note that this scheme does not work well with 3 stimuli per trial (one target plus two incorrect stimuli), as the target is picked at random from the first three stimuli - so there is no guarantee that it will share exactly one colour with the incorrect stimuli.
· Therefore, since DMTS stimulus set 0 has 430 stimuli in it, the most variable stimulus set you can generate (using quadrant shuffling plus full colour variation) is 430 x 64 x 2401 = 66,075,520 stimuli. If four stimuli are used on each trial, this gives you 16,518,880 possible unique trials. I feel that should be enough.
· DMTS-shuffled stimuli can be referred to by appending _DM, then _SS for shape quadrant shuffling or _NS for no shuffling, then _UN, _VC, _MS, _MC, _MM, or _SC for one of the colour variation schemes, and then a variation number, then "_", and then which of the four generated stimuli you want. So the fourth stimulus within the set generated by the last unique shape-shuffled, colour-varying variation on stimulus 200 of DMTS set 0 might be camcog_mdms0_200_DM_SS_VC153663_3. An exception: the _MF scheme takes an additional parameter: the number immediately after "MF" is the colour, and then an underscore follows, and then the variant number and so on (e.g. camcog_mdms0_200_DM_SS_MF7_0_3, where 7 is the colour and 0 is the variant). Please note that as the stimuli are generated in sets of 4, you may end up with non-unique stimuli if you generate further sets that overlap. For example, if you generate a set of 4 stimuli based on stimulus 1 (which involves looking at stimuli 2, 3, and 4), and you show all the stimuli to the subject, then to guarantee unique stimuli you should request the next four starting with stimulus 5, not stimulus 2. Variants, and stimuli within a set of four, are numbered from 0.

Stimulus provenance and copyright

· The University of Cambridge ID/ED stimuli were developed by A.C. Roberts and colleagues at the University of Cambridge (e.g. Dias R, Robbins TW, Roberts AC, 1996, Nature 380: 69; Dias R, Robbins TW, Roberts AC, 1997, J. Neurosci. 17: 9285). The versions presented here are the stimuli in use at the University of Cambridge in 2003. To the extent that these stimuli are copyrightable (one, for example, is a single horizontal line, which probably cannot be the subject of copyright), copyright to some of these stimuli may have been transferred from the creators to Cambridge Cognition Ltd (see below). However, shapes 22, 51, 52, 53, and 54, and lines 1, 22, 28, 41, 42, 43, and 44 are not part of Cambridge Cognition's stimulus set, and copyright to these stimuli probably lies with the creators.
· The Cambridge Cognition ID/ED stimuli are a subset of the University of Cambridge ID/ED stimuli. Cambridge Cognition used these stimuli under licence from A.C. Roberts, T.W. Robbins, and colleagues, and probably held the copyright to these stimuli.
· Copyright to the Cambridge Cognition PAL, D(N)MTS, and STAR stimuli was held by Cambridge Cognition (to the extent that such stimuli are copyrightable, as always).
· From July 2004, copyright to those stimuli owned by Cambridge Cognition Ltd was transferred to Campden Instruments Ltd (the US parent company of which is the Lafayette Instrument Company).


University of Cambridge ID/ED stimuli

Note: the stimuli shown here are at a lower resolution than those seen on the screen during the task.

All stimuli should be prefixed by univcam_ to refer to them directly in MonkeyCantab.

Shapes:

Lines:


Camcog D(N)MTS stimuli

Note: the stimuli shown here are at a lower resolution and colour contrast than those seen on the screen during the task.

D(N)MTS stimulus set 0:

(numbers 1-96)

(numbers 97-192)

(numbers 193-288)

(numbers 289-384)

(numbers 385-430)

D(N)MTS stimulus set 5:

(numbers 1-96)

(numbers 97-192)

(numbers 193-288)

(numbers 289-384)

(numbers 385-469)

D(N)MTS stimulus set 6:

D(N)MTS stimulus set 7:


Camcog PAL stimuli

Note: the stimuli shown here are at a lower resolution and colour contrast than those seen on the screen during the task.

PAL stimulus set 0:

PAL stimulus set 1:

PAL stimulus set 2:

PAL stimulus set 3:

PAL stimulus set 4:

PAL stimulus set 5:


Camcog STAR stimuli

Note: the stimuli shown here are at a lower resolution and colour contrast than those seen on the screen during the task.

STAR stimulus set 0:

STAR stimulus set 1:

STAR stimulus set 2:

STAR stimulus set 3:

STAR stimulus set 4:


Camcog ID/ED stimuli

Note: the stimuli shown here are at a lower resolution and colour contrast than those seen on the screen during the task.

ID/ED stimulus sets 0 to 5:

ID/ED stimulus sets 6 to 8:


Configuring individual tasks

Choose a task to see how to configure it. The tasks are listed on the first page.


Reinforcement Familiarization

Summary

Delivers rewards.

About the task

Purpose: to train the subject to take rewards, and associate them with a sound.

The task presents a sound and reward together, at random intervals

Configuring the task

What constitutes "a reinforcer" is defined in the General Parameters. This allows you to set the reward sound and define what sound is associated with the presentation of a reward.

· Special options for licker training. These options are only applicable if you have a pump delivering liquid reinforcement and a lick sensor. If you wish, you can proceed through two initial stages before the main schedule starts. These extra options do NOT use the reward parameters specified in the General Parameters - for example, no sounds are played. If you select one or more of these options, they are triggered in the order they are listed in the parameters dialogue box: (1) pump switched on... (2) lick-contingent juice on FR1 schedule... (3) FT/RT schedule.
· Pump switched on at start of session. If selected, the pump is activated without a pause at the start of the session, until the subject has made the number of licks specified in the licks box. At this point, the pump is switched off. If you specify zero licks here, the pump will run for the entire session and the program will never proceed to another phase.
· Lick-contingent juice on FR1 schedule for rest of session. This option allows you to reward licking for the rest of the session. Each lick activates the pumps for a fixed time (specified in the Each lick triggers... box).

· Schedule parameter (s). Now begins the proper schedule; all rewards delivered here follow the settings specified in the General Parameters.
· Fixed-time schedule. Reward is delivered at regular intervals. Reward is delivered; the program waits for the end of reinforcement; this parameter specified how long it will then wait before delivering the next reward. (Note that this is not quite the standard parameter of an FT schedule: the standard way is to specify the time between the start of reward 1 and the start of reward 2; here, this parameter specifies the time between the end of reward 1 and the start of reward 2. This is an easy way to prevent the second reinforcer being scheduled while the first is still being delivered! You can think of this parameter as the inter-reinforcement interval.)
· Random-time schedule. An imaginary clock ticks once a second. Every clock tick, the program flips a coin that will turn up heads with a probability of 1/parameter. If the coin turns up heads, a reinforcer is delivered. Thus, if the parameter is 30, reinforcement is delivered with a probability of 1/30 every second, meaning that on average reinforcement is delivered once every 30 seconds. (However, for as long as it takes to deliver the reinforcer or the reinforcer-associated sound, the clock stops ticking in order to prevent another reinforcer being delivered at the same time - if you need a precise RT schedule, you must take this time into account too.)

· Maximum number of rewards. Once this number of rewards has been delivered, the task stops. (Specify 0 for no limit.) This number includes rewards earned on the FR1 licking part of the task, but not on the "free juice" part.
· Maximum time permitted during task. Once this time limit has been reached, the task stops. (Specify 0 for no limit.)

You must specify either a maximum number of rewards, or a maximum time, or both.

The houselight is on during the task.

Mimicking previous Arachnid programs

Notes for the University of Cambridge:

LICKER

Old program: Juice drips until the monkey first licks. Then either

(a) juice is delivered for 1s whenever the monkey licks - if it licks during that 1s, juice is prolonged - or

(b) juice is delivered continuously ("free juice") for the whole session.

To mimic these:

(a) pump switched on at start of session; pump runs freely until the monkey has made 0 licks (i.e. unlimited);

(b) pump switched on at start of session; pump runs freely until the monkey has made 1 lick; lick-contingent juice on FR1 schedule for rest of session (each lick triggers the pump for 1s).

TONE

Old program: Juice-tone pairings. Fixed-time schedule. Turn juice on, wait for 16 licks, then turn the juice off. Subsequently present tone/juice pairings on FT schedule. When tone is on, either (a) juice is delived when monkey licks or (b) juice drips all the time.

To mimic this: Pump switched on at start of session until subject has made 16 licks; subsequently, FT schedule of reinforcement. Under the General Parameters, choose either (a) pump contingent on licking, or (b) not.


Touch Training

Summary

Reinforces responding to stimuli on a touchscreen.

About the task

Purpose: to train the subject to touch stimuli.

A trial begins and marker sound 1 is played. Object(s) are presented on the screen. If the subject responds correctly within a criterion time, reward it. Punish the subject if it fails to respond in time (if you've set a time limit), or if it misses the stimulus and touches the background instead (if you've chosen to punish this).

Configuring the task

· Free reward at the start of the session. If selected, a single free reward (defined in the General Parameters) is delivered as the session starts.
· Trial initiation. Can be (a) spontaneous; (b) requiring a lever response to start each trial (see also Use with Dogs); (c) requiring a food magazine response to start the trial (and in this case, there is the option to illuminate the magazine light to indicate that such a response is required).
· Maximum number of trials. When the subject has performed this number of trials, the task ends. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Response criterion time. If the subject fails to respond to a stimulus within this time, an omission is scored.
· Missing the stimulus terminates the trial as a failure. If ticked, the trial is terminated if the subject touches the background. Otherwise, the subject can touch the background first and later touch the stimulus, or (if Strict Touches are not selected in the General Parameters) can 'slide' onto the stimulus.
· Leave stimulus on screen during reward. Pretty self-explanatory, I hope...
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after any reward or punishment from the previous trial has finished.
· Touches during ITI are punished by restarting the ITI. Fairly obvious.
· Punish, not reward, touches to the stimulus. If ticked, touching the stimulus delivers punishment (defined in the General Parameters) rather than reward, even though the response is marked as the "correct thing to do" in the database. Highly unusual - avoid! Implemented for a very specific extinction-like experiment, not for general touch training.

Stimuli

· Specify stimuli. If ticked, you specify the stimuli exactly. If not, a square is used (and it can shrink as time goes by).

Options available if "Specify stimulus" is ticked:

· Stimulus. Choose the stimulus (click Set to select from the list of available stimuli).
· How many stimuli should be shown at once? Self-explanatory.
· Set possible locations. Click to choose the Locations used for the stimuli.

Options available if "Specify stimulus" is not ticked:

· Colour (red, green, blue). Specify the square's colour. Each value (red, green, blue) can be from 0 to 255.
· Starting size. Specify the size that the stimulus starts at.
· Final size. Specify the size that the stimulus finishes at.
· Shrink stimulus... after this many consecutive correct trials. When the subject performs this many trials correct in a row, the stimulus shrinks one step (until it reaches the final size).
· Move box around once the final size has been reached. If this is ticked, then once the stimulus has reached the final size and the subject performs n correct trials in a row (where n was defined in Shrink stimulus...) then the stimulus starts to move around randomly on each trial.

Quick configuration; mimicking previous Arachnid and CamCog programs

Click Bar/Square, LeftSquare, RightSquare, TwoRan[dom], or PurpleShrink'n'Move to choose a predefined scheme. The first four mimic the University of Cambridge training programs TSCR-BAR, SQUARE, LEFTSQUARE, RIGHTSQUARE, and TWORAN, though you still need to choose the stimulus to use. For exact compatibility with these programs, use a wide bar stimulus for Bar/Square and a square for the others. The last (PurpleShrink'n'Move) mimics Cambridge Cognition's previous edition of MonkeyCANTAB.

What constitutes "reward" and "punishment"?

Options for reward and punishment are set in the General Parameters section; visual objects are defined in the Visual Object Library.

More on displaying objects

The task works with an internal scaling system based on a display that is 1000 units (pixels) wide and 750 high. If you specify the stimulus, it should fit into a rectangle that is 267 (w) x 200 (h). Imagine that the screen is divided into nine. (See this diagram ("Size and coordinates").) The possible locations are these nine boxes.

Screenshot from the task

Touch, my monkey. TOUCH IT!


Ambiguous Cue Task

Summary

· A "positive" tone of frequency F1 signals that responding (e.g.) left produces reward. No response, no outcome.
· A "negative" tone of frequency F2 signals that responding (e.g.) right avoids punishment. No response, punishment.
· Tones of intermediate frequency (between F1 and F2) are presented as probes.

About the task

This task is currently RESTRICTED to specified laboratories.

Most distributions of MonkeyCantab do not provide it, will refuse requests to add this task, and will not load the parts of configurations that incorporate this task.

Based on Enkel et al (2012), Neuropsychopharmacology 35: 1008, doi:10.1038/npp.2009.204

Trial structure

· Trial begins with presentation of a positive, negative, or probe sound. One or both manipulanda are made available.
· On a POSITIVE trial: during the stimulus, responding on the positive-correct manipulandum (PCM) delivers reward, terminates the stimulus, and removes the manipulanda. The ITI begins when the reward finishes. Responding on the negative-correct manipulandum (NCM) has no effect.
· On a NEGATIVE trial: during the stimulus, responding on the PCM has no effect. Responding on the NCM terminates the stimulus and moves to the ITI (avoiding punishment). Otherwise, if no response on the NCM is made by the time the stimulus ends, then punishment is delivered. During punishment, responding on the NCM terminates punishment and moves to the ITI (while responding on the PCM has no effect).
· On a PROBE trial, responding on either the PCM or the NCM terminates the stimulus and moves to the ITI. If the stimulus ends with no response, the ITI begins.
· If they have not already gone, the manipulanda disappear at the start of the ITI.

Configuring the task

The options are as follows:

DISCRIMINATIVE STIMULI

· Positive sound. The signal that responding on the positive-correct manipulandum (PCM) will deliver reward.
· Negative sound. The signal that responding on the negative-correct manipulandum (NCM) will avoid or escape punishment.
· Ambiguous probe sounds. Unreinforced signals, intended to be intermediate in frequency and equal in subjective loudness to the positive and negative sounds, to test the generalization gradient.
· NOTE that the DURATIONS specified for each sound are overridden; the sounds are played on loop for as long as the task requires.

MANIPULANDA

· Positive-correct manipulandum (PCM). The visual stimulus used as the PCM.
· Negative-correct manipulandum (NCM). The visual stimulus used as the NCM.
· Positive-correct response on left...? For counterbalancing. If you choose unusual locations on the screen, "left" here means the first of the two locations specified; "right" means the second.
· Location set. Specify two locations used for the manipulanda.

REINFORCERS

· Reward. Set the parameters for reward.
· Punishment. Set the parameters for punishment.

TIMING

· Maximum stimulus duration (s): How long should the stimuli be played for, in the absence of a consequential response (or, with the training option that allows multiple responses for reward during the positive stimulus, even in the presence of a response)?
· ITI (s): Specify the intertrial interval.
· Maximum session time (min) (0 for no limit): Specify the maximum session time, or specify 0 for no limit (in which case the task proceeds until the allotted number of trials have been completed). Trials won't be interrupted halfway through if the session time expires; instead, the task will then finish when the current trial finishes.

TRIALS

· Number of positive trials. Specify the number of positive trials to deliver.
· Number of negative trials. Specify the number of negative trials to deliver.
· TRAINING: only present the correct option for positive/negative trials. By default, both manipulanda (PCM and NCM) are presented for all trials. As a training option, you can present only the correct manipulandum (not applicable to probe trials -- though these aren't usually given during training!).
· TRAINING: allow multiple responses for reward during positive stimulus. By default, a response to the PCM during a positive trial terminates the trial. This option keeps positive trials running until the maximum stimulus duration has elapsed, during which time rewards are delivered on a fixed-ratio-1 schedule on the PCM.
· Number of trials for EACH probe. Specify the number of probe trials given for EACH probe in the list of probes.
· The actual trials are created as a block (e.g. 10 positive, 10 negative, 2 per probe, 3 probes = 26 trials) and then the block is shuffled.
· Repeat until session time up? If you tick this option, then when the block of trials is complete, another is generated and delivered, until the session time expires.

QUICK CONFIG

Some quick defaults:

· Positive training (1). Delivers positive trials only for 30 minutes. Presents only the PCM. Allows FR1 responding for reward during each 30-second positive stimulus. ITI is 30 seconds.
· Positive training (2). Delivers positive trials only for 30 minutes. Presents only the PCM. Responding on the PCM terminates the trial. Stimulus is 30 seconds otherwise. ITI is 90 seconds.
· Negative training. Delivers 20 negative trials. Presents only the NCM. Responding on the NCM terminates the trial, avoiding or escaping punishment. Stimulus is 30 seconds before delivery of punishment. ITI is 90 seconds.
· Discrimination training. Delivers 10 positive and 10 negative trials, with both manipulanda on offer, with settings as the previous two phases.
· Ambiguous-cue testing. Delivers 10 positive trials, 10 negative trials, and 2 of each kind of probe.


Concurrent Discrimination

Summary

Presents multiple visual stimuli together and rewards touching some, but not others.

About the task

· Each trial begins with a Marker 1 sound (optionally, following an initiation response).
· Stimuli appear in various locations on the screen. Some stimuli are correct; some are incorrect.
· The first response to a stimulus is registered, and the subject receives reward/punishment accordingly (or, if it fails to respond, an omission occurs and is punished).

By default the task considers a separate set of correct and incorrect stimuli; however, you can also lock the correct stimulus list and the incorrect stimulus list together, creating a n-pair concurrent discrimination task (in which paired stimuli always appear together).

Configuring the task

· Trial initiation. Specify the initiation method (spontaneous, requiring a lever response, requiring a response to a stimulus on a touchscreen, requiring a magazine response). For stimulus initiation, you can set its appearance and location. For magazine initiation, you can have the magazine light illuminated to indicate the need for a response. For initiation methods other than "spontaneous", specify also the initiation limited hold time (after which failure to respond causes the trial to be abandoned; use 0 for no limit). See also Use with Dogs.
· Maximum number of trials. When the subject has performed this number of trials, the task ends. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Terminate the session... optionally, you can have the session terminate when the subject performs X of the last Y trials correctly (you specify X and Y).
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after any reward or punishment from the previous trial has finished.
· Maximum time to wait for a response. Once stimuli have been presented, this is the time that the program will wait for a response before abandoning the trial as an omission.

· Locations. Click to choose the Locations used for the stimuli.
· Pick stimuli... This can be (a) completely at random, in which every stimulus is drawn (with replacement) from the relevant list of stimuli. This may result in multiple copies of a stimulus appearing on the screen. (b) Draw-without-replacement (DWOR) on a per-trial basis. Every trial begins with the creation of a 'pool' of correct stimuli, and a 'pool' of incorrect stimuli, each created by taking the correct/incorrect list and making as many copies of it as the DWOR multiplier, which you specify. Individual stimuli are then drawn without replacement from this pool (correct stimuli from the correct pool, and incorrect stimuli from the incorrect pool). (c) DWOR overall (across trials). In this method, exactly the same method as (b) is used, but the DWOR pools are not reset between trials - only when the pools are too small to create an entire trial from. See also randomness, pseudorandomness, and drawing without replacement.
· Correct stimuli. Specify your list of correct stimuli, and the minimum/maximum number of correct stimuli per trial. (The actual number is drawn randomly from a rectangular probability distribution between these limits.)
· Incorrect stimuli. Likewise.
· Correct and incorrect stimuli: independent? Locked 1:1? If you choose "independent", then a certain number of correct stimuli are selected and shown on each trial, and, independently, a certain number of incorrect stimuli are selected and shown. If you choose "locked 1:1", then the correct stimulus list and the incorrect stimulus list are considered as a sequence of pairs. This means: (a) that the correct and incorrect lists must be of the same length; (b) that you cannot specify the number of incorrect stimuli independent of the number of correct stimuli (so those options disappear); (c) on each trial, the task picks a certain number (between the minimum and maximum inclusive) of correct stimuli, with their paired incorrect stimuli, and shows those. As an example: to produce an 8-pair concurrent discrimination task, of which one pair is shown on each trial, specify a list of 8 correct stimuli, a list of 8 incorrect stimuli in corresponding order, choose "locked 1:1", and specify a minimum of 1 correct stimulus and a maximum of one correct stimulus per trial.
· Constrain such that a stimulus can't appear in the same location on consecutive trials. Does what it says on the tin. Specifying this option makes the task require enough unique stimuli that it can be sure to satisfy this constraint.
· Leave correct stimulus on during reward? (etc.) When the subject responds, the chosen correct stimulus can be left on the screen during reward, and/or the chosen incorrect stimulus can be left on during punishment. These stimuli can either be left on for the duration of the reward/punishment (as specified in the General Parameters), or you can specify how long to leave them on the screen for.


Concurrent Schedules

Summary

As for Simple Schedules, but you can run two schedules concurrently, specifying the manipulandum and reinforcer independently. (You can even use two manipulanda but have up to two schedules attached to each manipulandum.)

Configuring the task

· Always reinforce first response on interval schedules. This is the norm. See reinforcement schedule types.
· Max. # of reinforcers; max. time. As for Simple Schedules.
· Schedule. For each, you can enable or disable it; specify the response object and its location; specify a visual and auditory response marker; specify the schedule type and associated parameters, and specify a distinct reinforcer (or -- unusually -- more than one; see below).
· Timeouts on L schedule(s) apply to R schedule(s) and vice versa. See Notes on reinforcement schedules.
· PR schedules end based on time since last response (not reward). For progressive ratio schedules, you may choose whether the timeout that eventually terminates the schedule, if selected, is calculated from the last response or the last reinforcer.
· Use changeover delay. When you respond on one schedule, a changeover delay disables the other schedule for a specified amount of time, and thereby discourages rapid alternation. See Notes on reinforcement schedules.
· Jackson schedule: noncontingent reward only if no response to opposite side as well. If ticked, then in the Jackson contingency schedule, schedules score a time bin towards the "contingent" count if there's been a response, but instead of (as normal) scoring a bin towards the "noncontingent" count if there's been no response, score it as noncontingent only if there's been no response to EITHER side during the bin. (Under these circumstances, if neither criterion is met, the bin is ignored.)

MULTIPLE REINFORCER ALTERNATIVES

· As of version 12.3, each schedule can be set up with a single reinforcer (as is normal), or a selection of possible reinforcers. The software will pick one at random from the schedule's reinforcer options when the schedule is reinforced. You must specify at least one reinforcer for every schedule that is in use.
· Reinforcer editing is as usual (see reinforcers), but there is also an intermediate dialogue box for a given set of reinforcer options, as shown below. The order within the list is functionally unimportant.

NOTES AND CAVEATS IF YOU ARE USING MORE THAN ONE SCHEDULE PER MANIPULANDUM

· You can specify an ADDITIONAL concurrent schedule on each "side". These schedules (termed 3 and 4) share a manipulandum with the main schedules (termed 1 and 2), but can be used to deliver additional consequences. For example, you might have two reinforcing schedules, and add an occasional aversive stimulus (e.g. noise, darkness) on top of the main schedule.
· IMPORTANT: Response counting. Response counting is conceptually difficult when two schedules share a manipulandum. The behavioural measure of interest is the number of responses, but each response may have to "go" to two schedules -- with a random 50:50 choice of which goes first, to break ties and allocate responses evenly. The response may then go, or not go, to the other sub-schedule, depending on whether the first sub-schedule instituted a timeout. (The same applies to "ticks" of time, though that is not of interest as a behavioural measure.) It's desirable to be able to record the number of responses that each sub-schedule "thought" happened, and so that's what's recorded in the output variables S1_TotalResponses, S2_TotalResponses, S3_TotalResponses, and S4_TotalResponses. But that will usually overcount the total number of responses, because the same physical response might (for example) add one both to S1_TotalResponses and to S3_TotalResponses. Therefore, in this special circumstance, you should use the output variables ConcurrentSchedules_ResultSummary.S1and3_TotalResponses and ConcurrentSchedules_ResultSummary.S2and4_TotalResponses to get the physical number of responses. Of course, these variables also work fine if you are not using >1 schedule per manipulandum.
· The ConcurrentSchedules_Events table also records per "physical" response, and indicates (where applicable) which schedule(s) reinforced it.
· You can specify separate timeout durations for the two sub-schedules. But if and when a timeout is triggered, it applies to all schedules for that manipulandum. (And, if you tick "Timeouts on L schedules(s) apply...", then also to the schedule(s) on the other manipulandum.)
· Changeover delays likewise apply to "left" or "right" collectively.
· You should not blend a Jackson schedule with another schedule on the same side. (The Jackson schedule is special because e.g. the left schedule needs to know something about responding on the right schedule, and vice versa. If there is more than one schedule on each manipulandum, this is not guaranteed to work properly. But it is also behaviourally bizarre and not the intended use of >1 schedule on one manipulandum. So avoid it!)


Conditional Visual Discrimination

Summary

Stimuli appear one by one; some require the subject to respond LEFT to win, and some require the subject to respond RIGHT.

About the task

· Each trial begins with a Marker 1 sound (optionally, following an initiation response).
· A stimulus appears on the screen, along with two response manipulanda (left and right). It is possible to obtain reward for any stimulus, but some stimuli require a Left response, and some stimuli require a Right response.
· The first response to a stimulus is registered, and the subject receives reward/punishment accordingly (or, if it fails to respond, an omission occurs and is punished).

The stimulus can appear briefly or for as long as the subject is allowed to respond.

The stimulus (like any in MonkeyCantab) can be a blank stimulus. This allows the task to be used as a two-choice vigilance task, as follows:

- trials initiate spontaneously;

- two stimuli are used; one visible, one blank (invisible);

- the stimuli appear briefly, then the manipulanda appear;

- the subject must respond (e.g.) left for the visible stimulus, and right for the "non-stimulus"

Examples of a conventional CVD configuration, and this kind of vigilance configuration, are shown below.

Configuring the task

· Trial initiation. Specify the initiation method (spontaneous, requiring a lever response, requiring a response to a stimulus on a touchscreen, requiring a magazine response). For stimulus initiation, you can set its appearance and location. For magazine initiation, you can have the magazine light illuminated to indicate the need for a response. For initiation methods other than "spontaneous", specify also the initiation limited hold time (after which failure to respond causes the trial to be abandoned; use 0 for no limit). See also Use with Dogs.
· Maximum number of trials. When the subject has performed this number of trials, the task ends. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after any reward or punishment from the previous trial has finished.
· Maximum time to wait for a response. Once the response manipulanda have been presented, this is the time that the program will wait for a response before abandoning the trial as an omission.

· Locations. Click to choose the Locations used for the stimuli. The three locations are considered, in order: LEFT (for the left manipulandum), CENTRE (for the stimulus), and RIGHT (for the right manipulandum).
· Left and right manipulanda. Choose the stimuli to be used for the manipulanda.
· Pick stimuli... This can be (a) completely at random, in which a stimulus is drawn at random from the combined "go-left" and "go-right" lists (with replacement); (b) draw-without-replacement (DWOR). In DWOR, the task creates a combined 'pool' of "go-left" and "go-right" stimuli, created by taking the go-left and go-right lists and making as many copies of them as the DWOR multiplier, which you specify. On each trial, a stimulus is drawn without replacement from this pool. The pool is re-created when it is empty. See also randomness, pseudorandomness, and drawing without replacement.
· "Go-left" and "go-right" stimuli. Specify your list of "go-left" and "go-right" stimuli. There is a button to swap the sets.
· Leave successful stimulus/manipulandum on during reward? (etc.) When the subject responds successfully, the stimulus and/or manipulandum can be left on the screen during reward. When the subject responds unsuccessfully, the stimulus and/or manipulandum can be left on the screen during punishment. These things can either be left on for the duration of the reward/punishment (as specified in the General Parameters), or you can specify how long to leave them on the screen for.
· Stimulus duration. The stimulus begins when the trial starts (immediately upon trial initiation, as defined above). Specify the stimulus duration, or zero to have the stimulus remain on-screen for as long as the response manipulanda do.
· Delay from trial start to manipulanda appearing. A delay can be added between the trial start (when the stimulus appears) and the response manipulanda appearing. (The manipulanda then remain on screen for the "maximum time to wait for a response", as above.)

· Reverse within a session. Optionally, the contingencies (whether a stimulus is "go-left" or "go-right") can be reversed (for all stimuli simultaneously) during the session, whenever the subject performs X of the last Y trials correctly. Specify the X and Y. (When a reversal occurs, the requirement is reset.)
· Correction procedure. A correction procedure can be applied if desired. In the "harsh" technique, the correction procedure begins whenever a trial is performed incorrectly; the trial is re-presented up to A times or until the subjects responds correctly. Specify the parameter A.

Example of CVD configured as a vigilance task

The screenshot above shows the CVD set up in conventional fashion. Here's an example of the CVD set up as a vigilance task; in this example, the trials begin spontaneously, the stimulus (or "non-stimulus") appears for 1 second, and then the respond manipulanda appear for up to 5 seconds. Note also that you can vary the proportion of stimulus and non-stimulus trials; for example, to have a 3:2 ratio of stimuli to non-stimuli, enter 3 copies of the stimulus in one list and 2 copies of the non-stimulus in the other list.

Screenshot

See Signal Detection Theory for notes on analysis.


Continuous Performance Task

Summary

Stimuli appear one by one. Subjects must respond to targets and ignore non-targets.

About the task

In brief, stimuli appear sequentially, and subjects must classify them as targets (and respond to them) or non-targets (and not respond to those).

Ancestry: Rosvold HE, Mirsky AF, Sarason I, Bransome EB, Beck LH (1956) A continuous performance test of brain damage. J Consult Psychol 20: 343-350.

Task details

The task is composed of a series of stages. Each stage defines a target and nontarget(s), and specifies their proportion (sometimes grouping trials into blocks that are approximately imperceptible to the subject). Stages can have a passing criterion, and if the stage is passed (e.g. success on a certain number of trials within a certain time limit) the task progresses to the next stage.

Individual trials simply consist of presenting a stimulus (target or nontarget) and seeing what the subject does. Reinforcement options are configurable, as below.

For later, we'll define terms relating to responding:

hit = target appeared, subject responded

miss = target appeared, subject didn't respond

false alarm = non-target appeared, subject responded

correct rejection = non-target appeared, subject didn't respond

Configuring the task

· Overall session length. Set the overall session length in minutes, or 0 for no limit (since individual stages must have a limit, as defined below, the task can never go on for ever even in this situation). If an overall session time limit is set, and expires, the task ends immediately (even if midway through a trial).
· Intertrial interval. Specify the minimum and maximum ITI, in seconds. The minimum and maximum can be the same, giving a fixed ITI. If they are not, the actual ITI is chosen with a flat probability density between the minimum and maximum.
· Reward and punishment are defined in the General Parameters.
· Wait for reward/punishment to complete before proceeding. If ticked, then when a trial outcome is decided (by the subject responding, or by the stimulus time expiring), then after the stimulus is removed, reinforcement is delivered (with its duration being set according to the General Parameters), and then the ITI begins. If unticked, the ITI begins at the same time as reinforcement (though beware this if you use reinforcement that takes a considerable time, and the ITI is short).
· What to reward/punish? Hits are always rewarded. You can choose whether to reward correct rejections, and whether to punish misses or false alarms.
· Then, define a sequence of stages with the Add/Remove/Up/Down/Edit buttons (see below).
· Finally, choose the Locations used for the task.

When you edit a stage, the following dialogue box appears.

· Specify the stimuli that comprise a block of trials (using the Add, Remove, and Edit buttons). The editing dialogue looks like this:

o Choose whether the stimulus is treated as correct or not.
o Choose the stimulus itself (by pressing Set). See Choosing stimuli for a task.
o Choose the number of trials for this stimulus, within the block.
o Choose the maximum time to present each stimulus for, in seconds. If the subject responds, the stimulus is removed immediately; otherwise, it stays on the screen this long.

· The task displays the total number of trials per block (correct + incorrect). Within each block, the trials will be randomized in order (shuffled randomly). However, you can also specify the number of blocks. Each block is randomized independently. To make this clearer, suppose you specify 3 correct trials (C) per block, and 3 incorrect trials per block using a single incorrect stimulus (N). A single block might then be CCCNNN, NCNCNC, or any other permutation of 3xC and 3xN. If you then specify 3 blocks, you might see e.g. CCNCNN-NNCNCC-NCCCNN. Note that in each consecutive block of 6 trials, there are 3xC and 3xN. In total, there are 9xC and 9xN. Alternatively, you might specify 18 trials in a different way: a single block with 9 correct trials and 9 incorrect trials. That might, by chance, give you exactly the same pattern as before - but it might also give you CCCCCCCCCNNNNNNNNN (albeit with a very low probability), or NNNNCNNNNCCCCNCCCC, and so on; these patterns couldn't emerge with our first example. So the block design controls the granularity of the randomization.
· Choose the minimum response window. For very brief stimuli, you may wish to allow subjects to respond for a short period after the stimulus has disappeared and still score this as correct (or incorrect, for incorrect stimuli!). To do this, specify the minimum response window. For example, suppose a 5-second minimum response window is specified. If a particular stimulus lasts 3 seconds, then an additional 2 seconds of response time will be allowed for responding after the stimuli has vanished. If another stimulus lasts 7 seconds, then the subject will get 7 seconds to respond (the subject can always respond while the stimulus is on the screen). A minimum response window of 0 simply means that the stimulus duration is the only thing determining the time in which responding can occur. Finally, to use this option, a background stimulus must be used (see below) -- responding to the background stimulus is scored as "stimulus responding" during the response window, and as "background responding" during other times.
· Choose the location of all the stimuli. This is a location number from within the location set specified in the previous dialogue box.

· Time limit for the stage (across all attempts). You can specify 0 (for no limit), but in this case, you must specify a maximum time for each attempt (see below). If you specify a limit, and this limit expires, then any ongoing trial is aborted, and the task proceeds.
· Number of consecutive correct responses to pass the stage. If the subject responds correctly (where in this instance a "correct response" includes both Hits and Correct Rejections) to a certain number of trials in a row, it passes the stage, and moves to the next. If you specify 0 here, the subject must pass all the trials specified in order to progress. Note that a stage continues even past a failure point: if you specify 20 trials, and require that the subject must get 5 in a row correct to proceed, then it gets up to the whole 20 trials to achieve a 5-in-a-row, but as soon as it does so, it moves to the next stage.
· Maximum attempts at this stage. If the subject passes the stage, it proceeds to the next. Otherwise, it can have up to this many goes at the stage. If it fails them all, the task ends.
· Time limit for each attempt. Specify a time limit for each attempt (compare "time limit for the stage" above), or 0 for no limit. If a subject doesn't complete an attempt in this time, a new attempt starts.
· Background stimulus. Optionally, specify a stimulus that is displayed at the same location as the targets, throughout the stage (targets appear and disappear on top of it). This stimulus must be specified if the minimum response window (see above) is longer than some of the target/non-target stimuli.

See Signal Detection Theory for notes on analysis.


Delayed Matching/Non-matching to Sample

Summary

A stimulus appears, followed by a delay, and then a selection of stimuli (including the original stimulus). Subjects must choose the original stimulus (DMTS) or the novel one (DNMTS).

About the task

The Marker 1 sound is played to signal the start of a trial. An object is shown in the centre of the screen (Phase 1). (Optionally, the subject has to touch this object; optionally, it can be rewarded for doing so.) The object vanishes, and a delay ensues. After this delay, the object is re-presented together with one or more other objects (Phase 2), heralded by the Marker 2 sound.

In delayed matching to sample (DMTS), the subject must touch the object that was shown first. In delayed non-matching to sample (DNMTS), it must touch the new object. (Both test the subject's ability to remember information about the first object during the delay; the matching/nonmatching option is typically used to account for or overcome a subject's species-specific natural tendency to select either familiar or novel stimuli.)

Correct responses are rewarded; incorrect responses are punished. Optional correction procedure: if correction is switched on, failed trials are repeated once, or until the subject gets it right (see below).

Configuring the task

· Trial initiation. Specify the initiation method (spontaneous, requiring a lever response, or requiring a magazine response - in which case you can have the magazine light illuminated to indicate the need for a response) and the initiation limited hold time (after which failure to respond causes the trial to be abandoned; use 0 for no limit). See also Use with Dogs.
· Maximum number of trials. When the subject has performed this number of trials, the task ends. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after any reward or punishment from the previous trial has finished.
· TRAINING: touch resets time between trials. If selected (as a training option), a touch to the background restarts the intertrial interval (to discourage such touching). This only occurs during the "proper" ITI, after any reinforcement (etc.) has finished.
· Location set. Click to choose the Locations used for the stimuli (which are then referred to, below, by location number within the location set). By default, a 9-way grid is used as the location set, and location 4 is the centre location; this is readily apparent by exploring the location set and its graphical preview.

Stimuli

· Specify stimuli by hand. If you choose to specify stimuli by hand, the list shows the available stimuli. You cannot put a stimulus into the list more than once. Click Add and Remove to add/remove stimuli. You can also choose one of two methods for choosing the stimuli for each trial:
· Cyclical. The program begins with a specified stimulus number and selects stimuli for each trial by working down the list, resuming at the start of the list if/when it runs out of stimuli to use at the bottom of the list.
· Random. The program picks a set of stimuli to use at random on each trial. You will need to fill in "Try to avoid stimuli used in last X trials"; the program will try not to choose any stimuli that have appeared (or were scheduled to appear, in the case of failure at phase 1) in the last X trials.

It's your responsibility to ensure that enough stimuli are in the list! The program will complain if you try to start it and there aren't enough stimuli to set up a trial. It won't complain if it needs to re-use stimuli from trial to trial.

Incidentally, when you Add stimuli, you can choose several at once by holding down the Shift key as you click on stimuli:

· Predefined stimuli. You may also use one of the predefined stimulus sets. If you choose this, you have several further options:

· You can shuffle the quadrants of the stimuli, which multiplies the number of available stimuli by 64.
· You can vary the colours of the predefined stimuli in one of several ways:

Colours unmodified

Vary colours (multiplies #stim x 2401)

Monochrome, shape-only discrimination (x 7)

Monochrome, colour-only discrimination (x 1)

Monochrome, mixed colour/shape discrimination (x 3)

Seven colours per trial (x 840)

Monochrome, shape-only discrimination, fixed colour (x 1, although you can run this task with up to 13 different colours)

For full explanations of these options, see "Technical details of the stimulus-generating techniques used".

· Optionally, you can jumble the variants, which is a deterministic process (i.e. it's not random), but it does tend to make adjacent trials much less similar, and is therefore to be recommended.

When you use a predefined stimulus set, you specify the starting position - the starting stimulus and colour variant. Both are zero-based (i.e. "0" means the first stimulus or the first variant, and "1" the second...) The program will store the final position at the end of the task, so that next time you can reload the subject's configuration file and just carry on. The position is stored within the configuration file (with the intention that you have one configuration file per subject). The program cycles through all the stimuli with the first colour variant, then starts again at the start of the set and uses all stimuli with the next colour variant, and so on, until all colour variants are exhausted. More likely, your subjects will be exhausted first, since there can be many millions of possible stimuli! (As of 2-Apr-2005, the old option to set "stimulus within subset" has been removed, and this parameter always starts at zero, since it confused people.)

· For the "monochrome, shape-only discrimination, fixed colour" option, you can also specify the forcing colour (the colour to force all the stimuli to be). See "Technical details of the stimulus-generating techniques used" for details.

· Phase 1 stimulus is the first of a set, not selected at random. Whichever stimulus selection method is used, the program must create a list of stimuli for use on each trial. This list must contain the phase 1 stimulus (call it the S+) and one or more alternative stimuli to present along with the S+ in phase 2. By default, the program picks the S+ at random from this list. If you tick this option, the first stimulus in the list is assigned as the S+. The upshot: tick this option if you would like complete predictability of which stimulus in a set will be the S+.

Phase 1

· Must touch phase 1 stimulus. If this is selected, then the subject must respond to the Phase 1 stimulus in order to proceed to phase 2. If you choose this option, you may also choose whether or not the subject should be rewarded for touching the Phase 1 stimulus (but if you do that, prior to 2/7/9 the memory delay began at the END OF THE REWARD; after 2/7/9 [MonkeyCantab 5.6] it begins at the start of the reward and the memory delays must all exceed the maximum reward time set in the General Parameters). If you do not want your subject to have to touch the stimulus, you must specify the Phase 1 stimulus duration instead.
· Locations. Here you can specify (by clicking Set) the location(s) that your Phase 1 stimulus may be displayed in. The location numbers come from the location set defined above.
· Maximum time to wait for a response. If the subject fails to make a response within this time, the subject fails the trial. (This time limit applies to Phase 1, if you require your subjects to touch the Phase 1 stimulus.)
· Choose location at random, or draw without replacement? By default, on each trial, the Phase 1 location is chosen at random from the possibilities listed in the Locations box (see above). If you tick "Don't choose at random; draw without replacement", then the program behaves as follows. It makes a list containing N copies each of all the possible locations, where N is the number you can type into the box (labelled "... from a list of size [number of possible locations] x N = [total list size]."). Suppose you want locations 3, 4, and 5 as your possible phase 1 locations - then there are three possible locations (call this L=3). If you enter N=2, the program will enter the locations {3,3,4,4,5,5} (N=2 copies of each possible location) into its list, for a total list size of L x N = 6. For each trial, it will then choose a location at random from this list, removing it from the list at the same time ("drawing [out from the list] without replacement"). Suppose the first trial chooses location 4; then the list will be {3,3,4,5,5} for the next trial. When the list is emptied, it is repopulated with L x N entries as before. The idea behind this is to allow you to prevent the program from choosing the location completely at random, instead ensuring an exactly equal distribution of locations across trials, nevertheless with some random element from trial to trial. (Obviously, if you specify N=1, then if you have L possible locations, each possible location will be used once in every L trials.) The larger N is, the closer the system is to true random sampling (i.e. an infinite N is equivalent to unticking this option). Be aware, however, that fully random choice means that your subject cannot predict anything on the basis of past locations (even if the distribution of locations across trials is not exactly even as a consequence of random sampling), but with a draw-without-replacement system, location does become informative (e.g. if you've had locations 4,3,4,5,3 for the first five trials in our example, the subject could in principle be certain that location 5 will be the one to be used next).
· For more explanation of this topic, see randomness, pseudorandomness, and drawing without replacement.

Levels (determining the delay between Phase 1 and Phase 2)

· On the right-hand side of the screen is the list of memory delays (delays between phase 1 and phase 2) that correspond to levels in the task. You may add, remove, or re-order the levels with the buttons next to the list. You may then choose the starting level, and the method by which the task chooses a level for each trial.

You can have the level fixed, or chosen randomly for each trial - in which case you can't enter a starting level - or you can increase the level by one every X trials, or you can increase the level by one when X of the last 20 trials have been performed correctly. Set your chosen value of X in the box.

"Random" means truly random, not pseudorandom. If you want to have a certain proportion of trials with one delay and a certain proportion with another, you could do it like this... Suppose you want *roughly* 40 trials with a 2-s delay and 20 trials with a 4-s delay, mixed at random. You could specify level 1 = 2 s, level 2 = 2 s, level 3 = 4 s, and choose levels at random for a total of 60 trials. They would be chosen at random (so you're not guaranteed exactly 40/20 trials, but on average they would be in a 2:1 ratio and the mean values would be 40 and 20).

(If, instead, you wanted 40 trials with a 2-s delay followed by 20 trials with a 4-s delay, then you'd specify level 1 = 2 s, level 2 = 4 s, and increase levels every 40 trials, for a total of 60 trials.)

"Draw without replacement" gives a pseudorandom system. It works just like the draw-without-replacement system used for the location (see above). For more explanation of this topic, see randomness, pseudorandomness, and drawing without replacement.

· Simultaneous presentation of phase 1 and phase 2 stimuli can also be achieved. In this variant of the task (Weed et al. 1999 Cog Brain Res 8: 185; Robbins et al. 1997 Psychopharm 134: 95), phase 1 proceeds as normal. On completion of phase 1, phase 2 is then immediately presented, but the phase 1 stimulus persists in its original location; touches to this stimulus are ignored, and the subject must touch the other stimulus that is visually identical to it but in a different location. Simultaneous presentation is triggered by specifying a negative delay in the delay list.
· TRAINING: touch resets memory delay. If selected (as a training option), a touch to the background during the memory delay restarts the memory delay (to discourage such responding). Only likely to be useful as a training option!

Phase 2

· Matching. If this is ticked, the task is delayed matching to sample. Otherwise, it's delayed non-matching to sample.
· For DNMTS, the original object is shown together with one novel object.
· For DMTS, the original object is shown together with zero (for training only), one, two, or three novel objects ('distractors'), or from 17-Nov-2004, up to seven distractors. Choose how many novel objects you want to present in Phase 2. (But note: since the automatic stimulus-varying procedures available to DMTS generate stimuli in groups of 4, the stimuli generated by these procedures with other total numbers of stimuli per trial are not guaranteed to follow the same rules as with 4 total stimuli per trial.)
· Specify a list of the possible number of distractors, just as you specified a list of delays (see above).
· Choose how you would like the program to pick the number of distractors from your list. There are options to use only the first number in the list; to choose the number of distractors randomly from the list for each trial; to progress steadily through the list until the last one is reached (whereupon the program will stay on the last value); to progress through the list when the subject gets Y of the last 20 trials correct (you specify Y; when the program reaches the end of the list, it stays there); and to draw without replacement from your list (multiplied by some multiplier that you specify, just as for the the other draw-without-replacement systems discussed above). For more explanation of this topic, see randomness, pseudorandomness, and drawing without replacement.
· Note that if you use an option that varies the number of distractors within the task, and you are using stimuli generated by manipulating a predefined stimulus set, as discussed above, the exact stimuli used may vary across sessions, particularly if the number of distractors depende on the subject's performance (e.g. "progress to a new number of distractors when the subject gets Y of the last 20 trials correct").
· Rotate target and distractors. If ticked, all phase 2 stimuli will be rotated by 90 degrees, left or right at random. Currently this option only works for stimuli of the type CamcogQuadPattern, which includes all predefined stimuli of the Camcog D(N)MTS, PAL, STAR, and ID/ED sets.
· Correction phase if subject fails Phase 2. Optionally, phase 2 can be repeated immediately (once) if the subject fails it the first time.
· The correction phase is identical to Phase 2, and should begin immediately after any punishment delivered for Phase 2 is complete. Since the correction phase is identical to Phase 2, the stimuli are shown at the same locations. Therefore, the correction phase cannot sensibly be started until the subject has removed its finger from the screen following phase 2. The option "Wait no longer than X seconds for finger removal before proceeding (0 no limit)" controls this behaviour. If set to the default of zero, meaning "no limit", the program waits until the finger is removed. However (as of Apr 2006) there have been problems with this feature that have not yet been identified; they may be hardware faults in some particular touchscreens. The result is that the "finger removal" message appears not to get through to MonkeyCantab, so it waits indefinitely to start the correction phase. This option allows you to specify a limit to this time. If you specify 60 s, for example, then MonkeyCantab will proceed with the correction phase as soon as the finger is removed following phase 2, or when 60 s have elapsed following phase 2, whichever comes first.
· Locations. Here you can specify (by clicking Set) the location(s) that your Phase 2 stimuli may be displayed in. The location numbers come from the location set defined above.
· Maximum time to wait for a response. If the subject fails to make a response within this time, the subject fails the trial. (This time limit applies to Phase 2, and the correction procedure if one is used.)
· Choose location at random, or draw without replacement? By default, on each trial, the Phase 2 TARGET stimulus location is chosen at random from the possibilities listed in the Locations box (see above). If you tick "Don't choose at random; draw without replacement", then the program uses the same draw-without-replacement system as described above for the Phase 1 locations. For more explanation of this topic, see randomness, pseudorandomness, and drawing without replacement. Note that the location of the target stimulus is drawn according to this system; the locations of the distractor stimuli are always chosen at random from the other possible locations. Note also the caveats above about drawing without replacement, i.e. that it makes location informative to the subject, where it previously wasn't. (My personal view is that random distributions are preferable to drawing without replacement for this reason.) If a subject never reaches Phase 2, the location that would have been used for the Phase 2 Target is used for the next trial.

· Repeat trial (give correction trial) if Phase 1 or Phase 2 failed, until subject succeeds at both phases. If ticked, then failure at either Phase 1 or Phase 2 triggers an exact repeat of the whole trial (total trial count permitting) until the subject succeeds at both Phase 1 and Phase 2.

Options for reward and punishment are set in the General Parameters section; visual objects are defined in the Visual Object Library.

Screenshots from the task

Phase 1

Phase 2: DMTS with three incorrect stimuli

Phase 1: a different stimulus...

DNMTS (not that you can tell by looking!)


Dual-Reward Ambiguous Cue Task

Summary

· A stimulus is presented as a cue (and must be responded to, unless it's an auditory-only stimulus).
· A choice is presented between manipulanda A and B. The stimulus is also re-presented at the same time (optionally).
· Some cue stimuli signal that A is correct: responding to manipulandum A will deliver reward A.
· Some cue stimuli signal that B is correct: responding to manipulandum B will deliver a different reward B.
· Some cue stimuli may be intermediate, and signal that either A or B is correct, probabilistically.
· Failure to respond, or an incorrect response, leads to "punishment" (e.g. a timeout).

About the task

This task is currently RESTRICTED to specified laboratories.

Most distributions of MonkeyCantab do not provide it, will refuse requests to add this task, and will not load the parts of configurations that incorporate this task.

Based broadly on Hales et al. (2016), PMID 27023442.

Trial structure

· For a given trial, a stimulus is selected. That stimulus may have a visual component, and may have an auditory component. It is also associated with a probabilities that response A is correct, P(A correct), and correspondingly P(B correct) = 1 - P(A correct).
· The stimulus is presented. If it has a visual component, it must be responded to (and failure terminates the trial as an omission). If it's an auditory-only stimulus, responding is impossible, so it's just played.
· After the stimulus is chosen (or vanishes spontaneously for auditory-only stimuli), there is a short pause.
· A choice is then presented between manipulanda (responses) A or B. The stimulus is also re-presented at the same time.
· If the subject responds to the correct stimulus, it wins the corresponding reward. If it responds incorrectly, or fails to respond, it is punished (e.g. with a timeout).
· After reward or punishment complete, there is an intertrial interval (ITI) before the next trial starts.

Configuring the task

The options are as follows:

LOCATION SET

Pick a group of three on-screen locations. The first is for response A; the second is for the stimulus; the third is for response B.

STIMULI

Add and configure your stimuli here. When you edit one, you get this dialogue:

· Name. Every stimulus has a name; this is just for the operator's convenience. Names must be unique within an instance of the task.
· Visual component. The stimulus can have a visual component. See Visual Stimuli.
· Auditory component. The stimulus can have an auditory component. See Sounds. (You must specify either an auditory or a visual component, or both. If there is no visual component, the subject will not be required to respond to the stimulus in the initial presentation phase.) Note that sounds will be "looped" (repeated continually) to satisfy the timing requirements of the task (see below), so sound durations that you configure here are of less relevance, as long as it's not zero.
· P(A correct). Choose the probability that, when this stimulus is presented, response A is the correct one. (The probability of B being correct will be 1 minus this.)
· Number of trials. The number of trials that will use this stimulus, in a trial group. See below.

Trial groups. Suppose you design three stimuli, and call them X, Y, and Z. You specify that X should be used 3 times per group, Y should be used 1 time per group, and Z should be used 3 times per group. The task will proceed as follows: it will create a group of stimuli {X, X, X, Y, Z, Z, Z}; it will shuffle this group; and it will use them on each consecutive trial (drawing without replacement). That is a "trial group". The task might end then, or you might choose to present several trial groups per session.

Note on probe stimuli. Depending on the degree of randomness, you can handle this in several ways. If you want true randomness, and probe trials being a minority, you could do this:

· define stimulus X: A always correct, 10 trials per group
· define stimulus Z: B always correct, 10 trials per group
· define stimulus Y: probe; perceptually intermediate between X and Z; 2 trials per group; P(A correct) = 0.5

However, because P(A correct) is implemented stochastically, you might find that your probe trial was treated as "A correct" on 2 out of 2 trials in a group.

To ensure probe counterbalancing, you could do this instead:

· define stimulus X: A always correct, 10 trials per group
· define stimulus Z: B always correct, 10 trials per group
· define stimulus Y1: probe; perceptually intermediate between X and Z; 1 trial per group; P(A correct) = 1
· define stimulus Y2: probe; perceptually identical to Y1; 1 trial per group; P(A correct) = 0

That will give you a guarantee that your probe will be "A correct" on 50% of trials within each group (not just on average).

MANIPULANDA

· Response A. The visual stimulus used for response A.
· Response B. The visual stimulus used for response B.
· Response A side. You can set response A to be always on the left, always on the right, or randomized. If you choose randomized, you can choose the group size, or draw-without-replacement multiplier. For example, if you choose "1", you might get patterns like {L, R}, {L, R}, {R, L}, {L, R}. If you choose "3", you might get patterns like {L, L, L, R, R, R}, {L, R, R, L, R, L}, {R, R, L, R, L, L}, and so on.
· TRAINING: offer only the correct response. If you tick this option, only the correct response option is presented.
· Present cue again at time of choice? By default this is true, but you can disable re-presentation of the cue at the time of choice.

REINFORCERS

· Reward A. Set the parameters for reward A, delivered when response A is correct and chosen.
· Reward B. Set the parameters for reward B, delivered when response B is correct and chosen.
· Punishment. Set the parameters for punishment, used for wrong responses and omissions.

TIMING

· Stimulus limited hold (s) (0 for no limit): When stimuli have a visual component, how long should they be presented for, in the initial stimulus-only phase, before the trial is failed as a "stimulus omission"?
· Pause between response-to-stimulus and choice (s): Set the delay between stimulus presentation/response and the choice that follows.
· Choice limited hold (s) (0 for no limit): Specify how long to wait for a choice, before the trial is failed as a "choice omission."
· ITI (s): Specify the intertrial interval.
· Maximum session time (min) (0 for no limit): Specify the maximum session time, or specify 0 for no limit (in which case the task proceeds until the allotted number of trials have been completed). Trials won't be interrupted halfway through if the session time expires; instead, the task will then finish when the current trial finishes.

TRIALS

· Number of trial groups. The idea of a "trial group" was defined above. Choose the number here. (The session will end if either all trial groups have been presented, or a session time limit is reached.)

CORRECTION PROCEDURE

· Repeat trial after an incorrect response? If this is selected, and the subject makes an incorrect response, the trial is repeated exactly (increasing the total number of trials presented in that group). This option is self-evidently incompatible with the training procedure, in which only a single correct response is offered. It is also prohibited if you specify an ambiguous stimulus, 0 < p(A correct) < 1, since "correct" is undefined in that situation. (The task does not prevent you from having two perceptually identical stimuli, one with p=0 and one with p=1, as above -- in that situation, it's your job to ensure you don't enforce a correction procedure that it's impossible for the subject to get right reliably!)
· Repeat trial after an omission? If this is selected, and the subject fails to respond (either as a stimulus omission or a choice omission), the trial is repeated exactly (increasing the total number of trials presented in that group).


Impulsive Choice

Delayed/probabilistic reinforcement choice task ("Impulsive Choice")

 Top Previous Next

Summary

Subjects are offered a choice between two reinforcers, which can differ in their magnitude, probability, and delay.

Purpose

Choice with delayed and/or probabilistic reinforcement (discrete-trial task).

Originally based on Evenden JL, Ryan CN (1996). The pharmacology of impulsive behaviour in rats: the effects of drugs on response choice with varying delays of reinforcement. Psychopharmacology 128: 161–170.

Sample publications using this form of task (PMID refers to PubMed ID at http://www.pubmed.com)

· Cardinal RN, Robbins TW, Everitt BJ (2000). The effects of d-amphetamine, chlordiazepoxide, alpha-flupenthixol and behavioural manipulations on choice of signalled and unsignalled delayed reinforcement in rats. Psychopharmacology 152: 362–375. PMID 11140328.
· Cardinal RN, Pennicott DR, Sugathapala CL, Robbins TW, Everitt BJ (2001). Impulsive choice induced in rats by lesions of the nucleus accumbens core. Science 292: 2499–2501. PMID 11375482.
· Cardinal RN, Cheung THC (2005). Nucleus accumbens core lesions retard instrumental learning and performance with delayed reinforcement in the rat. BMC Neuroscience 6: 9. PMID 15691387.
· Cheung THC, Cardinal RN (2005). Hippocampal lesions facilitate instrumental learning with delayed reinforcement but induce impulsive choice in rats. BMC Neuroscience 6: 36. PMID 15892889.
· Cardinal RN, Howes NJ (2005). Effects of lesions of the nucleus accumbens core on choice between small certain rewards and large uncertain rewards in rats. BMC Neuroscience 6: 37. PMID 15921529.

The following articles illustrate a quantitative methodology (to be commended) to establish aspects of reinforcer delay/magnitude/probability sensitivity; this paradigm can also be accomplished with the present task.

· Kheramin S, Body S, Mobini S, Ho MY, Velázquez-Martinez DN, Bradshaw CM, Szabadi E, Deakin JF, Anderson IM (2004). Effects of quinolinic acid-induced lesions of the orbital prefrontal cortex on inter-temporal choice: a quantitative analysis. Psychopharmacology 165: 9-17. PMID 12474113.
· Kheramin S, Body S, Ho M, Velazquez-Martinez DN, Bradshaw CM, Szabadi E, Deakin JF, Anderson IM (2003). Role of the orbital prefrontal cortex in choice between delayed and uncertain reinforcers: a quantitative analysis. Behavioural Processes 64: 239-250. PMID 14580695.
· Kheramin S, Body S, Ho MY, Velazquez-Martinez DN, Bradshaw CM, Szabadi E, Deakin JF, Anderson IM (2004). Effects of orbital prefrontal cortex dopamine depletion on inter-temporal choice: a quantitative analysis. Psychopharmacology 175: 206-14. PMID 14991223.
· Bezzina G, Cheung TH, Asgari K, Hampson CL, Body S, Bradshaw CM, Szabadi E, Deakin JF, Anderson IM (2007). Effects of quinolinic acid-induced lesions of the nucleus accumbens core on inter-temporal choice: a quantitative analysis. Psychopharmacology 195: 71-84. PMID 17659381.

Touchscreen and operant chamber versions of this task

This program (part of MonkeyCantab) is a touchscreen-based task. A separate task (known simply as ImpulsiveChoice) exists to run this task in conventional lever-based operant chambers; see http://www.whiskercontrol.com.

Typical trial structure

A number of types of task are possible with this program. The trial structure of a typical delayed-reinforcement task, albeit using operant chambers rather than touchscreens, is shown below (taken from Cardinal et al. 2001):

Likewise, the trial structure of a typical probability-based task is shown below (taken from Cardinal & Howes 2005):

Parameters

The parameters dialogue box looks like this:

The options are as follows:

· The stimulus with varying parameters (stimulus B) is left/right/mobile. Whereas the usual operant chamber version of this task associates a lever's side (e.g. left/right) with a particular reinforcement outcome, this touchscreen task associates a visual stimulus with a particular outcome. Suppose a red circle is your chosen stimulus for option A (which might be a small, immediate reward) and a green square is your chosen stimulus for option B (which might be a large, variably delayed reward). Should the option B stimulus always be on the left, always on the right, or variably on the left and right?
· ... if mobile, left/right side is drawn without replacement from list of size 2 x N. If you choose the "mobile" option, then specify this option. You choose a number; we will call it N. When you run the task, N copies of "left" are put into a hat, and N copies of "right" are also put in. The contents of the hat are shuffled. For each trial in turn, an option is then drawn out at random (and not replaced); this option determines the side of option B. When the hat is empty, the procedure is repeated. So if you specify N = 1, then each consecutive trial pair contains one "A on the right / B on the left" trial and one "A on the left / B on the right" trial. If you specify a very large N, the procedure becomes close to drawing truly at random. See Drawing Without Replacement for more details.
· As a further complexity, forced-choice trials are, by default, arranged in A/B pairs (see below). The "B side" is kept constant across that pair. A new "B side" is picked for each pair as described above. In free-choice trials, a new B side is picked for each trial as described above.
· "Left"/"right" locations. Define the Locations used for the left and right stimuli.
· Option A (typically fixed). This section specifies the parameters for option A.
· Stimulus/manipulandum. What stimulus will be shown for the subject to touch to obtain option A? Set the stimulus (see Choosing Stimuli For A Task). Alternatively, untick "Same stimulus for all A options" and then you can specify the stimulus on a per-block basis.
· Reinforcer A. Define the reinforcer delivered for this option.
· Option B (typically variable).This section specifies the parameters for option B.
· Stimulus/manipulandum. As for option A.
· Reinforcer B. Define the reinforcer delivered for this option.
· Block structure.
· Here you specify a list of blocks. Each block contains a delay and probability for each of the A and B options, and if you are setting stimuli on a per-block basis, those too.
· Task structure.
· Trial initiation: spontaneous/lever/stimulus/magazine. Should trials initiate themselves spontaneously? Should a lever response be required to start the trial? Or should the subject have to touch a central stimulus (which you can set) to initiate each trial? Or should the subject have to respond in the food magazine (optionally, illuminating the magazine light to indicate this?)
· Number of forced-choice trials per block. Trials are grouped into blocks. Blocks typically start with a certain number of forced-choice trials; by this I mean that only one option (A or B) is offered in each trial. Specify an even number here; "A" trials and "B" trials are (by default) delivered in pairs, with the A/B order within each pair being random.
· Number of free-choice trials per block. After the forced-choice trials, there are free-choice trials, where A and B are offered. Specify the number of free-choice trials in each block. Remember that the delay/probability of option B stays constant within a block, but varies across blocks.
· Shuffle trials within a block? Optionally, instead of having the forced-choice trials followed by the free-choice trials, you can shuffle (randomize) the order of all trials within a block.
· Shuffle across all trials? If ticked, all the trials will be shuffled together (across blocks).
· Stimulus bridges delay. If selected, a stimulus will be displayed during the delay to the A and B reinforcers (assuming that the response is rewarded). Choose the stimuli to be displayed when A and B have been selected, and choose whether this stimulus should be displayed on the side of the manipulandum (i.e. the A stimulus will be displayed on the A side, etc.) or in the centre of the screen.
· "Central" location. Define the Location used for the central stimulus.
· Houselight bridges delay. Ordinarily in this task, the houselight is on when waiting for trial initiation, and when waiting for a choice, and off at all other times. If this is ticked, the houselight is left on during any delay, and during reinforcement delivery/collection/feeding.
· Magazine light bridges delay. If ticked, the magazine light will stay on during the delay.
· Initiation limited hold. If the subject does not initiate the trial within this time, the trial is abandoned. (Not applicable for the "spontaneous" method of trial initiation; see above.)
· Choice limited hold. If the subject does not choose A or B within this time, the trial is abandoned.
· Collection limited hold. If the subject does not collect the reinforcer within this time, the task returns to the intertrial state. (Note that typical MonkeyCantab equipment cannot detect pellet collection, only licks at the pump; however, behaviourally it is unlikely to matter if the task returns to the intertrial state whilst pellets are being collected/eaten. Obviously, collection latency data will only be available for pump licking.)
· Reinforcer collection time. Once the reinforcer has been collected, the lights stay on for this length of time before the task returns to the intertrial state.
· Trials begin every... (known as the trial period, in the physics sense). Other things being equal, trials should begin at fixed intervals in delay-of-reinforcement tasks so as to avoid the confound of a subject choosing a short-delay reinforcer often and thus doing better than a subject choosing a long-delay reinforcer. This task fixes the trial period (the interval at which trials begin) so as avoid this problem. You must specify a time that exceeds the maximum reinforcer delay, plus initiation/choice/etc. limited hold times.
· The session time is shown, calculated from the information you have provided.
· Repeat {free, forced}-choice trials in which an omission occurs. Optionally, you may repeat (exactly) trials on which the subject makes an omission (i.e. fails to initiate, or fails to respond). Such repetitions will PROLONG the overall session time.
· Pellet pulse length. This option should be set to match your pellet dispenser; see the General Parameters.
· Time between pellets. This option should be set to match your pellet dispenser (and to make the arrival of multiple pellets distinctive to the subject); see the General Parameters.
· Quick configuration options. These buttons provide commonly used default settings for the assessment of delay or probability sensitivity; see the publications cited above for further discussion.

When you add or edit a delay/probability setting for option B, you'll see this:

If you have configured the task for independent stimuli for each delay/probability pair, you can also set the stimulus at this point.


List-based Delayed Matching/Non-Matching to Sample

Summary

A variation of the D(N)MTS task allowing greater efficiency of testing with long delays.

About the task

This task is a variant of the normal D(N)MTS task. Suppose you want to test many long delays (e.g. 5 minutes, 10 minutes, and 15 minutes). In the conventional task, in which SAMPLE and CHOICE phases are paired, this would be slow:

SAMPLE 1 ... CHOICE 1 (5 minutes plus response times)

SAMPLE 2 ... CHOICE 2 (10 minutes plus response times)

SAMPLE 3 ... CHOICE 3 (15 minutes plus response times)

... total 30 minutes plus response times

But the task could potentially be run in a more time-efficient manner, also requiring the subject to memorize several samples at once:

SAMPLE 1 ...

SAMPLE 2 ...

SAMPLE 3 ...

CHOICE 3

CHOICE 2

CHOICE 1

... total 15 minutes plus response times

The ListDMS task implements a generic algorithm that takes a large set of "dumbbell"-shaped temporal objects:

SAMPLE-gap-CHOICE

or XXXXX----------------------XXXXXX

and schedules them to minimize the overall total time, without any of the "XXX" parts overlapping.

Several scheduling methods may be used, including

"stack"

     XXXXXXX--------XXXXXXXXXX

                              XXXXX-----XXXXXX

"nest"

     XXXXXXXX-------------------XXXXXXXXXX

             XXXXX------XXXXXX

"overlap"

     XXXXXXXX----------------XXXXXXXX

             XXXXXXX----------------------XXXXXXXX

In what follows, "subnesting" means the following:

fully subnested

     XXXXXXXX-------------------------------------XXXXXXXXXX

             XXXXX---------XXXXXX

                  XXX---XXX

not fully subnested

     XXXXXXXX-------------------------------------XXXXXXXXXX

             XXXXX---------XXXXXX XXX---XXX

not fully subnested

     XXXXXXXX-------------------------------------XXXXXXXXXX

             XXXXX---------XXXXXX

                     XXX---------XXX

If you're not interested in how the scheduler works, skip the next few paragraphs.

"IN ADVANCE" SCHEDULING. The schedule is determined completely in advance. Therefore, we need to know how long each part of each trial's XXX-------XXXX structure is. The memory delay begins at the moment that the sample phase (Phase 1) ends - because that's when the stimulus vanishes, and the subject must begin to rely on its memory. Therefore, the scheduled "dumbbell", with its two "elements" to be scheduled, is made up as follows:

· first element length = maximum Phase 1 (sample phase) time (the scheduler takes into account whether lever initiation is being used, and whether the subject has to respond to Phase 1, and any reward time if Phase 1 is being rewarded, and so on)
· gap length = memory delay MINUS first element length (because the memory delay could start almost immediately after Phase 1 begins, if the subject responds quickly, or right at the end, if it responds late).
· second element length = maximum Phase 2 (choice phase) time PLUS maximum Phase 1 time (for the same reason as above) (the scheduler also takes into account the minimum intertrial time, and the maximum reward/punishment time).

// scheduling in advance

// 1=phase2, .=memorydelay, 2=phase2, X=first/second scheduling element, -=scheduling gap

//

// 1111111..............222222222                long phase 1

// 1..............222222222                        short phase 1

// XXXXXXX--------XXXXXXXXXXXXXXX                elements and gap

"ON THE FLY" SCHEDULING. The schedule is drafted as above, creating a sequence of trials (and a draft but not quite a full schedule; see below). However, the program aims to use the entire memory delay as the "gap". Therefore:

· first element length = maximum Phase 1 time (as before) PLUS an "on-the-fly" safety margin of 50ms (to more than compensate for a potential couple of milliseconds of inaccuracy caused by recalculating on the fly and communicating changes to the server; in the source code, this is LISTDMS_ONTHEFLY_SAFETY_MARGIN);
· gap length = memory delay MINUS any "phase 1 leftover" time (intertrial time and time spent rewarding Phase 1 - this is time that occurs within the memory delay, as the memory delay starts from the moment of responding in phase 1, but is not schedulable within the memory delay) MINUS LISTDMS_ONTHEFLY_SAFETY_MARGIN;
· second element length = maximum Phase 2 time PLUS an "on-the-fly" safety margin of 50ms (LISTDMS_ONTHEFLY_SAFETY_MARGIN).

Having drafted the schedule, the task then sets up the first trial. When that trial's phase 1 is complete, the program calculates the time saved (the difference between the actual first element length, and the scheduled maximum possible first element length). All subsequent trials are then brought forward by the time saved (if possible, i.e. if a scheduled Phase 2 doesn't prohibit some later trials from being brought forward). The next trial's start time is thus determined, and this trial is set up. (The timing of subsequent trials remains uncertain until we know the actual first element time for the trial that's coming.)

// scheduling on the fly

// 1111111..............222222222                long phase 1

//        #

// 1..............222222222                        short phase 1

//  #                                                # = during memory delay but not schedulable (e.g. reward, wait time)

// XXXXXXXX-------------XXXXXXXXX~                elements and gap (~ = safety margin)

In this scheduling system, overlaps cause a problem (because bringing forward all forthcoming trials might cause conflicts with existing schedule Phase 2 components with which they might clash). Therefore, "overlap" optimizations are disabled for on-the-fly scheduling.

A few parts of the conventional D(N)MTS task are incompatible with this process (such as specifying the session length - this now becomes a consequence purely of the trials scheduled). The "correction" phase is removed. The maximum time between trials is now a consequence of the trial schedule and cannot be specified manually. The sequence of trial delays is now determined by the scheduler, not by the user. There are slight modifications to the way that the number of distractors can progress (but only to the extent of making the task logically consistent). Otherwise, the ListDMS task implements all the options of the D(N)MTS task.

Configuring the task

· All the parameters are the same as the D(N)MTS task, with the exception of the following.
· Maximum number of trials: REMOVED.
· Maximum time: REMOVED.
· "Try to avoid stimuli used in the last N trials": Stimuli for both phase 1 (sample) and phase 2 (choice) are assigned at the moment that Phase 1 begins. Therefore, "used in the last N trials" may include some trials for which Phase 1 has been presented, but Phase 2 is yet to be presented. Other than this quirk, the functionality is identical to the D(N)MTS task.
· Time between trials: can specify the minimum only, not the maximum. Try to make this as short as possible, to keep the overall session time down and to allow more space to squeeze in trials interleaved among each other.
· Delays are specified in a simple list, with a list multiplier (how many copies of the list are to be used?). This determines the number of trials, and the schedule. For example, if you have 4 delays in the list, and use 4 copies of the list, you will get 16 trials. You can enter the same delay into the list several times, if you wish. Delays can be zero. As in the D(N)MTS task, setting a delay as negative means a zero delay with the sample stimulus shown alongside the choice stimuli in Phase 2 ("simultaneous" variant).
· Optionally, you can schedule in clusters. Choose "Schedule each copy of the list independently (and identically) then concatenate". If you do this, one copy of the list is scheduled, and then n copies of the schedule are run back-to-back. This may be useful, but isn't optimally efficient. By default (with this option unticked), the whole multiple-copy list is scheduled as one entity. This may give a more complex schedule but a more efficient one. (If you only use one copy of the list, obviously this tickbox does nothing.)
· Choose schedule in advance or schedule on the fly. In-advance scheduling gives a schedule that will be adhered to strictly in terms of trial start times. On-the-fly scheduling is more efficient; the order of the trials is fixed, but the actual start times are altered slightly, "live", to allow the entire memory delay to be filled with other trials (described above).
· Choose the scheduling strategy: do you want to minimize overall schedule duration (in which the strategies used, internally termed Sizist and Methodologist, may or may not produce full subnesting) or to prioritize subnesting (described above) over schedule length?
· You can also force the disabling of nest and overlap optimization methods; overlap optimizations are in any case disabled for on-the-fly scheduling (as described above), and you cannot disable nesting if you specify the "prioritize subnesting" scheduling strategy.
· Once you've specified the delays and the multiplier, you can have a look at the schedule that'll be used: click View Schedule. More detail is given below.
· The options for the number of distractors are the same as the D(N)MTS task, except for a caveat about two options: "Move to the next #distractors every Y trials" and "Move to the next #distractors when Y of last 20 trials were correct". The need for a change is obvious: since sample and choice phases may now occur in novel sequences. Since the number of distractors is assigned internally when Phase 1 begins, these options are changed as follows. (1) The "Move to the next #distractors every Y trials" option works as usual, except that the sequence of distractors is an orderly progression from the point of view of the Phase 2 elements (and therefore not necessarily of the Phase 1 elements) even if that Phase 2 is never presented (because the subject fails Phase 1). (2) The "Move to the next #distractors when Y of last 20 trials were correct" option refers to the last 20 choice phases (Phase 2s), at the time that the trial's Phase 1 begins; this clearly isn't quite as sensible as in the D(N)MTS task and it is probably best not used.
· The option to repeat all or parts of a trial (give a correction trial) is removed, as this unpredictability would mess up the scheduling.
· The option to reward Phase 1 performance is removed, as this makes the timing of the memory delay and scheduling other trials harder.

More on the schedules

A sample schedule looks like this:

This particular example is for 1 copy of a list with delays 0, 5, 100, 200 sec (with response time limits, reward times, etc., set in the rest of the task parameters, as described above, and in the General Parameters). The scheduler has done this:

0      25     50     75     100    125    150    175    200

SAMPLE0.................................................CHOICE0       (this will be TRIAL 0)

.......SAMPLE1.....................CHOICE1                            (this will be TRIAL 1)

..............SAMPLE2CHOICE2                                          (this will be TRIAL 2)

..........................................SAMPLE3CHOICE3              (this will be TRIAL 3)

Note also that extra time is allowed for response times, reward, etc.; therefore, trials with short memory delays appear to have no gap scheduled (all this means is that the potential variability in subjects' responses means that there is no gap into which another trial, or component of a trial, could potentially be scheduled).

There appears to be no gap between, for example, SAMPLE0 and SAMPLE1 - but the scheduler has already incorporated the "minimum time between trials" into the end of each segment, so this gap will be present (from the scheduler's point of view, SAMPLE0 ends when the sample is over, and then any time that the sample could have taken if the subject were a bit slower to respond [if you're making your subject respond to sample phases], plus the minimum time between trials, and any reward time, etc.).

You can take a copy of the schedule for the clipboard if you wish (though, of course, it is also saved in the results textfile, and equivalent information is saved to the results database).

As of 8 Mar 2010, the schedule also reports the size from the Subnest algorithm, and whether the resulting final schedule is fully subnested or not.

In the "Chronological Order" section of the results (e.g. the ListDMS_ChronologicalOrder table in the database), this structure will appear as follows, if the subject responds to all trials:

SegmentNumber,SegmentStartTimeMs,Trial,Phase

0,...,0,1

1,...,1,1

2,...,2,1

3,...,2,2

4,...,1,2

5,...,3,1

6,...,3,2

7,...,0,2

In the trial-based results (e.g. the ListDMS_Results table in the database), all trials appear, even if they were not given; look for the Phase1Given and Phase2Given fields to see if they were actually delivered. Look at the OrderInPhase2Sequence field to quickly determine the sequence of Phase 2 components (this is the number shown as "second part order" in the schedule description shown above). Phase 1 components are given in the order that the trials appear in the results.


Multiple-Choice Serial Reaction Time

Summary

Subjects must monitor the screen for a stimulus, which may appear in one of several locations, and respond rapidly to its location.

About the task

A marker tone (Marker 1) signals the onset of a trial.

A Centring Object is presented below the centre of the screen, and the subject must touch it, and keep touching for a specified duration. (Optionally, it is rewarded for this.) As an alternative, the subject must respond on a non-touchscreen device (a button or lever) and hold it for the specified duration.

There is then a delay.

Then a different object is presented in one of 1, 3, or 5 locations for a certain duration (typically brief). The subject must respond (within a timeout), and is rewarded for doing so. It's punished for missing or getting it wrong.

Optionally, you can choose whether the targets are randomly distributed among the locations (e.g. 33% - 33% - 33% with three locations) in the test phase, or are distributed with a different pre-specified distribution. There are probably not very many good reasons for using an uneven distribution, so think twice before using it!

Configuring the task

· One-, two-, three-, or five-choice task. See the Size and coordinates section for a description of the arrangement of stimuli. (Note that these options are out of the logical order for back-compatibility with previous configuration files! :-)
· Phase 1 location and Phase 2 locations. Select the Locations used for these phases.

· Maximum number of trials. When the subject has performed this number of trials, the task ends. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after any reward or punishment from the previous trial has finished.

PHASE 1 (CENTRING THE SUBJECT)

· Require a Phase 1 (centring) response. If ticked, the subject must make a response to centre it. If not, the task proceeds straight to Phase 2, and any distractors are timed from then as well.
· Phase 1 - Ignore other responses during centring response. If ticked, then any responses to the target locations during the centring response are ignored. Responses to the background (non-target areas) of the touchscreen are also ignored, unless the centring responses is made on the touchscreen, in which case a response to a non-target area is treated as the subject having released the centring response.
· Phase 1 - Response device. Would you like to have the subject be centred by holding on the touchscreen, or on a digital device (lever/button or the food magazine detector), before Phase 2 will begin? If you choose a magazine response, you can choose to illuminate the magazine light as a cue that the subject should respond there.
· Phase 1 - Stimulus (to be touched). Applicable if you are using a touchscreen response in Phase 1. Choose the centring stimulus (the one that the subject must touch for a while before the targets appear). Click Set to choose the stimulus.
· Phase 1 - Stimulus (shown while touch is held). Applicable if you are using a touchscreen response in Phase 1. Choose the stimulus that is shown while the subject is touching. Click Set to choose the stimulus.
· Treat lever as retractable. Applicable if you are using a lever response in Phase 1. By default, MonkeyCantab assumes a retractable lever (so by default this setting is true). The recorded "release time" for a retractable lever is the time the lever is retracted, when the subject has completed the required response, or of course earlier if the subject releases early. (The same is true for a touchscreen response: when the required response has been maintained for the required time, the stimulus vanishes and this time is recorded as the release time, unless the subject released early.) But if the lever is non-retractable, the subject can continue to respond beyond this time, in which case (if "treat lever as retractable" is unticked, or set to false) the actual release time is recorded instead.
· Phase 1 - Play Marker 2 sound as response starts. If ticked, the Marker 2 sound (as defined in the General Parameters) is played as the subjects begins to make the Phase 1 response.
· Phase 1 - Maximum time to wait for a response. If the subject fails to respond within this time, the subject fails the trial.
· Phase 1 - Time for which subject must make response. Choose the length of time for which you want your subject to keep its nose/finger on the centring stimulus. There are these methods:
o FIXED. Specify the fixed time.
o PROGRESSIVE - CONSECUTIVE. Specify the starting value, the increment, and the ceiling. The program adds the increment whenever the last X trials in a row have been correct (since the last increment, and as defined by full success including correct responding in Phase 2). Specify also X, the criterion.
o PROGRESSIVE - NONCONSECUTIVE. As for "progressive - consecutive" but allowing X non-consecutive correct responses since the last increment.
o BLIP - a brief (non-sustained) response only is required.
· Phase 1 - Must respond until target appears. If ticked, the subject must hold until the target itself is presented. In this case, Phase 2 is initiated as soon as the centring response is made, and any distractors are timed from this point as well.
· Phase 1 - Reward correct performance. Optionally, you can reward your subject for passing Phase 1 - but I [RNC] don't recommend it, as your subject wouldn't then be facing the right way to watch Phase 2! If the subject must respond until the Phase 2 target appears, then the program will not allow you to reward Phase 1 (as reward would then arrive at the same time as the target).

DISTRACTOR

· Use distractor? Optionally, you can present a distractor stimulus in a non-target location (chosen at random) before the target is shown.
· p(distractor). Choose the probability of a distractor stimulus on any given trial.
· Distractor stimulus. Set the stimulus you'd like to use as a distractor.
· Distractor onset. Set the distractor onset time, relative to the start of the Phase 1 holding response. If you want the target and non-target locations to be indicated before the distractor appears (which is sensible), the distractor onset time will need to be greater than the time for which the subject must make the Phase 1 response.
· Distractor offset. Set the distractor offset time, also relative to the start of the Phase 1 holding response. The distractor offset time must be greater than the distractor onset time. Since the distractor mustn't be present when the target is shown, the distractor offset time must be less than (phase 1 holding response time + minimum delay from start of phase 2 to target stimulus). [These delays are set below; see Possible delays before target stimulus.]
· Distractor only enabled for certain trials. If ticked, you can specify the first and last trials (numbered from 0 onwards, i.e. the first trial of the session is trial 0) on which the distractor is enabled. The probability of distraction still applies - so if you want to have no distractor except for trials 29-59, when a distractor should always be given, then you should tick this box, fill in "29" as the first trial (the thirtieth) and "59" as the last trial (the sixtieth) and ensure that p(distractor) is set to 1.

Note: if the non-target stimulus is being displayed when the distractor comes on (i.e. if the distractor onset time exceeds the centring response hold time), the distractor stimulus is presented on top of the non-target stimulus (not instead of it).

PHASE 2 (TARGET DETECTION AND RESPONSE)

· Phase 2 - Punish premature responding. If the subject responds in one of the possible target locations before the target is presented, this is termed a premature response. You can punish these (in which case the trial will be terminated).
· ... but only by restarting the delay before stimulus presentation. This option allows premature responses to be punished but with no overt stimulus changes. If ticked, then a premature response will restart the delay preceding the target, but will not terminate the current trial. No further distractors will be scheduled for the current trial, however.
· Phase 2 - Target stimulus. Choose the target stimulus by clicking Set.
· Optionally, you can have an alternative stimulus replace the usual target stimulus, and specify the probability that the alternative, rather than the "main", target will be used on any given trial. (Apart from their visual appearance, the main and alternative target stimuli behave identically. This option is to allow you to have visually different versions of the target, intermixed randomly.)
· Phase 2 - "Absent stimulus" marker. During the delay, while the target is being presented, and afterwards, any locations that aren't showing the target show this marker stimulus. Choose the stimulus by clicking Set. Typically, this stimulus would be an empty box.
· Phase 2 - Non-target stimulus. Optionally, during the presentation of the target stimulus, non-target stimuli (rather than absent-stimulus markers) can be displayed at all other locations, to make the task harder. Specify the non-target stimulus here, or leave it blank if you don't want to use this feature.
· Phase 2 - Maximum time to wait for a response. This time is measured from the start of the target stimulus, unless otherwise specified (see next option). If this time limit expires and the subject hasn't responded, it fails the trial.
· Phase 2 - ... timed from the end (rather than the start) of the stimulus. If ticked, the maximum time to wait for a response (see previous option) is measured from the end of the target stimulus, rather than from the start.
· Phase 2 - After first response, permit perseverative responding? If this is not ticked, then when the subject responds, the screen is cleared. If it is ticked, then response-location indicators remain on the screen, allowing the subject to make perseverative responses (to the correct or to incorrect locations) following its first response. There is a further option to punish perseverative responding (by ending the trial and delivering punishment, as defined in the General Parameters).
· Phase 2 - Choose locations independently across trials, or draw without replacement? By default, on each trial, the Phase 2 target location is chosen at random. If you tick "Don't choose locations independently across trials; draw without replacement...", then the program behaves as follows. It makes a list containing N copies each of all the possible locations, where N is the number you can type into the box (labelled "... from a list of size numlocations x N"). For each trial, the target location is drawn at random, without replacement, from this list. When the list is emptied, it is repopulated with numlocations x N entries as before. The idea behind this is to allow you to prevent the program from choosing the location completely at random, instead ensuring an exactly equal distribution of locations across trials, nevertheless with some random element from trial to trial. (Obviously, if you specify N=1, then if you have L possible locations, each possible location will be used once in every L trials.) The larger N is, the closer the system is to true random sampling (i.e. an infinite N is equivalent to unticking this option). Be aware, however, that true random choice (choice independent for each trial) means that your subject cannot predict anything on the basis of past locations (even if the distribution of locations across trials is not exactly even as a consequence of random sampling), but with a draw-without-replacement system, location does become informative. For more explanation of this topic, see randomness, pseudorandomness, and drawing without replacement.
· Phase 2 - Equiprobable locations? (Only applicable if you are not using the draw-without-replacement system.) If ticked, p(target on the left) = p(target in the middle) = p(target on the right) = 1/3, for the three-choice task; similarly, p(each location) = 0.2 in the five-choice task, and p(left) = p(right) = 0.5 for the two-choice task. If you wish, you can force the location probabilities to something else by removing this tick and filling in the probability information. For the three-choice task, specify p(left) and p(right) boxes. Obviously, p(middle) = 1 - p(left) - p(right) in these circumstances. For the five-choice task, fill in p(location 0) through p(location 3) and p(location 4) will be calculated for you. For the two-choice task, specify p(left), and p(right) will be calculated as 1 - p(left) when the task runs.

Note that this does not apply to the distractor stimulus, which is always equiprobably located in one of the non-target locations.

· Phase 2 - Possible delays before target stimulus. There are several ways to specify the possible delays (in seconds):
· Random between... Every trial, a delay is chosen at random between the two specified (minimum and maximum) values. The probability density function is rectangular within that range.
· Randomly from the list. Every trial, a delay is chosen at random from the list shown to the right.
· From the list, in order. Every trial, a delay is chosen from the list, starting with the top value in the list. You may specify the number of trials for which each list value is applied (e.g. if you specify 5, then the subject will get 5 trials with the first delay, then 5 with the next, then 5 with the third... until the list is exhausted, at which point the program starts again from the top of the list).
· Draw without replacement. This is a pseudorandom selection technique. A list is populated with the possible alternatives. In fact, it's populated with n copies of each of the possible alternatives, where n is the multiplier that you can type into the box. When a value is required, one is drawn at random from the list, without replacing it back in the list. If the list ever runs out of values, it is repopulated as before. If the multiplier is 1, then each of the x alternatives is used once in every x trials. If the multiplier is n, then each of the x alternatives is used n times in every nx trials. If the multiplier is very large, this system approximates true random selection. For more explanation of this topic, see randomness, pseudorandomness, and drawing without replacement.

Use the Add, Remove, Up, and Down buttons to edit the list of possible delay values.

· Phase 2 - Possible target stimulus durations. There are several ways to specify the possible stimulus durations (in seconds):
· Start with... The program starts with the specified stimulus duration. When the subject gets a certain number of trials correct consecutively, the stimulus duration is decreased by a certain amount, down to a specified minimum value.
· Random between... Every trial, a stimulus duration is chosen at random between the two specified (minimum and maximum) values. The probability density function is rectangular within that range.
· Randomly from the list. Every trial, a stimulus duration is chosen at random from the list shown to the right.
· From the list, in order. Every trial, a stimulus duration is chosen from the list, starting with the top value in the list. You may specify the number of trials for which each list value is applied (e.g. if you specify 5, then the subject will get 5 trials with the first stimulus duration, then 5 with the next, then 5 with the third... until the list is exhausted, at which point the program starts again from the top of the list).
· Draw without replacement. This is a pseudorandom selection technique. A list is populated with the possible alternatives. In fact, it's populated with n copies of each of the possible alternatives, where n is the multiplier that you can type into the box. When a value is required, one is drawn at random from the list, without replacing it back in the list. If the list ever runs out of values, it is repopulated as before. If the multiplier is 1, then each of the x alternatives is used once in every x trials. If the multiplier is n, then each of the x alternatives is used n times in every nx trials. If the multiplier is very large, this system approximates true random selection. For more explanation of this topic, see randomness, pseudorandomness, and drawing without replacement.

Use the Add, Remove, Up, and Down buttons to edit the list of possible stimulus duration values.

Options for reward and punishment are set in the General Parameters section; visual objects are defined in the Visual Object Library.

Screenshots from the task

Here's an illustration of a 3-choice task, using a touchscreen centring response.

The subject has to hold on to the triangular stimulus...

... after which it monitors the three locations.

Briefly, a target appears in one location.

Here's a screenshot of a five-choice task (with different target stimuli).


Multireinforcer Search Task

Summary

Subjects must choose between several targets; some will provide reinforcement if selected. The relevant dimension may be the stimulus itself, or its location, or the combination of stimulus and location.

About the task

This task is currently RESTRICTED to specified laboratories.

Most distributions of MonkeyCantab do not provide it, will refuse requests to add this task, and will not load the parts of configurations that incorporate this task.

This task allows for the presentation and differential reinforcement of a set of targets. Each reinforcer has its own LOCATION (which may be fixed or variable); its own STIMULUS (which may be fixed or variable, though a target may not have both a variable location and a variable stimulus); and its own REINFORCER (which may be individually configured). On each trial, a selected number of targets are presented; the first response is noted, and the appropriate reinforcer delivered.

The task may therefore be used in several ways:

· locations all vary; stimuli fixed and different = visual discrimination
· locations all fixed; stimuli fixed and all the same = spatial discrimination
· locations all fixed, stimuli variable = harder spatial discrimination
· locations all fixed; stimuli fixed and all different = easy (conjoint spatial+visual) discrimination

Configuring the task

· Trial initiation may be spontaneous; requiring a lever response (see also Use with Dogs); requiring a response to a visual stimulus (whose appearance and location may be specified here).
· Maximum number of trials. When the subject has performed this number of trials, the task ends. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after any reward or punishment from the previous trial has finished.
· Maximum time to wait for a response. Once stimuli have been presented, this is the time that the program will wait for a response before abandoning the trial as an omission.

TRIAL SETTINGS

· Location set. Choose the Locations used by this task. In what follows, these locations are referred to by their number within this set.

Targets

· Specify the target list. Targets are configured as follows. Note that a target cannot have a variable location and a variable stimulus, and two targets cannot share the same fixed location; all other combinations are possible.

· Choose the minimum and maximum number of targets per trial.

Stimuli (for targets with VARYING stimuli)

· Specify a list of stimuli to be used by targets with varying stimuli.
· These stimuli may be picked at random; or by drawing without replacement (DWOR) starting afresh each trial; or using DWOR but maintaining the draw-from list across trials until it is empty. For DWOR systems, specify the DWOR multiplier. See DWOR for more details.

OTHER

· Leave correct stimulus on during reward? (etc.) When the subject responds, the correct stimulus can be left on the screen during reward, and/or the incorrect stimulus can be left on during punishment. These stimuli can either be left on for the duration of the reward/punishment (as specified in the General Parameters), or you can specify how long to leave them on the screen for.


Paired-Associates Learning

Summary

Tests stimulus-location pair association. (For stimulus-stimulus pair association, see SSPAL.)

About the task

The basic principle of a paired-associates learning task is to associate multiple pairs of stimuli, and test recall. An example from human games is the Klimt Memo game; you have a deck of 72 cards with 36 images from paintings by Gustav Klimt. You scatter the cards face-down on a table. Each player turns over cards two at a time, trying to remember where each image is; if you turn over two identical cards, you remove the pair from the table; otherwise, you replace them in the face-down position. The objective is to turn over as many matching pairs as possible. The basic association being tested is a {stimulus, location} pair, and you must remember many of these to do well in the game.

Both the human and monkey versions of CANTAB use a stimulus-location pair. One might call the test "delayed matching-sample-to-location". In human CANTAB, subjects are first shown up to 8 stimuli in different locations around the edge of the screen. In the test phase, they are then shown a series of single stimuli in the centre of the screen and asked to indicate the location in which each stimulus was presented in the first phase. In monkey CANTAB, only 4 locations are used and the exemplar is not in the centre of the screen; instead, the exemplar is shown in every possible location and the monkey must choose the one location in which that stimulus was previously shown. For the task to be described as PAL, >1 stimulus must be used (otherwise it's just delayed matching to location).

The sample stage begins with the Marker 1 sound; thereafter, individual stimuli are presented. The subject may be required to touch them. After all the stimuli have been sampled, there is a "memory delay". The choice phase begins with the Marker 2 sound. The subject will be offered multiple choices, one for each stimulus that was seen in the sample phase. Each time, the subject must touch the location in which that stimulus appeared in the sample phase.

Configuring the task

· Require lever response to start each trial. Requires that the subject make a lever response to initiate each trial. See Use with Dogs.
· Maximum number of trials. When the subject has performed this number of trials, the task ends. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Maximum time to wait for a response. If the subject fails make a response within this time, the subject fails the trial. (This time limit applies to the sample phase only if you require your subjects to touch the sample stimulus; it always applies to the choice phase.)
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after any reward or punishment from the previous trial has finished.
· TRAINING: touch resets time between trials. If selected (as a training option), a touch to the background restarts the intertrial interval (to discourage such touching). This only occurs during the "proper" ITI, after any reinforcement (etc.) has finished.

SAMPLE PHASE

· Must touch stimuli in sample phase. If this is selected, then the subject must respond to each sample stimulus. If you choose this option, you may also choose whether or not the subject should be rewarded for touching sample stimuli. If you do not want your subject to have to touch the stimulus, you must specify the Sample stimulus duration instead.
· Time between sample stimuli. This is the time between consecutive sample stimuli.

DELAY PHASE

· Memory delay. This is the time between the end of the last sample stimulus and any associated reward (e.g. the time it takes to operate the pellet dispenser and play a "reward" sound) and the first of the choices. Specify a minimum and a maximum time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values.
· TRAINING: touch resets memory delay. If selected (as a training option), a touch to the background during the memory delay restarts the memory delay (to discourage such responding). Only likely to be useful as a training option!
· Require centring response before choice. If ticked, then at the end of the delay, the subject must respond to an "empty box" stimulus (a non-stimulus marker, see below), typically at a central location, before it proceeds to the choice phase. The location is defined by the grid named Centre_response (or PAL_Locations_centre_response in the database), which you can edit (see below).
· ... Reward centring response. If you have chosen to require a centring response, you can choose to reinforce it (to encourage centring behaviour more strongly). Choose the associated reinforcer by clicking Set reinforcer. Note that "main" rewards use the standard reward defined in the General Parameters. (NB "centring" is the primary OED spelling!)

CHOICE PHASE

· Reward each correct choice. If this is selected, every time the subject makes a correct choice (in the choice phase, obvoiusly), it gets reward. If this option is not selected, subjects only get rewarded at the end of the trial if they have not made any choice errors. Regardless of this option, any time the subject makes an error, it is punished (as specified in the General Parameters).
· Time between choice presentations. This is the time between consecutive choice presentations (not including any time taken to deliver reward, if you have chosen to do this).
· Training option: Only one choice. If this option is ticked, then one of the (potentially several) sequential choices is picked at random (pseudorandomly; see below). This choice is delivered as normal. No other choices are presented.
· Training option: Only one real choice. (Only available if "only one choice" is not ticked.) If this option is ticked, then one of the (potentially several) sequential choices is picked at random (pseudorandomly; see below). This choice is delivered as normal. For all other "choices", only a single stimulus is presented (i.e. a choice constrained to one stimulus!). For example, with four locations (1-4) and two stimuli (A, B), you might get this sequence:
· sample: stimulus A in location 2
· sample: stimulus B in location 4
· choice: stimulus B in location 4 (whereas in normal PAL, you'd also have a copy of stimulus B in location 2)
· choice: stimulus A in location 2 and stimulus A in location 4 (the "proper" choice)
· Single-choice DWOR multiplier. (Applicable only if you tick "Only one choice" or "Only one real choice".) Within each trial block, the stimulus selected to be the only (or only "real") choice is picked at random -- though not quite at random, but using MonkeyCantab's standard pseudorandom draw-without-replacement (DWOR) system. Set the DWOR multiplier here. The pseudorandom nature is with respect to the ORDER of stimulus presentation. So, if you use "only one choice" with 3 stimuli and a DWOR multiplier of 1, then every three trials will offer one choice of the first-of-three stimuli presented, one choice of the second-of-three stimuli, and one choice of the third-of-three stimuli.
· Training option: Ignore incorrect choices. In this alternative training option, responses to incorrect stimuli in the choice phase are completely ignored (other than logging to the results file/database the fact of such a response being made). Supposing we have the same stimuli/locations as above, then this training system might look like this:
· sample: stimulus A in location 2
· sample: stimulus B in location 4
· choice: stimulus B in location 2 and stimulus B in location 4 (but responses to stimulus B in location 2 are ignored)
· choice: stimulus A in location 2 and stimulus A in location 4 (but responses to stimulus A in location 4 are ignored)

· Mark responses that aren't rewarded or punished. If this is chosen, then any responses that are neither rewarded nor punished are marked with the Marker 3 sound (as specified in the General Parameters).
· End trial on first error. If this is selected, then whenever the subject makes a mistake, the trial ends.
· Repeat failed trials. If this is selected, then if the subject fails to get all the choice presentations correct (or if you have "End trial on first error" selected and it gets something wrong in the sample phase) then the trial will be repeated. Set the number of times a trial may be repeated, too. Optionally, the order in which samples and choices are presented can be shuffled for repeated trials (while holding the stimulus-location pairs constant); to do this, tick Shuffle sample/choice order when repeating trials.
· Trial scheme. Trial schemes define the number and type of trials you will use. Click Set to choose a trial scheme. Click Define to define trial schemes. See below for details.

GRID DEFINITIONS

· For each grid type used, you can specify the exact Locations that the grid maps to. Some grids require fixed numbers of locations; one (the User_1 grid) is wholly configurable. The schemes (see below) select and refer to these grid types.

The task ends if EITHER (a) the total maximum number of trials is reached, or (b) the trial scheme has been completed and has run out of further trials to offer.

Stimuli

· "Empty box" stimulus. Choose the stimulus to be used as an "empty box" marker (for more details, see "Block Specification", below).
· Specify stimuli by hand. If you choose to specify stimuli by hand, the list shows the available stimuli. You cannot put a stimulus into the list more than once. Click Add and Remove to add/remove stimuli. You can also choose one of two methods for choosing the stimuli for each trial:
· Cyclical. The program begins with a specified stimulus number and selects stimuli for each trial by working down the list, resuming at the start of the list if/when it runs out of stimuli to use at the bottom of the list.
· Random. The program picks a set of stimuli to use at random on each trial. You will need to fill in "Try to avoid stimuli used in last X trials"; the program will try not to choose any stimuli that have appeared (or were scheduled to appear, in the case of failure at phase 1) in the last X trials.

It's your responsibility to ensure that enough stimuli are in the list! The program will complain if you try to start it and there aren't enough stimuli to provide a unique stimulus in each location for every trial in your scheme. It won't complain if it needs to re-use stimuli from trial to trial.

Incidentally, when you Add stimuli, you can choose several at once by holding down the Shift key as you click on stimuli:

· Predefined stimuli. You may also use one of the predefined stimulus sets.
· You may choose the order of the base stimuli within the set - either random, ascending, descending, or user-specified. If you choose the "user-specified" order, you may click the Set button to specify the order:

· If you choose a predefined stimulus set, you also have the option of varying the colours of the predefined stimuli.

The program runs through all stimuli (in the order you chose), beginning with the base stimulus set (no variation - "variant 0"). If you choose to use colour variants, the program then runs through all the stimuli in the same order as the first run, with variant 1, and then again with variant 2, and so on. The program does not store the subject's position for next time. (I believe this is how Cambridge Cognition's DOS version of MonkeyCantab worked.) "Variants" are modifications of the base stimulus by altering the colours of each quadrant. There are 7^4 = 2401 variants of each stimulus.

· Shuffle order of stimuli within each trial. Having picked the stimuli for a given trial from your list of stimuli, or from the predefined set, you then have the option of shuffling the order of presentation of these, in the sample and choice phases. If you want an absolutely pre-specified sequence of stimuli, you would not want this ticked.

Set trial scheme

When you click this button, you can choose from a list of defined trial schemes.

Trial schemes

When you click Define schemes from the main parameters dialogue box, you can see the schemes. You may add, remove, copy, and rename schemes. Click a scheme and then click Define scheme to edit one particular scheme.

If a scheme is mis-configured, a warning message will appear when you click on the scheme.

Define scheme

When you click this button, you can edit an individual scheme. Schemes consist of blocks of trials. Here, there are two blocks. You may add, remove, copy, and re-order blocks. Click Define block to edit one particular block.

If a block is mis-configured, a warning message will appear when you click on the block.

Block specification

Here's where you can edit the block.

If you tick the "Zurich option", the options change slightly:

· Number of trials. Set the number of trials in this block. All these trials will run with the same settings (though individual stimuli and locations will be chosen at random for each trial within the block).
· Grid type. Choose from a variety of grid patterns (whose exact locations on the screen were defined above); this setting determines the number of available locations (e.g. 4 or 9). The three numbers that follow must not add up to more than the number of available locations!

For the sample phase:

· Number of stimuli. The number of stimuli presented in the sample and choice phases.
· Number of "empty" locations offered in sample stage. You may show the "empty box" object at a number of locations in the sample phase, if you wish. This can be useful to enforce responding to particular areas of the screen. Set this number here.
· An empty box is always last in the sample presentation sequence. This option allows you to enforce the rule that one of the empty boxes will always be shown last in the sample phase.

For the choice phase:

· Number of locations offered in the choice stage that weren't offered at the sample stage. In the choice phase, the default task will always use all the locations in which sample stimuli were presented (that's obvious), and it'll also use the locations at which you displayed the "empty box" in the sample phase, if any. You can also offer locations in the choice phase that were never offered in the sample phase. Choose that number of extra locations here.
· Zurich option. If you select this option, designed for a research group in the Swiss Federal Institute of Technology in Zurich, a rather different task is used. In the choice phase, a sample stimulus is shown in its correct location (as always), but instead of distractors appearing in all locations where other samples were presented, distractors only appear in locations where no stimulus was presented in the sample phase. Furthermore, the distractors for one stimulus don't overlap with the distractors for a different stimulus. Imagine you are using the four-way grid, and have 2 stimuli shown in the sample phase. Suppose stimulus 1 appears in location A, and stimulus 2 appears in location B. Then the distractor location for stimulus 1 can only be C or D. If it is C, then the distractor location for stimulus 2 can only be D. That is, there is no overlap of sample or distractor locations for stimuli 1 and 2. So the only thing you need to choose is the number of distractors that accompany each stimulus.

For the conventional task,

number of sample stimuli + number of "empty" locations in sample phase + number of "extra" locations in choice phase

must not exceed the total number of locations in the grid. For the Zurich task, neither

number of sample stimuli + number of "empty" locations in sample phase

nor

number of sample stimuli * (number of distractors per stimulus + 1)

can exceed the total number of locations in the grid. Otherwise, a warning will appear showing that your scheme/block is mis-configured.

Screenshots from the task

This is a very simple example, with the conventional PAL task, three stimuli, no "empty boxes" shown in the sample phase, and no extra locations offered in the choice phase.

Sample phase

Choice phase. You can see that the underlying grid is the default 4-way "corners" grid.

A screenshot from the choice phase using the default 4-way "edges" grid.

A screenshot from the choice phase using four locations of the default 9-way grid.


Rapid Visual Information Processing

Summary

Subjects must monitor the screen for a target stimulus, whilst ignoring distractor stimuli that may appear one by one in the meantime.

About the task

· Each trial begins with a Marker 1 sound.
· The subject may initiate a trial (and subsequently respond) by pressing (and then releasing) a lever, or by touching (and later releasing) a stimulus on the screen, or by pressing a lever to initiate the trial and then touching the target to respond.
· Following initiation, the target area appears on the screen.
· After a configurable delay, stimuli start to appear in the target area. The subject must watch for the target stimulus. Before it appears, there is usually a series of distractor stimuli that must be ignored.
· Success occurs when the subject responds to the target stimulus. Failure occurs when the subject fails to initiate the trial, fails to respond to the target, or responds early to one of the distractors.

Visual appearance

· The visual manipulandum, if used, appears in the centre bottom position of the nine-way grid.
· The target marker, distractors, and target appear in the centre top position of the nine-way grid.

Configuring the task

· Limited hold before trial is abandoned if no response (s). Specify the time from the trial start before the trial is abandoned if the subject does not initiate.
· Method of trial initiation and response. Options here are listed next. Additionally, the Marker 2 sound can be played when the subject initiates.
o INITIATE with a lever press; RESPOND by releasing the lever. This option extends the lever (retracting it at the end of the trial) and does not involve a visual manipulandum on the touchscreen.
o INITIATE by touching a visual manipulandum; RESPOND by releasing the same manipulandum. This option does not use the lever, but requires a visual manipulandum. Click the Set buttons to choose a visual stimulus for this (see Choosing Stimuli). The visual manipulandum changes once it is touched to the "manipulandum once touched" option (just supply the same stimulus in both boxes for nothing to change).
o INITIATE by pressing a lever; RESPOND by touching the target area. This option does not require the visual manipulandum. The lever stays out for the whole trial (though responses on it after initiation are ignored).
· Target area marker 1. Once the trial is initiated, the target area marker appears, and remains for the rest of the trial (except that Target Area Marker 1 is replaced by Target Area Marker 2 when the distractors start).
· Time without distractors. After initiation, there is a pause before distractors start to appear. There are two possible methods for specifying the time without distractors:
o MINMAX. Specify the minimum and maximum pause. The program picks a pause length at random within that range.
o PROGRESSIVE - CONSECUTIVE. Specify the starting value, the increment, and the ceiling. The program adds the increment whenever the last X trials in a row have been correct (since the last increment). Specify also X, the criterion.
o PROGRESSIVE - NONCONSECUTIVE. As for "progressive - consecutive" but allowing X non-consecutive correct responses since the last increment.
· Target area marker 2. As above.
· Time to display each stimulus. Each stimulus is displayed for a certain time, then goes off for a certain time (during which responses are still counted). Specify these times.
· Sequence of distractors. There are two options.
o LIST 1. In this method, you provide a list (List 1) of individual distractor stimuli, and tell the program (as a range) how many distractors to use per trial. The program either uses them in sequence or pseudorandomly as it needs distractors.
o LIST 2. In this method, you specify a list (List 2) of SEQUENCES of distractor stimuli, one for each trial. In this method, the program may use your sequences sequentially or pseudorandomly, but it does not interfere with the sequence you specify within a given trial. The number of distractors on each trial is determined by the length of your sequence. Difficult tasks may be created this way (e.g. if your target is a yellow triangle, you could specify a list of distractors of green circle, green circle, green circle, green circle, yellow circle; this last distractor may cause premature responding as it shares its colour with the target).
o Whichever method you use, you can have the program pick stimuli (List 1) or trials (List 2) from your list sequentially, cycling round to the start when the list runs out. Alternatively, you can put N copies of the relevant list into a big hat, shuffle everything in the hat, and then pick stimuli (List 1) or trials (List 2) from the hat until the hat is empty, before repeating the whole process. This process is called drawing without replacement, and the number N is something you can specify in the dialogue box ("... a set of N copies of the list...").
· Target stimulus. Specify the eventual target stimulus. It is displayed for the same time as the other stimuli (see above).
· Maximum time / maximum total trials / maximum rewarded trials. I hope these are obvious. There are further limits available on rewards in the General Parameters.
· Time between trials. Specify the minimum and maximum intertrial time.
· Target location and Manipulandum location. Set the Locations used for the target and for the trial-initiation manipulandum.

Screenshots

These screenshots don't use ideal stimuli! Anyway, they give a rough idea.

This example uses a visual manipulandum for initiation. Here it is, waiting for a response...

Now the subject has responded (and continues to touch the manipulandum, which has now turned green). A target marker has appeared at the top of the screen.

After a while, a distractor appears over the target marker...

... and vanishes again. This process might be repeated several times, until...

... the target appears.

If the subject doesn't respond to the target, it still has a little bit of time after the target disappears to respond.


Reversal Learning

Summary

Trains and then reverses a stimulus-reinforcer association.

About the task

Provides facilities for simple or serial reversal learning, with either two stimuli (A+B- → A-B+) or three (A+B-C- → A-B+C-). You could use one of the Visual Discrimination tasks to accomplish basic between-session reversal learning; this task provides more sophisticated options.

There is an option to use three objects. In this task, a subject is trained with A+B-C- and then reversed to A-B+C-; perseveration can then be measured directly as the degree to which subjects respond to A more than to C. For examples of this task in the recent neurobiological literature, see Arnsten et al. (1997; Neurobiology of Aging 18: 21-28) or Jentsch et al. (2002; Neuropsychopharmacology 26: 183-190). I'm sure this form of the task has a much longer history, but I don't have my copy of Mackintosh (1974; "The Psychology of Animal Learning") to hand!

Configuring the task

· Trial initiation. Specify the initiation method (spontaneous, requiring a lever response, or requiring a magazine response - in which case you can have the magazine light illuminated to indicate the need for a response) and the initiation limited hold time (after which failure to respond causes the trial to be abandoned; use 0 for no limit). See also Use with Dogs.
· Maximum number of trials. When the subject has performed this number of trials, the task ends. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Stop after the within-session reversal criterion has been attained this many times. It's easiest to give an example. If you enable within-session reversals (see below) and enter "2" here, then the subject will be started on one configuration (e.g. A+B-), allowed to proceed until it has passed its first reversal criterion, tested on the new task (A-B+), allowed to proceed until it has passed the second reversal criterion, and then stopped. (Within-session reversal criteria are explained below. You may specify 0 for no such limit. If you do not enable within-session reversals, this option will have no effect.)
· Maximum time to wait for a response. If the subject fails to make a response within this time, the subject fails the trial. (You may specify 0 for no limit.)
· Play Marker 1 sound at start of trial? Should the task play a Marker1 sound at the point the trial should be initiated (which, for spontaneous initiation, is the same as the moment the trial starts)?
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after any reward or punishment from the previous trial has finished.
· Leave correct stimulus on during reward? (etc.) When the subject responds, the correct stimulus can be left on the screen during reward, and/or the incorrect stimulus can be left on during punishment. These stimuli can either be left on for the duration of the reward/punishment (as specified in the General Parameters), or you can specify how long to leave them on the screen for.
· Touches during ITI are punished by restarting the ITI. Fairly obvious.
· Reverse within a session... when subject performs X of the last Y trials correctly. Fairly obvious, I hope. Set the value of X and Y in the boxes. (When a reversal occurs, the requirement is reset.) You can specify X and Y for (a) the first discrimination, and (b) subsequent reversal discriminations.
· Use three stimuli rather than two? Choose whether you want a two-stimulus task or a three-stimulus task.
· Stimuli. Choose the stimuli required by the task (A, B, +/- C). In a three-stimulus task, stimulus C is never correct.
· Locations. Choose the location sets used by the task. One location set (the "2-task" set) is used for the two-stimulus reversal task. If you use three stimuli, two location sets are used ("3-task A" and "3-task B") - one of these is chosen at random on each trial (and whichever is used is recorded in the outpu). (Why? The intention is for tasks involving a central feeder; one of the default 3-task locations sets has two stimuli on the left and one on the right, and the other has one on the left and two on the right. This allows the centre to be avoided without introducing a side bias. You can, of course, configure the A and B location sets to be identical.)
· Begin with B+ (rather than A+)? If you want stimulus B to be correct initially, tick this box. Otherwise, A will be correct.
· Probability of reward given a correct/incorrect response. A conventional reversal procedure has p(reward | correct) = 1 and p(reward | incorrect) = 0. However, if you would like a fully probabilistic reversal task, untick this box. You may then specify p(reward | correct) and p(reward | incorrect) directly. For example, if you specify 0.8 and 0.2, then correct responses would be rewarded 80% of the time, while incorrect responses would be rewarded 20% of the time.
· If you reward some "incorrect" responses, and you have chosen the option "Leave correct stimulus on during reward", the program will leave the chosen stimulus on (i.e. one that is notionally "incorrect", but is being rewarded on this trial). This seems the only consistent thing to do. Essentially, a probabilistic task blurs the definition of "correct" and "incorrect", so the option is best described as "Leave chosen stimulus on if it's rewarded"!
· Pseudorandom false feedback, not random. By default, the false feedback system gives feedback on a random basis (i.e. it flips a biased coin with the bias you specifed above on each trial). You may want false feedback to be pseudorandom instead, e.g. to guarantee that if you specify 20% false feedback, two out of every 10 trials have false feedback (whereas in a random system with p = 0.2 for false feedback, you are not guaranteed two out of every 10). This pseudorandom option allows you to specify blocks of X correct trials and Y incorrect trials, such that in every consecutive X correct trials and Y incorrect trials, a certain proportion (specified above) give true or false feedback. As always, for more explanation of this topic, see randomness, pseudorandomness, and drawing without replacement.
· If you use the pseudorandom option, specify the block size for correct and for incorrect trials. This is the number of consecutive trials (correct or incorrect - they are calculated separately) over which the system calculates. Be careful how you specify this; errors are possible. If you specify p(reward | correct) = 0.8, then you're saying that you want 80% of your correct trials to be rewarded - so you might do well to pick a number that is a multiple of 5 here (e.g. 10 for 8/10 correct trials to be rewarded, or 20 for 16/20 correct trials to be rewarded). If you pick 0.8 and then specify a sequence of 9 trials, the program will not behave as you want (it'll calculate 0.8 * 9 = 7.2, then add 0.5 to implement correct rounding, giving 7.7, and truncate this to 7 for the number of "truthful" trials, then take 9 - 7 = 2 for the "untruthful" trials, so the probability of truth will not be exactly what you requested).
· You can also enforce that no two consecutive correct or incorrect trials (taken separately) give false feedback. For example, if your subject responds correctly but receives false feedback (punishment), then responds incorrectly on the next two trials, and then responds correctly again, this option would ensure that this last correct trial is not punished (because it's the second of two "consecutive" correct trials). Note that this option, with small block sizes, can lead to predictable trial sequences (because the constrains leave the program little or no choice).
· Spatial location of correct stimulus randomized in pairs...
· If this box is not ticked, the location of the correct stimulus is chosen at random for each trial (and, in the three-stimulus task, the location of the "incorrect but correct in the past" and the "never correct" stimuli are similarly chosen at random).
· If this box is ticked, then the locations are randomized in groups where the group size is n times the number of stimuli. You specify this value of n in the box labelled "... by drawing without replacement from a list of size n x the number of stimuli...".
· Suppose that you specify n = 1; then the locations will be randomized in pairs (for the two-stimulus task), meaning that in every pair of trials, the correct stimulus is on the left on one trial and on the right in the other, but the order of those two trials within the pair is random. For the three-stimulus task, there are six possible spatial combinations (ABC, ACB, BAC, BCA, CAB, CBA) and in every six trials one of these combinations will be used, with the order within the group of six being random.
· Put another way, then if n = 1, for the two-stimulus task, each block of two trials will contain one "left correct" (L) trial and one "right correct" (R) trial. (Therefore, in this case, it's impossible to get more than two trials in a row with the same side correct.)
· If you specify n = 2, then for the two-stimulus task, each block of four trials will contain two L trials and two R trials. (In this example, it's impossible to see more than four trials in a row with the same side correct.)
· For more explanation of this topic, see randomness, pseudorandomness, and drawing without replacement.

· Correction procedure. Choose the type of correction procedure (CP) you wish to use. Correction procedures are used to try to prevent the subject responding to one side (spatial location), rather than one stimulus. For example, if two stimuli are presented and one is correct and the other is wrong, but the correct stimulus is randomly presented on the left or right, the subject could win on 50% of trials simply by responding to the left. Now, a good analysis of the data (the best being an analysis based on the principles of signal detection theory) will immediately show that the subject is not discriminating the two stimuli. However, some experimenters wish to discourage the use of a spatial strategy further. A common way of doing so is a correction procedure. For example, if the animal keeps responding to one side, the correction procedure could present the correct stimulus on the other side until the subject breaks its positional habit and responds to the other side. The meaning of the types of correction procedure available in this task is explained in the dialogue box, and as follows.
· None. There is no correction procedure. Trials are simply presented according to the usual options we have discussed above.
· Antibias. When a certain number of consecutive responses have been made to one side (left or right), the correction procedure begins. The number of trials this takes is known as parameter A. Having begun, the correction procedure presents the correct stimulus on the other side, overriding the usual mechanism (discussed above) for deciding which side the correct stimulus is shown on. The correction procedure continues until the subject has made a certain number of correct responses - this number is called parameter B. The correct responses do not have to be in sequence (so if B is 5, then the subject might get a series of correction trials correct - wrong - wrong - correct - correct - wrong - correct - wrong - wrong - correct, and then the correction procedure would stop). Once this target number of successful "correction" trials has been achieved, the correction procedure stops, and the usual sequence of trials resumes afterwards. (If a maximum number of trials has been set for the session, both "standard" and "correction" trials count towards this limit.)
· When using the Antibias correction system, it is also possible to begin the session with the correction procedure. This allows the experimenter to "force" the correct stimulus to one side until the subject gets enough correct trials to terminate the correction procedure. You might use it if, for example, your subject began a correction procedure at the end of its previous session, and then ran out of time/trials, so you would like it to resume. Suppose you like your correction procedures to run until the subject has got 10 trials right (B = 10), but in the last session your subject got to 4 and then ran out of time. You'd like to finish off the correction procedure from last time (requiring the subject to get 6 more "correction" trials right at the start of the session before normal business resumes) but then have your usual B = 10 if the subject requires another correction procedure. No problem: specify parameter C = 6 (and B = 10 as usual) to achieve this.
· In a two-stimulus task, stimuli can either be on the left or the right, and our correction procedure is simple. What happens if we use a three-stimulus task, in which the stimuli can be on the left, on the right, or in the middle? Well, if the "antibias" correction procedure is employed with a three-stimulus task and the subject perseverates in the middle, then the correct stimulus is randomly assigned to the left or the right location for the correction procedure. If it perseverates on the left, then the correct stimulus is assigned to the right-hand side; if it perseverates on the right, the correct stimulus is assigned to the left-hand side. In all cases, once the correction procedure has determined where the correct stimulus is to be, it chooses the location of the "incorrect but once correct" stimulus and the "never correct" stimulus (stimulus C, as in A+B-C-/A-B+C-) at random.
· Harsh. In this system, whenever the subject gets a trial wrong, the correction procedure starts. This type of correction procedure simply repeats the trial that the subject got wrong, until it gets it right, or until a limiting number of trials (parameter A) is reached. When either of these conditions is met, the correction procedure stops. (If a maximum number of trials has been set for the session, only "standard" [non-correction] trials count towards this limit when using the Harsh system.)
· Whatever the type of correction procedure, note that if you allow within-session reversals to happen and your subject achieves the criteria for reversing, the reversal takes priority over the correction procedure: any ongoing correction procedure is cancelled, and all correction procedure counts are reset (i.e. the whole correction system starts again from scratch).

· SPECIAL OPTION: make this a side (LEFT/RIGHT) rather than a stimulus discrimination. This is a special option that stops the program running a stimulus discrimination/reversal task, and makes it a SIDE or LOCATION discrimination. That is, either "left" or "right" is correct (and the program can, if you wish, reverse between these), but the A and B stimuli are displayed at random, so their visual appearance is irrelevant. For example, for one trial the A stimulus might be on the left and the B stimulus on the right (with the left-hand stimulus being correct) and for the next trial B might be on the left and A on the right (with the left-hand stimulus again being correct).
· Begin with RIGHT+ (rather than L+)? If you tick this box, you will begin with LEFT-RIGHT+; if you leave the box blank, you will get LEFT+RIGHT-.
· If the special option is ticked, a few other options become irrelevant, and the meaning of the "spatial randomization" option changes (rather than "how should the L/R location of the correct stimulus be picked?", it now means "how should the A/B stimulus to be displayed at the correct location be picked?") and a warning message to this effect pops up:

Screenshots of the task

The moment of choice, with three stimuli.

In this case, the subject responded correctly and correct stimuli are being left up during reward:


Self-Ordered Search (a.k.a. Spatial Working Memory)

Self-Ordered Search Task (a.k.a. Spatial Working Memory)

 Top Previous Next

Summary

Multiple targets appear on the screen, and the subject must respond to them all, without responding to any twice.

About the task

A number of identical objects are presented in up to sixteen different locations. The subject must touch each one, but must not touch an object twice.

· A marker tone (Marker 1) indicates the trial onset.
· When the subject touches an object, a different ("marker") object can be presented for a defined duration. (In typical human testing, the primary objects are boxes and the marker object is envisaged as "what's in the box".)
· The subject is rewarded after a correct sequence of responses.
· It's punished for repeating a response.
· It's punished if a response isn't made within a criterion time of the last response

Difficulty is set by the number of stimuli (typically beginning with 2).

Optionally, the level increases after a criterion (of X correct responses out of the last 20 trials).

This task is based on Collins P, Roberts AC, Dias R, Everitt BJ & Robbins TW (1998). Perseveration and strategy in a novel spatial self-ordered sequencing task for non-human primates: effects of excitotoxic lesions and dopamine depletions of the prefrontal cortex. Journal of Cognitive Neuroscience 10: 332-354.

The commonly used term "spatial working memory" may not be wholly accurate; "self-ordered [spatial] search" is (as it makes no claims about the psychological basis of the task).

Configuring the task

General settings

· Require lever response to start each trial. Requires that the subject make a lever response to initiate each trial. See Use with Dogs.
· Maximum number of trials. When the subject has performed this number of trials, the task ends. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Maximum time to wait for a response. If the subject fails make a response within this time, the subject fails the trial, which is terminated. (If there are 3 stimuli, and this limit is 10 s, then the subject has 10 s in which to make the first response, and then 10 s in which to make the second, and so on.)
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after any reward or punishment from the previous trial has finished.

Stimuli

· Main object. This shows the object that will be used as the stimulus. Click Set to choose the stimulus.
· Previously chosen object. When your subject chooses a stimulus, a number of things can happen to it for subsequent choices - it can stay the same, vanish temporarily or permanently, or be replaced by another object. If you want it to be replaced by another object, the replacement object is called the Previously Chosen object (because it marks locations that your subject has chosen previously). Therefore, to use this option (see below), or to use prespecified sequences (schemes), which may also use this option, you must set a Previously Chosen object. Click Set to choose this stimulus. If you won't use either schemes or the "replace with the previously chosen object" option, you can ignore this setting.

Responses

· Mark responses aurally. If this is selected, the Marker 3 sound will be played to inform the subject that it has touched the picture successfully. (The schedule pauses while this sound is played.)
· Mark responses visually. If this is selected, you may replace the response object with another picture for a brief period of time, to indicate visually that the subject has made a successful response. The marker object is shown here; click Set to choose one from the visual object library and choose the Time to show marker object for (s). The schedule is paused while the marker object is being shown.
· Blank screen. If this is selected, then the whole screen goes blank for a predefined time after your subject has chosen. This option can be used to reduce reliance on visual fixation to support spatial memory. There are several options. For "not at all", the screen is not blanked. With "for a fixed time", set the time for which the screen should be blanked (in seconds). For "for a time from the list, in sequence" and "for a time from the list, shuffled", you specify a list of possible blanking times (using the Add/Remove/Up/Down buttons), which may include 0 (for no blanking). This list is then multiplied by the List DWOR multiplier value. (Suppose your list is ABCD: then if the DWOR multiplier is 1, the final list is ABCD; if the DWOR multiplier is 3, the final list is AAABBBCCCDDD, and so on.) Then, if you used the "shuffled" option, that list is then randomly shuffled. Finally, for the first trial, the first value in the list is selected; for the next trial, the next value; and so on. When the list is exhausted, it is repopulated again.

Note the order in which MonkeyCantab executes these options if you choose them all: at the moment of response, the marker object is shown and the marker sound is played. Once soon as the marker object has been displayed for its specified time, the screen is blanked.

· Reward every correct touch (not just on completion of trial). After Weed et al. (1999) Cog. Brain Res. 8:185, this option allows every correct touch to be rewarded, rather than delivering reward only on completion of the whole sequence. Normally, this is disabled (i.e. whole sequences must be completed to obtain reward).
· Bugfix modification 11 March 2008: this option allows the delivery of rapid sequences of rewards, if the subject responded rapidly, with a reward being delivered before the previous one finished. This was made most plain when visual flashing stimuli accompanied reward. To prevent this, some mechanism must prevent a second reward occurring until the first has finished. The most flexible way of making this change is simply to disable rewards until the previous reward has finished. I have implemented this by ignoring responses during ongoing reward. You may well wish the stimuli not to be visible while responding is disabled - in which case I suggest you tick the "blank screen" option, blanking the screen for as long as the reward takes (defined in General Parameters ).

Task

· Use prespecified sequence. If you tick this option, you can click Set to choose a predefined SWM trial sequence. (If there are none available, or you want to edit a scheme, click Define schemes instead; we will look at scheme definition in a moment.)

If you are not using prespecified sequences (schemes), the following options are available:

· Grid type. This may be a 16-way aligned grid, a 16-way scattered pattern, or an 8-way scattered pattern. See Size and coordinates for illustrations; these illustrations also show the numbering of the available positions in the grid.
· Starting number of stimuli. Obvious!
· Increase number of stimuli during task. If enabled, the number of stimuli will increase as the task goes on. You can either increase the number of stimuli after a fixed number of trials, or when the subject reaches a criterion of a certain number of "correct" trials within the last 20 trials. Fill in this number (either the number of trials, or the number to get right out of 20) in the box labelled X.
· When objects are chosen correctly...
· Remain unchanged. The object is not altered. (If you are using visual markers and/or screen blanking, then this option causes the stimulus to reappear as it was once the marker/blank screen have been displayed.)
· Disappear permanently. The object never returns.
· Are replaced by the "Previously Chosen" object. The object is replaced by a different object, known as the Previously Chosen object. (You saw above how to define the Previously Chosen object.) One way this feature might be used is to set the Previously Chosen object to a black (or otherwise invisible) rectangle. This differs from the Disappear Permanently option: if the object disappears, touches to its former location aren't punished. If the objects is replaced by an invisible but touchable object, touches to this location are punished.
· Vanish for the next choice only. The object vanishes for the next choice, but then reappears. This prevents perseveration on the previously-chosen object.
· Vanish for a specified time. Chosen stimuli vanish for a certain time (measured from the moment they are touched), and then reappear after a certain time. You'll need to specify this time, in seconds. If you are using visual markers, this time must be greater than the visual marker time (so that the object doesn't try to reappear while the marker is still being shown).

If you are using prespecified sequences (schemes), you will still need to specify the "vanish time" (exactly as above) for trials in your scheme during which you use the "vanish for a specified time" method.

· Probe trials. This allows a whole session to use the probe trial facility, without using a scheme. (If you are using a scheme, you can choose whether each trial is a probe trial or not; see below). In a probe trial, subjects are allowed to make a certain number of repetition errors without penalty. Specify the maximum number of errors. (For example, if the maximum number of errors is 3, then the trial will terminate on the 3rd error.)
· Number of "free hits": stimuli, to which responding is not required. Normally, if you have 8 stimuli, the subject has to respond to all 8. You could give it a "free hit" of 1 stimulus, in which case it'd have to respond to any 7 and would then win the trial. (A typical use: incrementing the total number of stimuli by one, and the number of free hits by one, to probe the underlying behavioural pattern.)
· Correction procedure. This allows failed trials to be repeated, up to a repetition limit.

Grids

· Here you can edit the Locations for each of the grid types used by the SWM task. Some have a fixed number of locations; there is also a User_1 grid which is fully configurable. WARNING: if you reduce the number of locations in a grid type, trial definitions within schemes (see below) will be TRUNCATED (i.e. data will be lost for locations that are removed in this way), and if you then increase the number of locations, they will not reappear.

Options for reward and punishment are set in the General Parameters section; visual objects are defined in the Visual Object Library.

Schemes (predefined trial sequences)

To create or edit schemes, click Define schemes. This brings up the following dialogue box listing currently-defined schemes:

You may add, remove, copy, and rename schemes. Click a scheme and click Define scheme to edit a particular scheme. Each scheme is a sequence of trials. If a scheme contains invalid trials (trials with no stimuli), when you click the scheme you will see a warning to that effect.

One scheme is a sequence of trials. When you've clicked Define scheme, you can see that sequence of trials. In the example below, there are only two trials:

· The first trial, trial number 0, uses an 8-way scattered pattern to display its stimuli. No stimuli are defined at the moment (so the trial's definition includes eight zeroes - "00000000" - and there's a warning being displayed to that effect). Any stimuli that were to be defined would remain on the screen after they'd been chosen.
· The second trial, trial number 1, uses a 16-way scattered pattern to display its stimuli. Five stimuli will be presented, in location numbers 2, 6, 8, 11, and 13, so as locations are numbered from 0-15, the stimulus code reads "0010001010010100". Stimuli that are chosen vanish for the next trial, and then reappear.

You may add, remove, copy, re-order, and define trials. When you click Define trial, another dialogue box appears to let you edit the trial. Here's the trial specification for trial 1:

At the main scheme configuration dialogue box, you can also click Predefined scheme and choose from a list of built-in schemes:

You will be asked to give the new scheme a name.

Screenshot from the task

Here's an example where ten stimuli are being shown in various locations from the 16-way scattered pattern:


Simple Schedules of Reinforcement

Summary

A touchscreen manipulandum delivers reinforcement with any of several possible schedules of reinforcement.

About the task

Schedules of reinforcement using a touchscreen manipulandum.

Configuring the task

What constitutes "a reinforcer" is defined in the General Parameters. This allows you to set the reward sound and define what sound is associated with the presentation of a reward.

· Maximum number of reinforcers. Once this number of rewards has been delivered, the task stops. (Specify 0 for no limit.) You must specify either a maximum number of rewards, or a maximum time, or both.
· Maximum time (min). Once this time limit has been reached, the task stops. This can be given as a range, i.e. a lower and an upper ceiling to the maximum time (the actual maximum time is picked with a flat probability distribution between these two numbers; if you just want to specify a fixed maximum time, specify the same number twice). (Specify 0 for no limit.) You must specify either a maximum number of rewards, or a maximum time, or both.
· Response object. The picture that the subject has to touch. Click Set to choose an object from the visual object library.
· Location. Set the Location used for the stimulus.
· Mark resposes aurally. If this is selected, the Marker 3 sound will be played to inform the subject that it has touched the picture successfully. (The schedule pauses while this sound is played.)
· Mark responses visually. If this is selected, you may replace the response object with another picture for a brief period of time, to indicate visually that the subject has made a successful response. The marker object is shown here; click Set to choose one from the visual object library and choose the Time to show marker object for (s). The schedule is paused while the marker object is being shown. The marker object may also be maintained for as long as the subject's finger remains on the screen (i.e. they have to let go to get the manipulandum back).
· Schedule. See reinforcement schedule types.
· Timeout beginning at reinforcement. See Notes on reinforcement schedules.
· PR schedules end based on time since last response (not reward). For progressive ratio schedules, you may choose whether the timeout that eventually terminates the schedule, if selected, is calculated from the last response or the last reinforcer.

See also Notes on reinforcement schedules.

Screenshot from the task


Reinforcement schedule types

Schedule. Choose the schedule, and specify any parameters associated with the schedule. Parameter descriptions will appear to help you. The schedules are:

· CRF - continuous reinforcement (FR-1). One reinforcer per response.
· EXT - extinction. No reinforcers.
· FR x - fixed ratio. One reinforcer per x responses.
· VR x to y - variable ratio (specifying min, max). After a variable number of responses (randomly chosen from min to max inclusive), one reinforcer is delivered.
· RR x - random ratio. P(reinforcer | response) = 1/x.
· PROB p - probabilistic. P(reinforcer | response) = p.
· FI x - fixed interval. The first response after x seconds is reinforced. The first response of the schedule is also reinforced.
· RI x - random interval. Reinforcement is set up on a random-time schedule (see below); after reinforcement has been set up, the next response is reinforced.
· VI x to y - variable interval (specifying min, max). After a variable time (from min to max seconds), the next response is reinforced.
· FT x - fixed time (NONCONTINGENT). No lever is present. Reinforcement is delivered every x seconds.
· VT x to y - variable time (specifying min, max) (NONCONTINGENT). No lever is present. The schedule waits for between min and max seconds, then delivers a reinforcer, then repeats.
· RT x - random time (NONCONTINGENT). Every second, p(reinforcer delivered this second) = 1/x. Thus, on average, reinforcement is delivered once every x seconds, but the subject cannot predict the likelihood of reinforcement based on how long it has waited (unlike a typical VT schedule).
· PR - progressive ratio - add one (1,2,3,4...) - progressive ratio schedule, adding one to the ratio requirement at each step. The schedule termination is determined by the parameter; if parameter is >0, then when parameter minutes have elapsed since the last reinforcer (or response - see below), the schedule stops. We suggest 60 as a sensible value.
· PR - progressive ratio - double (1,2,4,8...) - progressive ratio schedule, doubling the ratio requirement at each step. The schedule termination is determined by the parameter; if parameter is >0, then when parameter minutes have elapsed since the last reinforcer (or response - see below), the schedule stops. We suggest 60 as a sensible value.
· PR - progressive ratio - Fibonacci (1,1,2,3,5...) - progressive ratio schedule with a Fibonacci progression. The schedule termination is determined by the parameter; if parameter is >0, then when parameter minutes have elapsed since the last reinforcer (or response - see below), the schedule stops. We suggest 60 as a sensible value.
· PR - progressive ratio - Roberts exponential (A * exp(reinfnum * B) - A) - progressive ratio schedule with an exponential progression, based on Roberts DCS & Richardson NR (1992), Self-administration of psychomotor stimulants using progressive ratio schedules of reinforcement, Neuromethods 24: 233-269 (eds Boulton A, Baker G, Wu PH; Humana Press). The ratio requirement is (A * exp(reinforcer number * B)) - A, rounded to the nearest integer. Typically, A is 5. A typical schedule might have B=0.2; these values yield ratio requirements {1, 2, 4, 6, 9, 12, 15, 20, 25, 32, 40, 50, 62, 77, 95, 118, 145, 178, 219, 268, 328, 402, 492, 603, 737, 901, 1102, 1347, ...}. A steeper PR schedule is obtained with B=0.25, giving {1, 3, 6, 9, 12, 17, 24, 32, 42, 56, 73, 95, 124, 161, 208, 268, 346, 445, 573, 737, 948, 1218, 1566, 2012, 2585, 3321, 4265, 5478, ...} The schedule termination is determined by the other parameter (on the left, labelled (min)); if this parameter is >0, then when this many minutes have elapsed since the last reinforcer (or response - see below), the schedule stops. We suggest 60 as a sensible value.
· DELAYED_FR1 - FR1 with delayed reinforcement. This is an FR1 schedule, but there is a delay between responding and reinforcement. This delay is the sole parameter (specified in seconds).
· PR - progressive ratio - double increment every A reinforcers. The increment starts at 1, and doubles every A reinforcers. If A is 8, then the ratio requirements are 1, 2, 3, 4, 5, 6, 7, 8, 10, 12, 14, 16, 18, 20, 22, 24, 28, 32, 36... The schedule termination is determined by the parameter; if parameter is >0, then when parameter minutes have elapsed since the last reinforcer (or response - see below), the schedule stops. We suggest 60 as a sensible value.
· HAMMOND_CONTINGENCY - Hammond (1980) instrumental contingency. After Hammond (1980, J Exp Analysis Behav 34: 297). Time is windowed into 1-second bins. A decision about reinforcement is made at the end of each time bin (not when responding occurs). At the end of each time bin, if there has been at least one response during that time bin, reinforcement is delivered with probability P(reinf | response). If, instead, no responses were made in that time bin, reinforcement is delivered with probability P(reinf | ~response). You specify the two probabilities. The contingency is P(reinf | response) - P(reinf | ~response). Currently restricted to certain laboratories.
· JACKSON_CONTINGENCY - Jackson et al. (2014 unpub). instrumental contingency. A modification of the Hammond instrumental contingency schedule. To a first approximation, Jackson is to Hammond what VR is to RR, or VT is to RT. Time is divided into bins (typically but not necessarily lasting 1 s each). Imagine each time bin generating a tick or "ping" when the bin finishes. The subject's behaviour during that time bin determines which of two schedules the "ping" is sent to. If the subject responded during the bin, the ping is sent to the contingent schedule (at the end of the time bin); if it didn't respond, the ping is sent to the noncontingent schedule. So far, that could describe the Hammond schedule. But then, rather than choose on a wholly probabilistic basis, the contingent part of the Jackson schedule assigns a target number of pings, with a flat probability distribution between a specified minimum and maximum (inclusive); when the schedule's target number of pings is reached, it delivers reinforcement. (This part of the schedule is therefore approximately a VR schedule, except that reinforcement is delivered at the end of the time bin, rather than immediately upon responding, and that if the subject makes >1 response during the bin, additional responses are ignored.) The noncontingent part of the schedule similarly assigns a target number of pings (with a minimum and maximum, and a flat probability distribution between them) and delivers reinforcement when its target is satisfied; this therefore approximates a VT schedule (except that the noncontingent schedule does not receive pings when the subject is responding). Whenever either schedule reaches its target, it picks a new target. If the contingent requirements are low and the noncontingent requirements are high, there will be a high instrumental contingency; if they are identical, there will be no contingency; and so on. Currently restricted to certain laboratories. Additional option (4 Sep 2014): enter 0 for the minimum and maximum settings to disable part of the schedule (either the contingent or noncontingent part).

Special cases

· The first response on contingent interval schedules (FI, RI, VI) is always reinforced (SimpleSchedules) or this option is configurable (ConcurrentSchedules).

See also notes on reinforcement schedule types.


Notes on reinforcement schedules

For Simple Schedules and/or Concurrent Schedules:

When is the manipulandum visible?

· The manipulandum is not visible for a schedule that doesn't need one (i.e. no manipulandum is shown for a completely noncontingent schedule, other than an extinction schedule).
· The manipulandum is not visible when the response marker replaces it for a brief time.
· The manipulandum is not visible when any reinforcement device is busy (unless the schedule is a delayed-reinforcement schedule).
· The manipulandum is not visible during a timeout (see below).
· The manipulandum is not visible if the schedule has been stopped (i.e. after it's met a stopping criterion).

But:

· The manipulandum is visible during a changeover delay from another schedule (e.g. if you have a left and a right schedule, and you respond on the left one, the right schedule will ignore responses during the changeover delay but the right manipulandum will remain visible).

Ticks

Ticks occur once per second and come from a clock whose timing is not altered. They are sent to the schedule(s), and may (for example) deliver or prime reinforcement. Ticks are blocked during timeouts. Ticks are not blocked by reinforcement (unless a timeout is occuring simultaneously).

When two concurrent schedules are running, MonkeyCantab flips a coin internally, each time, to determine which one gets its tick first. (Why? Because otherwise there would be a bias towards one schedule, which might consistently reinforce and therefore, under appropriate timeout conditions, block the other from doing so.)

Timeouts

You can enable a timeout, which will begin at the moment of reinforcement.

Timeouts prevent responding and prevent ticks going to the schedule (so the schedule is effectively paused).

Note that reinforcement device being "busy" also prevents responding - but it doesn't prevent ticks. So if you want a schedule properly paused for the duration of reinforcement, set up a timeout that's the same duration as the reinforcer (or longer). Reinforcers report their total duration in their summary description, to make this easier.

Note that the pause is not phase-locked, in the sense that timeouts block ticks but don't alter the clock phase. For example:

t = 0: tick

t = 1: tick

t = 1.5: response, reinforced, 5-second timeout begins

t = 2: tick blocked

t = 3: tick blocked

t = 4: tick blocked

t = 5: tick blocked

t = 6: tick blocked

t = 6.5: timeout ends

t = 7: tick

What happens when you request a timeout on a delayed-reinforcement schedule? Should the timeout occur at the time of the response, or at the time of the reinforcement? Well, a timeout is to stop you responding, so it should occur at the time you respond; that's what will happen.

Timeouts, versus the lack of a response object, and application to combined contingent/noncontingent schedules

In a few schedules, which combine response-contingent and response-noncontingent reinforcement, it is important to know exactly when contingent and noncontingent schedules are active. Noncontingent schedules are only blocked by timeouts; contingent schedules are also ineffective if there's nothing to respond on! In particular, response manipulanda are not displayed when the reinforcing device is busy (except for delayed reinforcement schedules).

Therefore, in these circumstances, you will probably wish to ensure that your timeout extends beyond the reinforcement-device-busy-time, or your noncontingent schedule may resume operation before your contingent schedule does.

Temporal reinforcement conflict with a single reinforcer (reinforcers that try to overlap)

It is possible to cause reinforcement conflicts in this task. Most particularly, if you use a delayed-reinforcement schedule, it is possible that reinforcement is scheduled while the reinforcing device is busy. SimpleSchedules ignores requests for reinforcement for devices that are busy. It records in the event log (text-based and ODBC) whether a scheduled reinforcement was actually given.

Reinforcement conflicts are unlikely with brief reinforcers (e.g. a pellet dispenser that triggers using a 45-ms pulse and can operate quite fast). They are very likely if you use a delayed-reinforcement FR-1 schedule and a slow reinforcer (e.g. a 10-second pump).

What happens when your schedule wants to reinforce, and to give you a timeout, but your reinforcement device is busy? The tasks will not reinforce (because the device is busy reinforcing you anyway) but it will implement your timeout.

Conflict between two reinforcers

This applies to the ConcurrentSchedules task only.

As the task stands, it will abort an ongoing reinforcer when a new one starts. For example, if your left schedule delivers a reinforcer, and then soon afterwards the right schedule delivers a reinforcer; the left one will be aborted (if it's still ongoing) and the right one started.

Why? Not least, because of the complexity of interpretation when a single licker drives lick-contingent reinforcement with two pump reinforcers simultaneously.

If this would be a problem, you probably want to enable "Timeouts on one schedule apply to both schedules, if two are running". That will prevent the problem.

Changeover delays

Changeover delays are "invisible"; the schedule whose responses have been temporarily disabled will still show its manipulandum.


Spatial Discrimination

Summary

Multiple stimuli appear on the screen; the subject must respond to those in certain locations but not others.

About the task

· Each trial begins with a Marker 1 sound (optionally, following an initiation response).
· Stimuli appear in various locations on the screen. Some locations are correct; some are incorrect.
· The first response to a stimulus is registered, and the subject receives reward/punishment accordingly (or, if it fails to respond, an omission occurs and is punished).

Configuring the task

TASK OVERVIEW

· Trial initiation may be spontaneous, requiring a lever response (see also Use with Dogs), or requiring a response to a visual stimulus (whose appearance and location may be specified).
· Maximum number of trials. When the subject has performed this number of trials, the task ends. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after any reward or punishment from the previous trial has finished.
· Maximum time to wait for a response. Once stimuli have been presented, this is the time that the program will wait for a response before abandoning the trial as an omission.

STIMULI

· Stimuli. Specify your list of stimuli to use. You don't have to specify more than one stimulus (unless, potentially, you apply the no-stimulus-in-the-same-location-on-consecutive-trials constraint, see below), but you can.
· Pick stimuli... This can be (a) completely at random, in which every stimulus is drawn (with replacement) from the relevant list of stimuli. (b) Draw-without-replacement (DWOR) on a per-trial basis. Every trial begins with the creation of a 'pool' of correct stimuli, and a 'pool' of incorrect stimuli, each created by taking the correct/incorrect list and making as many copies of it as the DWOR multiplier, which you specify. Individual stimuli are then drawn without replacement from this pool (correct stimuli from the correct pool, and incorrect stimuli from the incorrect pool). (c) DWOR overall (across trials). In this method, exactly the same method as (b) is used, but the DWOR pools are not reset between trials - only when the pools are too small to create an entire trial from. See also randomness, pseudorandomness, and drawing without replacement.

LOCATIONS

· Set locations. Here you can edit the exact Locations used by the task, in terms of (X,Y) coordinates. The location numbers from this location set are then referred to below.
· Correct locations. Specify your list of correct locations, and the minimum/maximum number of correct locations per trial. (The actual number is drawn randomly from a rectangular probability distribution between these limits.)
· Incorrect locations. Likewise.
· Pick locations... Only DWOR methods are used for the locations (since you can't have the same location being used twice in the same trial!). Correct and incorrect locations are drawn from their respective DWOR pools in the same way as described above, except that the DWOR multiplier can only be 1 (because you can't have the same location being used twice in the same trial...).

OTHER

· Constrain such that a stimulus can't appear in the same location on consecutive trials. Does what it says on the tin. Specifying this option makes the task require enough unique stimuli that it can be sure to satisfy this constraint.
· Leave correct stimulus on during reward? (etc.) When the subject responds, the chosen correct stimulus can be left on the screen during reward, and/or the chosen incorrect stimulus can be left on during punishment. These stimuli can either be left on for the duration of the reward/punishment (as specified in the General Parameters), or you can specify how long to leave them on the screen for.


Stimulus-stimulus paired associates learning

Summary

Tests stimulus-stimulus pair association. (For stimulus-location pair association, see PAL.)

About the task

The basic principle of a paired-associates learning task is to associate multiple pairs of stimuli, and test recall.

This task trains and tests stimulus-stimulus associations in pairs.

· Trials are initiated.
· A single stimulus is presented as a cue. (Optionally, the subject must respond by touching it.)
· Optionally, a delay is offered (perhaps with a visual signal that the delay is in progress).
· Two or more stimuli are offered as a choice; one will be correct. The correct stimulus is the pair of the cue. The cue does not appear in the choice phase. One or more incorrect stimuli (neither the cue nor its pair) are also shown. The subject is rewarded if it chooses the correct stimulus, and punished if it chooses wrongly or fails to respond.

Configuring the task

· Trial initiation. Specify the initiation method (spontaneous, requiring a lever response, requiring a response to a stimulus on a touchscreen, requiring a magazine response). For stimulus initiation, you can set its appearance and location. For magazine initiation, you can have the magazine light illuminated to indicate the need for a response. For initiation methods other than "spontaneous", specify also the initiation limited hold time (after which failure to respond causes the trial to be abandoned; use 0 for no limit). See also Use with Dogs.
· Maximum number of trials. When the subject has performed this number of trials, the task ends. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after any reward or punishment from the previous trial has finished.

· Cue location; choice locations. Click to choose the Locations used for the stimuli in the Cue and Choice phases. (I suggest using locations for the choice that are different from the cue location.)
· Stimulus list. Stimuli are shown as (S, S') pairs. Click Add to add a stimulus pair; then choose the first and second member of the pair in turn (at a standard stimulus-picking dialogue). Click Remove, Up, Down, or Shuffle to re-order or remove them.
· Block options. Optionally, the list of paired stimuli can be divided into blocks. If you choose to divide the list into blocks, you specify the number of stimulus pairs per block. (An example: if you have 8 pairs, and you specify 3 pairs/block, then the first block contains the first 3 pairs in the list, the second block contains the next 3 pairs, and the last block is a small block with only 2 pairs in it.) You can, if you wish, repeat each block (specifying the repeat count). Finally, you can shuffle the blocks, instead of presenting them sequentially. (If you repeat and shuffle, the repeated blocks are all shuffled up - that is, if you have three blocks 0, 1, and 2, and you repeat them all three times, then you would get the block sequence 000111222, but if you shuffle them as well, then you can get a block sequence like 200121021).
· Cues drawn from... The cue stimuli can either be drawn from the set of S stimuli, the set of S' stimuli, or from both sets.
· Cue DWOR multiplier. Valid cues are inserted into a list. The list is then duplicated this (the "DWOR multiplier") number of times. The list is then shuffled. On every trial, a cue is drawn without replacement from this list. If blocks are in use, this description applies just to the set of stimuli in the current block (stimuli are re-chosen and re-randomized when a new block begins). When the list is exhausted, the block ends (or the whole task, if blocks aren't being used).
· TOTAL NUMBER OF TRIALS: This calculates the expected total number of trials (ignoring the overall trial-limit, time-limit, or reinforcer-limit caps that may also be specified). This is: the number of cues (which is either the number of pairs, or twice the numbers of pairs, depending on the "Cues drawn from..." option), times the cue DWOR multiplier, times the number of block repeats (if blocks are being used).
· Cue presentation method. Specify "fixed time" or "await response". For "fixed time", specify the fixed cue presentation time. For "await response", specify the cue response limited hold period (after which, if the subject has not responded by touching the cue, the trial is abandoned), and choose whether or not the task should reward responding to the cue. If you choose to reward such responding, the delay will begin at the completion of the reward time (as specified in the General Parameters).
· Delay time. Specify the delay time.
· Delay stimulus. Optionally, choose a stimulus to be shown during the delay (and choose its location).
· Minimum/maximum number of incorrect stimuli per trial. Choose the boundaries for the number of incorrect stimuli per trial. The actual number of incorrect stimuli on each trial is drawn at random (with a flat probability distribution) from within this range.
· Maximum time to wait for a choice response. Once stimuli have been presented, this is the time that the program will wait for a response before abandoning the trial as an omission.
· Leave correct stimulus on during reward? (etc.) When the subject responds, the chosen correct stimulus can be left on the screen during reward, and/or the chosen incorrect stimulus can be left on during punishment. These stimuli can either be left on for the duration of the reward/punishment (as specified in the General Parameters), or you can specify how long to leave them on the screen for.
· Touching the background (during a trial) aborts the trial as a failure. This is a training option. Touches to the background will terminate the trial as a failure.
· Repeat failed trials... up to X times. If this option is selected, then trials that are failed are repeated, up to X times (where you specify X). Trials may be failed for a number of reasons (such as failure to initiate, failure to respond to a cue [if that option is selected], failure to choose, or touching the background [if that option is selected]).
· Touching the background (during the ITI) restarts the ITI. Self-explanatory.

Example screenshots

Initiation stimulus (optional).

Cue stimulus.

Delay stimulus (optional).

Choice stimuli. In the example, the top-left stimulus is paired with the cue, and therefore correct.


Variable Delayed Response / Delayed Matching To Position

Summary

Cue presentation is followed by a delay and then multiple identical response stimuli. The subject must match (or, optionally, non-match) the location of the cue. Success is rewarded; failure and omissions are punished.

Configuring the task

Main configuration:

The task proceeds through the configured stages in order. Stage configuration:

Some less obvious settings:

· Cue draw-without-replacement (DWOR) multiplier. Cue locations are drawn from the available locations (where, in the results, 0 is the first possible location, 1 the second, and so on). If the DWOR multiplier is n, then n copies of each location are placed in a vector that's shuffled, and cue locations for successive trials are drawn from it sequentially. When it's empty, the vector is refilled. Choose 1 to have every location appear once in every n trials; larger multipliers approximate true randomness. See Draw without replacement.
· Stimulus options, for cue and response stimuli, are configured in the normal way; see Choosing stimuli.
· Location options are configured in the normal way; see Locations.
· Cue disappears when touched (and delay starts immediately): note that this is incompatible with Punish cue touches during cue.
· Correction procedure. If enabled, you specify a start condition: the correction procedure starts when the subject makes n responses to a single location out of the last x trials (where n <= x) (and ignoring any previous trials that were themselves part of a correction procedure). We refer to this location as its "preferred" location; the point of the correction procedure is to reduce this preference. You also specify a stop criterion: the number of consecutive correct responses required, within the current correction procedure. During the correction procedure, if you are using the "matching" task, the cue is placed anywhere but the subject's preferred location (to encourage the subject to respond elsewhere). [Internally: cue locations are drawn as usual, but discarded if they match the subject's preferred location, until a non-preferred location is drawn.] If you are using the "non-matching" task, the cue is always placed at the subject's preferred location, because a correct response therefore involves responding at a non-preferred location.

The standard Marker 1 sound is played when the cue starts. The Marker 2 sound is played when response options are offered. These and the reward and punishment settings are configured in the General Parameters.


Probabilistic Concurrent Discrimination

Summary

Stimuli appear in pairs. Each A, B pair has associated probabilities P(reward | A chosen) and P(reward | B chosen). Multiple pairs can be presented within a single session.

About the task

This task is currently RESTRICTED to specified laboratories.

Most distributions of MonkeyCantab do not provide it, will refuse requests to add this task, and will not load the parts of configurations that incorporate this task.

· Each trial begins with a Marker 1 sound (optionally, following an initiation response).
· Stimuli appear in pairs on the screen. Each stimulus is associated with a probability of reward if touched (and a probability of punishment of one minus the reward probability).
· The first response to a stimulus is registered, and the subject receives reward/punishment accordingly (or, if it fails to respond, an omission occurs and is punished).

Configuring the task

· Trial initiation. Specify the initiation method (spontaneous, requiring a lever response, requiring a response to a stimulus on a touchscreen, requiring a magazine response). For stimulus initiation, you can set its appearance and location. For magazine initiation, you can have the magazine light illuminated to indicate the need for a response. For initiation methods other than "spontaneous", specify also the initiation limited hold time (after which failure to respond causes the trial to be abandoned; use 0 for no limit). See also Use with Dogs.
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit.)
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after any reward or punishment from the previous trial has finished.

· Locations. Click to choose the Locations used for the stimuli. The two locations are considered, in order: LEFT (for the left stimulus) and RIGHT (for the right stimulus).
· Stimulus pairs (A, B). Use these options to add stimulus pairs. The order in the list is cosmetic only. Pairs are edited using a dialogue box (as below). In addition to the stimuli and reward probabilities, each pair is associated with a number of trials (presentations) per half. Within each pair, presentations are counterbalanced left/right. (Specifically: if the number per half is even, e.g. 10, then A will get 5 left presentations and 5 right presentations per half. If it's odd, e.g. 11, then the task will allocate 5 left and 5 right for A per half, and then randomly choose whether the 11th is {left in first half, right in second half} or {right in first half, left in second half}.)

· Maximum time to wait for a response. Once the stimuli have been presented, this is the time that the program will wait for a response before abandoning the trial as an omission.
· Leave successful stimulus on during reward? (etc.) When the subject responds and is successful, the stimulus can be left on the screen during reward. When the subject responds and is unsuccessf, the stimulus can be left on the screen during punishment. These things can either be left on for the duration of the reward/punishment (as specified in the General Parameters), or you can specify how long to leave them on the screen for.


Visual Discriminations and Set-Shifting

Summary

Presents pairs of visual stimuli, each typically composed of two visual dimensions (e.g. dimensions "blue shapes" and "white lines" may be combined to give a stimulus made up of a particular blue shape with a particular white line over it). In each trial, one stimulus is correct and one stimulus is incorrect - and one dimension is relevant and another is not. Allows the reversal of individual stimuli, or of dimensions, thus allowing assessment of attentional set (to dimensions).

About the tasks

This task allows you to give visual discrimination tasks of the following kinds:

· simple discrimination (and reversal)
· compound discrimination (and reversal)
· intradimensional set shift (and reversal)
· extradimensional set shift (and reversal)

To learn what these mean, see About set-shifting.

Because there are at least two ways of manufacturing compound stimuli for use in this task, there are two "styles" in which you can run this task. They are:

· Predefined stimuli style - in which you, the experimenter, create the compound stimuli yourself;
· Superimposed stimuli style - in which you specify simple stimuli and the program superimposes them to create compound stimuli.

Choose one of these, and configure its parameters.

Tip: The "standard" shapes/lines discrimination typically used in monkey testing uses the Superimposed stimuli style.


About set-shifting

About the task

Presents two objects. One is correct and one is incorrect. If the subject touches the correct one, it is rewarded; if it touches the wrong one, it is punished. The discrimination varies in difficulty. The subject learns over several trials which stimuli are correct and which are incorrect; then we confuse it by changing the rules.

Stimuli can be simple (when they vary along only one dimension, such as shape, colour, intensity, or location), or compound (when they vary along more than one dimension).

Dimensional shifting in humans

In human testing, typical dimensions might be colour, shape, and number. A famous example of this kind of test is the Wisconsin Card Sorting Test (Grant & Berg, 1948, J Exp Psychol 38: 404), in which subjects must sort cards with a variable number of coloured shapes. They must discover the sorting rule solely by reinforcement from the experimenter. The rule is then changed: for example, they may be required to switch from "red correct, blue wrong" to "blue correct, red wrong" - a reversal. Alternatively, they may be given a new set of colours to learn - an intradimensional shift. Again, they may also be required to switch from "blue correct, red wrong" to "circles correct, squares wrong" - an extradimensional shift.

Dimensional shifting in non-human primates

In primate testing, two typical dimensions are "blue shapes" and "white squiggly lines". [See Dias R, Robbins TW, Roberts AC (1997). Dissociable forms of inhibitory control within prefrontal cortex with an analog of the Wisconsin Card Sort Test: restriction to novel situations and independence from "on-line" processing. Journal of Neuroscience 17: 9285-9297.] They use a large number of exemplars in each dimension (shapes and lines).

Basic test sequence in the general case

Assume there are two dimensions, A and B. There is a large catalogue of objects. Each object is assigned a value for each dimension (or is stated not to possess that dimension). For example, if the dimensions are colour and shape, then each object would be assigned a value for colour (e.g. "red") and shape (e.g. "triangle"). If there were a third dimension, of "superimposed wiggly line", a red triangle stimulus might have a value of "nonexistent" for this third dimension.

OK. For the sake of the following general prototype, keep in mind the primate tests in which the dimensions are typically "background shape" (values e.g. square, circle, triangle...) and "superimposed wiggly line" (similarly, with a variety of values).

· 1. Simple discrimination. Displayed objects possess dimension A but not dimension B. Within dimension A, value 1 is designated correct and value 2 is designated incorrect. In other words, we reward subjects if A()=1 and punish them if A()=2. (We can run this discrimination for as long as we can find target objects such that A(object)=1 and distractor objects such that A(object)=2, as long as in both cases B(object)=undefined.)
· 2. Simple reversal. We carry on except that we now designate A()=1 as incorrect and A()=2 as correct. The subject has to reverse its responses to a previously-learned discrimination.
· 3. Compound discrimination. We now introduce a second dimension, B, but ignore its value. Now objects are selected for presentation on the basis that ((A(object)=1 or A(object)=2) and B(object) != undefined). The symbol "!=" means "does not equal". The subject is rewarded if it selects an object such that A(object)=2 and are punished if they select an object such that A(object)=1. This continues the "A" discrimination from the previous, reversal stage.
· 4. Reversal of compound discrimination. We reverse the discrimination along dimension A and continue to ignore B. The trials are just the same as the previous stage, but A()=1 is correct and A()=2 is incorrect once more.
· 5. Intradimensional shift. We introduce new values of dimension A; dimension B is still ignored. Objects are selected such that ((A(object)=3 or A(object)=4) and B(object) != undefined). Subjects are rewarded if A(object)=3 and punished if A(object)=4.
· 6. Extradimensional shift. We switch our attention to dimension B and ignore A. Objects are selected such that ((B(object)=1 or B(object)=2) and A(object) != undefined). Subjects are rewarded if B(response)=1 and punished if B(response)=2.

What's ignored? By whom? A caveat. When a dimension B (or anything else) is present and being ignored, we would be wise to ensure that p(response is correct) is not dependent on the value of this dimension. Otherwise, our subject may well learn to discriminate on the dimension we (and it) are supposed to be ignoring. (Other dimensions like location or presentation order are important to consider here.) A dimension can be made irrelevant by holding the value of the dimension constant (e.g. always presenting stimuli in a single location, always making the background shape purple, etc.), or by randomizing it (e.g. always randomizing the locations of pairs of objects presented). If a dimension is randomized rather than held constant, the subject may attempt to learn the discrimination based on this dimension but cannot succeed.

Therefore, we need a library of objects with at least one object in each of the following categories:

A=1; B=undefined

A=2; B=undefined

A=1; B=anything except "undefined", constant or randomized

A=2; B=anything except "undefined", constant or randomized

A=3; B=anything except "undefined", constant or randomized

A=4; B=anything except "undefined", constant or randomized

A=anything except "undefined", constant or randomized; B=1

A=anything except "undefined", constant or randomized; B=2

Having lots of objects in each of these categories may be a good thing behaviourally, as it may lead the subject to extract the general features of that dimension/value (for example, if A(1) is equivalent to colour(red), then having lots of red objects may lead the subject to learn that "red" is correct, and not "red triangle"). This is the approach taken by the primate tasks, but not by tasks used for rats (or, now, pigs).

Dimensional shifting in rats

Birrell & Brown (2000) implemented a set-shifting task in rats (Birrell JM & Brown VJ, 2000. Medial frontal cortex mediates perceptual attentional set shifting in the rat. Journal of Neuroscience 20: 4320-4). Rats dug in two bowls for food. The bowls has dimensions of (A) odour; (B) filling medium; (C) surface texture. They adopted a policy of changing all stimuli at times of ID or ED shifting (a "total change design", p4321, which is required for accurate interpretation of the difference between reversal learning and ED shifts; see p4323). Their test sequence was as follows (+ indicates correct stimuli, - incorrect, bold indicates the correct part of the stimulus):

Simple discrimination | A1(+), A2(-)
Compound discrimination | A1/B1(+), A2/B2(-) A1/B2(+), A2/B1(-)
Reversal | A2/B1(+), A1/B2(-) A2/B2(+), A1/B1(-)
ID shift | A3/B3(+), A4/B4(-) A3/B4(+), A4/B3(-)
Reversal | A4/B3(+), A3/B4(-) A4/B4(+), A3/B3(-)
ED shift | B5/A5(+), B6/A6(-) B5/A6(+), B6/A5(-)
Reversal | B6/A5(+), B5/A6(-) B6/A6(+), B5/A5(-)

This illustrates the general test sequence nicely.

The sequence used by MonkeyCantab

Much the same:

Simple discrimination | A1(+), A2(-)
Reversal | A2(+), A1(-)
Compound discrimination | A1/B1(+), A2/B2(-) A1/B2(+), A2/B1(-)
Reversal | A2/B1(+), A1/B2(-) A2/B2(+), A1/B1(-)
ID shift | A3/B3(+), A4/B4(-) A3/B4(+), A4/B3(-)
Reversal (optional) | A4/B3(+), A3/B4(-) A4/B4(+), A3/B3(-)
ED shift | B5/A5(+), B6/A6(-) B5/A6(+), B6/A5(-)
Reversal (optional) | B6/A5(+), B5/A6(-) B6/A6(+), B5/A5(-)

How long shall we test for? The usual measure on this task is trials (or errors) to criterion. Birrell & Bowman (2000) used a criterion of 6 consecutive correct correct responses. That seems reasonable (though make the number configurable).

Left/right position should be chosen randomly for each trial. Order of presentation of the two alternative pairs (e.g. which to present of A1/B1-A2/B2 or A1/B2-A2/B1) should be randomized in pairs of trials.


Predefined Stimuli Style

In this version of the task, it is your job as the experimenter to create appropriate compound stimuli, using combinations of dimensions that you are interested in.

Why use this version of the task?

You can use this version to present compound stimuli containing arbitrary dimensions - colour/number, colour/shape, shape/number, shape/line, vehicle/person... For example, you could use bitmaps taken from films to run a {this photograph contains a tank or a car}/{this photograph contains Harrison Ford or David Niven} vehicle/person compound discrimination! The dimensions can be arbitrary because you create compound stimuli yourself.

Why not use this version of the task?

If you want to be able to generate a large number of potential compound stimuli from a library of simple stimuli, you could use this version... but it would be a lot of work to create all the compound stimuli. If the compound stimuli can be generated by superimposing the simple stimuli, you can save yourself some work by using the Superimposed Stimuli Style.

Configuring the task

Given that the user generates the stimuli, configuring the task is just a matter of plugging in the stimuli to the pattern shown above. That is, we need one object to correspond to each of A1, A2, A1/B1, A1/B2, A2/B1, A2/B2, A3/B3, A3/B4, A4/B3, A4/B4, A5/B5, A5/B6, A6/B5, A6/B6. Here's the configuration dialogue box, with the example of a colour/shape paradigm:

· Trial initiation. Specify the initiation method (spontaneous, requiring a lever response, or requiring a magazine response - in which case you can have the magazine light illuminated to indicate the need for a response) and the initiation limited hold time (after which failure to respond causes the trial to be abandoned; use 0 for no limit). See also Use with Dogs.
· Stimulus locations. Choose the Locations used by this task.
· Maximum number of trials. When the subject has performed this number of trials, the task ends. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Apply trial limit to each subtask, not to whole session. If ticked, the maximum number of trials (if >0) applies not to the overall task, but to each subtask or stage (one stage being each of e.g. simple discrimination; simple discrimination reversal; compound discrimination; etc.). This option allows, for example, subjects to progress between stages with a certain number of trials per stage, and if they fail to progress within the criterion for each subtask, the whole task ends.
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Maximum time to wait for a response. If the subject fails to make a response within this time, the subject fails the trial.
· Play Marker 1 sound at start of trial? Should the task play a Marker1 sound at the point the trial should be initiated (which, for spontaneous initiation, is the same as the moment the trial starts)?
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after the reward or punishment from the previous trial has finished.
· Leave correct stimulus on during reward? (etc.) When the subject responds, the correct stimulus can be left on the screen during reward, and/or the incorrect stimulus can be left on during punishment. These stimuli can either be left on for the duration of the reward/punishment (as specified in the General Parameters), or you can specify how long to leave them on the screen for.
· When subject performs X of the last Y trials correctly... do nothing/increase stage/end task. Fairly obvious, I hope. Set the value of X and Y in the boxes.
· Give a reversal stage after the simple discrimination. Enables/disables the "SD reversal" phase.
· Give a reversal stage after the compound discrimination. Enables/disables the "CD reversal" phase.
· Give a reversal stage after the ID shift. Enables/disables the "ID reversal" phase.
· Give a reversal stage after the ED shift. Enables/disables the "ED reversal" phase.
· Starting stage. Choose the stage to start at for this session.
· Correction procedure. Choose the type of correction procedure you wish to use. The meaning of the types of correction procedure is explained carefully in the dialogue box. Note that if your subject shifts up a stage, any ongoing correction procedure is cancelled, and all correction procedure counts are reset. For the "harsh" correction procedure, perfoming a trial incorrectly includes failing to initiate it.
· Stimuli. Choose the stimuli required by the task (A1, A2, A1B1, etc.). An example is shown above, using shape and colour as dimensions A and B respectively.
· Randomization. Choose the randomization technique used for the task. For compound stimuli, in any given trial you can present either A1B1 / A2B2 compounds, or A1B2 / A2B1 compounds. Furthermore, the correct stimulus can be on the right or on the left. The stimulus composition and the "left/right correct" assignment can be fully random (with a very small chance that you get ten on the left consecutively correct, because that's what random means). Or, the "left/right correct" assignment can be randomized in pairs (meaning that in pair of trials you get one "left correct" trial and one "right correct" trial, e.g. L,R - R,L - R,L - L,R - R,L - R,L - R,L - ...), with the stimulus composition totally random. Or the stimulus composition can be randomized in pairs (e.g. A1B1[/A2B2], A1B2[/A2B1] - A1B2[/A2B1], A1B1[/A2B2] - A1B2[/A2B1], A1B1[/A2B2] - ...) with the L/R assignment fully random. Or the four possible combinations (L versus R correct and A1B1/A2B2 versus A1B2/A2B1) can be randomized in groups of four trials (quads).
· Stop after... If you choose to increase the stage periodically (see above), you can also specify a stage after which to stop early, if you don't want the task to run through its full sequence. For example, you might want to begin on CD and proceed to the ID shift (a simple way to implement two consecutive concurrent discriminations, should you choose to use this task in that manner!).

Screenshots of the task


Superimposed Stimuli Style

In this version of the task, you supply simple stimuli to the program, and it superimposes two of them to create appropriate compound stimuli.

Why use this version of the task?

It means you can use a large library of simple shapes, and the program can put them together to create new compound stimuli without any extra effort on your part. For example, if you have a library of blue shapes and a library of white lines, you can have the program superimpose the lines on the shapes to create shape/line compound stimuli.

Why not use this version of the task?

The dimensions must be superimposable. You couldn't easily use if for a colour/number compound discrimination. Nor could you use if for a {this photograph contains a tank or a car}/{this photograph contains Harrison Ford or David Niven} vehicle/person compound discrimination! If you want to run this kind of test, you need to use the Predefined Stimuli Style.

Configuring the task

· Trial initiation. Specify the initiation method (spontaneous, requiring a lever response, or requiring a magazine response - in which case you can have the magazine light illuminated to indicate the need for a response) and the initiation limited hold time (after which failure to respond causes the trial to be abandoned; use 0 for no limit). See also Use with Dogs.
· Stimulus locations. Choose the Locations used by this task.
· Maximum number of trials. When the subject has performed this number of trials, the task ends. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Apply trial limit to each subtask, not to whole session. If ticked, the maximum number of trials (if >0) applies not to the overall task, but to each subtask or stage (one stage being each of e.g. simple discrimination; simple discrimination reversal; compound discrimination; etc.). This option allows, for example, subjects to progress between stages with a certain number of trials per stage, and if they fail to progress within the criterion for each subtask, the whole task ends.
· Maximum time. When this time elapses, the task is terminated as soon as the current trial has finished. (You may specify 0 for no limit, though you must specify a limit on the number of trials, the time, or both.)
· Maximum time to wait for a response. If the subject fails to make a response within this time, the subject fails the trial.
· Play Marker 1 sound at start of trial? Should the task play a Marker1 sound at the point the trial should be initiated (which, for spontaneous initiation, is the same as the moment the trial starts)?
· Time between trials. Specify a minimum and a maximum intertrial time (they may be the same). The actual time is chosen with a rectangular probability distribution within these values. The time between trials starts after the reward or punishment from the previous trial has finished.
· Leave correct stimulus on during reward? (etc.) When the subject responds, the correct stimulus can be left on the screen during reward, and/or the incorrect stimulus can be left on during punishment. These stimuli can either be left on for the duration of the reward/punishment (as specified in the General Parameters), or you can specify how long to leave them on the screen for.
· When subject performs X of the last Y trials correctly... do nothing/increase stage/end task. Fairly obvious, I hope. Set the value of X and Y in the boxes.
· Give a reversal stage after the simple discrimination. Enables/disables the "SD reversal" phase.
· Give a reversal stage after the compound discrimination. Enables/disables the "CD reversal" phase.
· Give a reversal stage after the ID shift. Enables/disables the "ID reversal" phase.
· Give a reversal stage after the ED shift. Enables/disables the "ED reversal" phase.
· Starting stage. Choose the stage to start at for this session.
· Correction procedure. Choose the type of correction procedure you wish to use. The meaning of the types of correction procedure is explained carefully in the dialogue box. Note that if your subject shifts up a stage, any ongoing correction procedure is cancelled, and all correction procedure counts are reset. For the "harsh" correction procedure, perfoming a trial incorrectly includes failing to initiate it.
· Stimuli. Choose the stimuli required by the task (A1, A2, A1B1, etc.). An example is shown above, using shape and colour as dimensions A and B respectively.
· Dimension on top. Your compound stimuli are made up of two dimensions, A and B. Simple discriminations are performed with dimension A alone. When you create compound stimuli by superimposing simple stimuli, would you like A or B to be on top? If you are using a typical shapes/lines discrimination, for example, you probably want lines on top.
· Randomization. Choose the randomization technique used for the task. For compound stimuli, in any given trial you can present either A1B1 / A2B2 compounds, or A1B2 / A2B1 compounds. Furthermore, the correct stimulus can be on the right or on the left. The stimulus composition and the "left/right correct" assignment can be fully random (with a very small chance that you get ten on the left consecutively correct, because that's what random means). Or, the "left/right correct" assignment can be randomized in pairs (meaning that in pair of trials you get one "left correct" trial and one "right correct" trial, e.g. L,R - R,L - R,L - L,R - R,L - R,L - R,L - ...), with the stimulus composition totally random. Or the stimulus composition can be randomized in pairs (e.g. A1B1[/A2B2], A1B2[/A2B1] - A1B2[/A2B1], A1B1[/A2B2] - A1B2[/A2B1], A1B1[/A2B2] - ...) with the L/R assignment fully random. Or the four possible combinations (L versus R correct and A1B1/A2B2 versus A1B2/A2B1) can be randomized in groups of four trials (quads).
· Stop after... If you choose to increase the stage periodically (see above), you can also specify a stage after which to stop early, if you don't want the task to run through its full sequence. For example, you might want to begin on CD and proceed to the ID shift (a simple way to implement two consecutive concurrent discriminations, should you choose to use this task in that manner!).

Screenshots of the task


Before you start the task

Have you remembered to make your own copy of the supplied database and set it up under ODBC?


Randomness, pseudorandomness, drawing without replacement

Randomness versus pseudorandomness and drawing without replacement

 Top Previous Next

Suppose I wish to pick a series of numbers from 1 to 6.

I could pick them at random. I could do this by rolling a true die. Every time I rolled the die, I would obtain a number from 1-6 with equal probability. The probability of obtaining a "1" would be 1/6 (approximately 0.17); the probability of obtainin a "2" would be 1/6, and so on.

If I rolled the die 100 times, I would expect to get roughly 17 ones, roughly 17 twos, roughly 17 threes, roughly 17 fours, roughly 17 fives, and roughly 17 sixes. It is possible that I would get 100 sixes—but very unlikely (the probability of this is 1.53 × 10–78, or one in six hundred thousand quintillion quintillion quintillion quintillion). But it is certain that I would not get exactly the same number of ones, twos, threes, fours, fives, and sixes (because you can't have six equal whole numbers adding up to 100). If I rolled the die 60 times, you'd expect about 10 of each number—but it's also pretty unlikely that I'd get exactly 10 of each number.

If I rolled the die like this, there is absolutely no way to predict the next number that will come up on each roll.

So much for randomness.

If I want a series of 60 numbers and I want to ensure that I end up with equal numbers of ones, twos, threes, fours, fives, and sixes, I could simply take them in a predictable order: 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6. This gives me the distribution I want (ten of each number), but the sequence is anything but random, and is highly predictable. If you know the last number that came up, you have an extremely good idea of what the next number would be.

So much for total predictability.

To obtain a reasonable combination of unpredictability and obtaining an overall equal distribution of numbers, we could use a pseudorandom technique called drawing without replacement, or draw-without-replacement, sometimes shortened to draw-w/o-replacement or just DWOR. Imagine we would like a sequence of 60 numbers, each in the range 1-6, more or less randomly, but ensuring that we get 10 of each number. We could write the number "1" on ten pieces of paper, the number "2" on ten more pieces of paper, and so on. We could then put all 60 pieces of paper in a hat, shuffle them, and draw them out in sequence, without replacing them. We'd then be guaranteed ten of each type, but the local order would be fairly random. It would not be totally random—if we've drawn out 10 ones, 10 twos, 9 threes, 10 fours, 10 fives, and 10 sixes, then we can be absolutely certain that the last number out of the hat will be a 3. However, we'd have to remember the numbers that had come out so far.

So it's impossible to have a completely random order and to guarantee a certain distribution—but drawing without replacement is a good way to approximate randomness while guaranteeing a certain distribution.

There are several ways to draw without replacement. I've just described a situation in which 10 copies of each number (1-6) are put into the hat, shuffled, and drawn individually for 60 trials. It's possible (but again extremely unlikely!) that the first ten trials would all be ones, the next ten all twos, and so on. If we wanted to guarantee that in every six consecutive trials we will see each possible digit (1-6) once, we should do something different. We should write the number "1" on one piece of paper, the number "2" on a second piece of paper, and so on, up to six pieces of paper. We should then put the six into the hat, shuffle them, and draw them out (without replacement) for the first six trials. We should then put the six pieces of paper back in the hat, shuffle, and repeat the process for the next six trials, and so on. This process gives less randomness (if you know just the first five trials in a set of six, then in principle, you can have perfect knowledge of the sixth number to be drawn) but better control over the local distribution of numbers.

We've just seen two examples in which a list of six numbers (1, 2, 3, 4, 5, 6) are put into a hat and drawn for 60 trials. In the first, we put ten copies of each item in the list into the hat (giving 60 pieces of paper in total) and drew them. I call this a draw-without-replacement (DWOR) multiplier of 10. In the second, we put one copy of each item in the list into the hat, drew them until we'd run out of numbers (after six trials), then put them all back into the hat. I call this a DWOR multiplier of 1.

We've just seen the concept of a list of possibilities, which is multiplied by a DWOR multiplier to give a set of options that are then drawn at random without replacement from a hat; when the hat is empty, we restart the process.

The bigger the DWOR multiplier, the closer the DWOR technique comes to total randomness (if the DWOR multiplier were infinitely large, they are exactly the same process). The smaller the DWOR multiplier, the closer the technique is to total predictability.

This program offers the DWOR technique as a way of selecting possible values for various parameters (such as stimulus durations).


Signal detection theory

Signal detection theory summaries

In general: classify as hits, misses, false alarms, correct rejections

hit rate H = P(response | target)

= hits/(hits+misses)

false alarm rate F = P(response | non-target)

= FAs/(FAs+CRs)

Yes/no tasks (Macmillan & Creelman, 1991, "Detection theory: A user's guide", Cambridge University Press, pp. 9 and 33):

sensitivity d' = z(H) - z(F)

bias or criterion c = -0.5[z(H) + z(F)]

where z() is the inverse normal distribution function

Two-alternative-forced-choice (2AFC) tasks (Macmillan & Creelman, 1991, "Detection theory: A user's guide", p. 121):

d' =  (1/sqrt(2))[z(H) - z(F)]

c = as for yes/no tasks = -0.5[z(H) + z(F)]

The CPT is an example of a yes/no task (only one stimulus offered at one time).

Corrections for proportions of 0 and 1 (M&C1991 p10): several methods are possible; in our database query we'll use

0 becomes 1/(2N)

1 becomes 1 - 1/(2N)

Draft SQL query CPT_SDT:

SELECT

DateTimeCode,

Subject,

Box,

ModuleNumber,

Stage,

AttemptAtStage,

COUNT(*) as NumTrials,

SUM(IIF(Hit,1,0)) as Hits,

SUM(IIF(Miss,1,0)) as Misses,

SUM(IIF(FalseAlarm,1,0)) as FalseAlarms,

SUM(IIF(CorrectRejection,1,0)) as CorrectRejections,

Hits/(Hits+Misses) As HitRate,

FalseAlarms/(FalseAlarms+CorrectRejections) As FalseAlarmRate,

IIF(HitRate=0,1/(2*NumTrials),IIF(HitRate=1,1-1/(2*NumTrials),HitRate)) as CorrectedHitRate,

IIF(FalseAlarmRate=0,1/(2*NumTrials),IIF(FalseAlarmRate=1,1-1/(2*NumTrials),FalseAlarmRate)) as CorrectedFalseAlarmRate,

InverseNormalCDF(CorrectedHitRate) AS Z_H,

InverseNormalCDF(CorrectedFalseAlarmRate) AS Z_F,

(Z_H-Z_F) AS D,

-0.5*(Z_H+Z_F) AS C

FROM

CPT_Results

GROUP BY

DateTimeCode,

Subject,

Box,

ModuleNumber,

Stage,

AttemptAtStage

;

For a two-alternative task (e.g. conditional visual discrimination), replace the bit in bold with

(Z_H-Z_F)/SQR(2) AS D,

and change the source table appropriately.


Results

MonkeyCantab always stores results in two places. One is a human-readable text file. The other is a database. (You choose the name of this file in the main parameters dialogue box, and you can choose the database here as well.)


Text-based results file

A sample results file is shown below. The configuration information is shown first; the results follow. (There aren't very many results, because I got bored creating the file.) The results section is shown in bold.

Tasks generally produce results in a comma-delimited format with a header line giving the field names. (This format is itself suitable for importing into a relational database.) Some tasks produce other human-readable summary information.

I encourage you to think of this file as a backup. The database contains all this information and can be used to retrieve both simple and highly detailed information about a subject's performance.

MonkeyCantab -- SUMMARY FILE

____________________________

IDENTIFICATION

Subject:               test

Session:               23

Date/time code:        08-Apr-2003 (15:20)

Comment:               test

Summary file name:     test-08Apr2003-1520-MonkeyCantab-summary.txt

Default ODBC database: MonkeyCantab_prototype

Box:                   0

Client computer name:  EGRET

Server computer name:  loopback

GENERAL PARAMETERS

Default media directory:

Link - Duration (s):                      5

Link - Play sound during link?            N

Link - Houselight on during link?         N

Reward - Give pellet?                     Y

Reward - Pellets per reinforcement:       1

Reward - Pellet pulse length (ms):        45

Reward - Interpellet gap (s):             0.5

Reward - Give pump?                       Y

Reward - Pump duration (s):               5

Reward - Pump contingent upon licking?    Y

Reward - If cont., lick pump time (s):    1

Reward - Play sound?                      Y

Reward - Activate extra reward device?    Y

Reward - Extra reward device time (s):    5

Punishment - Darkness?                    Y

Punishment - Darkness time (s):           10

Punishment - Play sound?                  Y

Punishment - Extra punishment device?     Y

Punishment - Extra device duration (s):   10

Sounds - Link sound is WAV?               N

Sounds - Link sound filename:

Sounds - Link sound frequency (Hz):       100

Sounds - Link sound type:                 Sine

Sounds - Link sound duration (s):         1

Sounds - Link sound level (0-100):        100

Sounds - Reward sound is WAV?             N

Sounds - Reward sound filename:           C:\WINNT\MEDIA\Utopia Exclamation.WAV

Sounds - Reward sound frequency (Hz):     1500

Sounds - Reward sound type:               Tone

Sounds - Reward sound duration (s):       1

Sounds - Reward sound level (0-100):      100

Sounds - Punishment sound is WAV?         N

Sounds - Punishment sound filename:       C:\WINNT\MEDIA\Windows Logoff Sound.wav

Sounds - Punishment sound frequency (Hz): 1000

Sounds - Punishment sound type:           Square

Sounds - Punishment sound duration (s):   2

Sounds - Punishment sound level (0-100):  100

Sounds - Marker1 sound is WAV?            N

Sounds - Marker1 sound filename:          C:\WINNT\MEDIA\RINGIN.WAV

Sounds - Marker1 sound frequency (Hz):    500

Sounds - Marker1 sound type:              Tone

Sounds - Marker1 sound duration (s):      1

Sounds - Marker1 sound level (0-100):     100

Sounds - Marker2 sound is WAV?            N

Sounds - Marker2 sound filename:          C:\WINNT\MEDIA\RINGOUT.WAV

Sounds - Marker2 sound frequency (Hz):    500

Sounds - Marker2 sound type:              Tone

Sounds - Marker2 sound duration (s):      1

Sounds - Marker2 sound level (0-100):     100

Sounds - Marker3 sound is WAV?            N

Sounds - Marker3 sound filename:          C:\WINNT\MEDIA\RECYCLE.WAV

Sounds - Marker3 sound frequency (Hz):    500

Sounds - Marker3 sound type:              Tone

Sounds - Marker3 sound duration (s):      1

Sounds - Marker3 sound level (0-100):     100

VISUAL OBJECTS

-- Object 0: redsquare

redsq,rectangle 0 0 100 100 -penstyle solid -penwidth 1 -pencolour 255 255 255 -brushsolid 255 0 0

-- Object 1: bluesquare

bluesq,rectangle 0 0 100 100 -penstyle solid -penwidth 1 -pencolour 255 255 255 -brushsolid 0 0 255

CONFIGURATIONS

-- Task 0: SpatialWM

Maximum no. trials (0 for no limit):                    50

Max. time (min) (0 for no limit):                       60

Minimum intertrial time (s):                            5

Maximum intertrial time (s):                            15

Maximum time for responding (s):                        10

Main object:                                            bluesquare

Previously-chosen object (not always relevant):         redsquare

Mark responses aurally?                                 Y

Mark responses visually?                                Y

Visual marker object:                                   redsquare

Visual marker time (s):                                 1

Blank screen to mark each response?                     N

Time to blank screen (s):                               0.5

Use prespecified trial sequence?                        Y

Prespecified trial sequence to use:                     myscheme

Grid type:                                              16-way scattered

Starting number of stimuli:                             9

Increase number of stimuli?                             Y

... regardless of performance?                          Y

... criterion (every X trials or if X/last 20 correct): 1

When correct choice made, chosen stimulus...:           Replace with Previously Chosen object

Time chosen stimulus vanishes for (if relevant) (s):    10

RESULTS

-- Results for Task 0: Spatial Working Memory

Trial,TrialStartTimeMs,GridType,NumStimuli,ChoiceConsequence,StimulusLocations,Responses,ResponseTimesRelTrialStartMs,Correct,IncorrectRepeated,IncorrectTimeUp,Rewarded,Punished

0,1116985724,16-way scattered,16,Vanish for fixed time,0:1:2:3:4:5:6:7:8:9:10:11:12:13:14:15,0:1:2:7:6:5:4:8:9:10:15:11:14:13:12:3,8049:10433:12121:14032:15512:16888:18559:21759:23135:24415:25751:27150:28454:29846:32189:34414,Y,N,N,Y,N

1,1117036681,8-way scattered,1,Remain unchanged,5,0,3006,Y,N,N,Y,N

2,1117055808,16-way scattered,5,Vanish for next choice,2:6:8:11:13,0:1:3:2:4,1475:3491:6539:8594:10402,Y,N,N,Y,N

3,1117077946,16-way grid,8,Disappear permanently,0:2:4:6:9:11:13:15,0:1:3:2:4:5:7:6,1574:3262:4550:6053:7557:8917:10173:11460,Y,N,N,Y,N

4,1117107698,8-way scattered,8,Replace with Previously Chosen object,0:1:2:3:4:5:6:7,0:2:5:7:6:4:1:2,2075:3806:7012:8412:10244:12036:17049:19887,N,Y,N,N,Y

MonkeyCantab FINISHED

Started at:        08-Apr-2003 (15:21)

Finished at:       08-Apr-2003 (15:24)

Successfully wrote to database: ODBC;DSN=MonkeyCantab_prototype;DBQ=D:\Whisker\CODE\clients\rnc - cambridge\MonkeyCANTAB\MonkeyCantab database (sample).mdb;DriverId=281;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;


Creating a new ODBC source

What happens if you're using MonkeyCantab for the first time, or you're starting a new experiment, and you need to set up a new ODBC (Open Database Connectivity) source for MonkeyCantab? You should configure it via Control Panel → ODBC [in Windows 2000, Control Panel → Adminstrative Tools → Data Sources (ODBC)]. This section shows you various ways to achieve this.

Remember: you shouldn't use the supplied database without making a copy for yourself. (It will work, but if you ever uninstalled or reinstalled MonkeyCantab, this file might be replaced or lost. It is much safer to make your own copy and set up ODBC to use your copy.)

First, make a copy of the supplied database to store your data in. Copy the supplied database:

to your own:

Now set your copy up as an ODBC source as follows. Choose Control Panel → ODBC [in Windows 2000, Control Panel → Adminstrative Tools → Data Sources (ODBC), or the equivalent for your version of Windows:

Alternatively, you can get to the same point from MonkeyCantab itself. Click Pick from the Parameters dialogue:

Either way, you get to something like this:

Let's assume that you have already made a working copy of the prototype database supplied with the task, as described above. How do we go about setting this up as an ODBC data source?

Click New.

Choose a User or System data source. User is probably more sensible. Click Next.

Choose your database driver. You probably want one that's in your language, and the supplied database is in Microsoft Access format (although MonkeyCantab itself will store data in any suitable ODBC-compatible database that has the right table and field names). Click Next.

Click Finish.

You should fill in the Data Source Name (no spaces) and the description, and Select a database. When you click Select, this dialogue box appears:

Choose your database here and click OK. Your ODBC data source fields should now all be set up:

Click OK. You will be returned to the ODBC selection screen with your new data source now available.


Using the Microsoft Access database for MonkeyCantab

Remember: you shouldn't use the supplied database without making a copy for yourself. (It will work, but if you ever uninstalled or reinstalled MonkeyCantab, this file might be replaced or lost. It is much safer to make your own copy and set up ODBC to use your copy.)

When supplied, the database is called "MonkeyCantab database (sample).mdb". Make a copy before using it!

You need Microsoft Access (97 or higher) to use this database. Sorry about that.

When you open the database, it looks like this:

MonkeyCantab will store its results here. The table "ZZZ INFO: about the tables in this database" summarizes the information held in each table. Click a table and click Design to view a list of all the fields. Here, for example, is the design view for the SpatialWM_Results table (which stores results information for the Spatial Working Memory task):

Don't modify anything in Design view unless you know what you're doing! You may make MonkeyCantab unable to save its data to the database.

If you close the Design view and click Open instead, you see the contents of this table. Here is the contents of the SpatialWM_Results table (holding results for the Spatial Working Memory task). I entered some sample results into this table.

Feel free to explore the tables.

When you want to extract data for analysis, you may want to create queries to do so. (Queries are listed in the "Queries" section of the main database screen.) Queries can be created using Access's visual query design system, or using the language SQL (Structured Query Language). A little on relational database principles and SQL follows.


Relational databases in general

I have found the most useful way to store data is in a relational database, often called a relational database management system (RDBMS). A relational database stores data in tables, which are made up of fields and records:

A table: | five fields:
 | Date | Rat | NumResponses | NumStimuli | NumReinforcements
one record: | 17/2/00 12:29:00 | M4 | 56 | 5 | 1
another: | 17/2/00 14:37:06 | M5 | 437 | 43 | 8
… and so on | 17/2/00 12:54:00 | M4 | 263 | 26 | 5

The driving principle behind a relational database is this: never duplicate data. Let's say our rats came from two groups, Sham and Lesion. If we wanted to record this in the database, so we could analyse data by group, we could store it like this:

Table BigData
Date | Rat | Group | NumResponses | NumStimuli | NumReinforcements
17/2/00 12:29:00 | M4 | sham | 56 | 5 | 1
17/2/00 14:37:06 | M5 | lesion | 437 | 43 | 8
17/2/00 12:54:00 | M4 | sham | 263 | 26 | 5

However, this introduces two problems. Firstly, it generates very large tables. Secondly, and more importantly, it is unclear what to do if the data is inconsistent – let's say the underlined 'sham' was changed to 'lesion' by mistake. The database would then not know whether rat M4 was in the Sham or Lesion group – there would be entries for both. The solution to both problems is to create two tables, linked on the smallest possible unit of information (in this example, the rat name):

Table Responses

Date | Rat | NumResponses | NumStimuli | NumReinforcements
17/2/00 12:29:00 | M4 | 56 | 5 | 1
17/2/00 14:37:06 | M5 | 437 | 43 | 8
17/2/00 12:54:00 | M4 | 263 | 26 | 5

Table Groups

Rat | Group
M4 | sham
M5 | lesion

By using the rat name as a key (also known as a foreign key), the database can link the two tables together whenever we want to know how many responses the two groups made on average.

When we want to find out that sort of information, we query the database, specifying how we want to see the data. We could, for example, obtain the following (ignoring a glaring scientific error!):

Query AverageByGroups

Group | NumberOfSubjects | MeanNumResponses | MeanNumStimuli | MeanNumReinforcements
sham | 2 | 159.5 | 15.5 | 3
lesion | 1 | 437 | 43 | 8

Summary of database principles

So relational databases split up the data (which should be entered in well-designed tables without any duplication of information) from queries that look at the data in an infinite variety of ways.

A concrete example: Microsoft Access 97

Microsoft Access 97 is a commonly-used relational database for PCs. It isn't perfect, by a long shot, but I've found it good enough. It supports structured query language (SQL) for designing queries; this is a powerful quasi-English language. For example, the query shown above would be written in SQL like this:

SELECT group,

   count(*) as NumberOfRats,

   avg(NumResponses) as MeanNumResponses,

   avg(NumStimuli) as MeanNumStimuli,

   avg(NumReinforcements) as MeanNumReinforcements

FROM responses, groups

WHERE responses.rat = groups.rat

GROUP BY group

;

If you find all this a bit cryptic, Access also provides a graphical interface for designing queries.

Getting data out of a database

Given a well-designed database, you should be able to get the data out in any conceivable way. The size of this manual doesn't permit a detailed look at relational database design or queries, but there are abundant sources. If you use Microsoft Access, there's the help system, but I also recommend Viescas JL (1997), Running Microsoft Access 97, Microsoft Press. Beyond that there is a whole field of database design.

Tip

I operate on the principle that any view of the data is achievable. If the graphical query design can't do it, you can use SQL. If SQL can't do it alone, you can use Visual Basic to augment it. If all that fails (and it hasn't failed me yet) you can always re-export the data and use a general-purpose programming language to analyse it. If the data's there, you can get at it.

One thing is worth noting: modern statistical packages (e.g. SPSS, http://www.spss.com/) are starting to support the ODBC standard for exchanging information with databases. You can set up database queries to create views of the data that your stats packages can use, then set up sequences of ODBC capture, analysis and graphical presentation in your stats package. Then whenever you import new data, you can run the entire analysis in a matter of seconds. If you handle large volumes of data, it easily repays the initial effort.


Database structure

This is the structure of the MonkeyCantab database. Not shown are the ImpulsiveChoice_Config and ImpulsiveChoice_Results tables, which follow the same key structure as the other tasks.


TROUBLESHOOTING

Here's a collection of problems commonly encountered.

· When my task is saving data, it generates a database error. Why? What do I do?


Troubleshooting - database errors

 Top Previous

When MonkeyCantab finishes, it tries to save the results into a database. Here are some things that can go wrong.

ODBC "Too few parameters. Expected 1" error

This cryptic error, generated by the Windows ODBC (database) system, indicates that a field used by MonkeyCantab does not exist in the database. In this example, a field is missing from the "MonkeyCantab_GeneralConfig" table.

Usually, this means that you are trying to use a newer version of MonkeyCantab than the one your database was designed for.

First, don't panic. MonkeyCantab writes data to a text-based results file before it attempts to write to a database - so your data should already have been saved to disk.

Next, you can do one or more of these things.

1. Make a copy of the database supplied with your current (newer) version of MonkeyCantab, create an ODBC link to it, and click "Retry". This will store your data. You may later need to merge it with data in your previous (older) database, if the two sets of data must be integrated, but that is a problem for later.
2. You can also alter the design of your current (older) database, so that it has all the fields in the newer version of the database. This is a more skilled procedure.