TicTimer software for measuring tic suppression

Authorea preprint 08/01/2017 DOI: 10.22541/au.150161712.22184874

Jonathan K. Black (1) (ORCiD 0000-0002-9324-915X)
Jonathan M. Koller, BSEE, BSBME (2,3) (ORCiD 0000-0002-1409-5608)
Kevin J. Black, M.D. (2-5)* (ORCiD 0000-0002-6921-9567)

(1) Ira A. Fulton College of Engineering and Technology, Brigham Young University, Provo, Utah, USA.
Departments of (2) Psychiatry, (3) Radiology, (4) Neurology, and (5) Neuroscience, Washington University School of Medicine, St. Louis, Missouri, USA
* Address correspondence to Dr. Black at Campus Box 8134, 660 S. Euclid Ave., St. Louis, Missouri, USA or kevin@WUSTL.edu.

Copyright © 2017, the authors.

Publication notice: This page shows a preprint of an article that has now been published: F1000Research 2017, 6:1560 (doi: 10.12688/f1000research.12327.1).


Woods and Himle developed a standardized tic suppression paradigm (TSP) for the experimental setting to quantify the effects of intentional tic suppression in Tourette syndrome. The present article describes a Java program that automates record keeping and reward dispensing during the several experimental conditions of the TSP. The software optionally can be connected to a commercial reward token dispenser to further automate reward delivery to the participant. The timing of all tics, 10-second tic-free intervals, and dispensed rewards is recorded in plain text files for later analysis. Expected applications include research on Tourette syndrome and related disorders.

MeSH Keywords: tic disorders; Tourette syndrome; reward; reinforcement (psychology); software


Woods and Himle developed a tic suppression paradigm (TSP) that could be used in the experimental setting to demonstrate and quantify the effects of intentional tic suppression on tic rate in Tourette syndrome (TS) and other tic disorders (Woods 2004, Himle 2005, Himle 2008, Lyon 2010). In this paradigm, a participant is observed during several experimental conditions, baseline and differential reinforcement of zero-rate ticcing (DRO), and sometimes also verbal instruction to suppress tics and noncontingent reinforcement (NCR).

In the course of conducting a longitudinal study of children with Provisional Tic Disorder (Black 2016), we found that tic suppression is seen within the first few months after a child's first tic (Greene 2015). We also found that the TSP required substantial investigator effort, and we started writing software with the following goals:

  • automated tic counting, timing and record-keeping;
  • automated reward delivery in the DRO condition;
  • automated reward delivery in the NCR condition.

The overall motivations included not only convenience but also improvement in accuracy. We present the software here to facilitate its use by others.



TicTimer first has the user set up the details for a session, then it runs a clock for the specified session time while writing significant events to a log file. The program writes a line to the log file for each of the following events: session started and ended, tic detected, ten seconds passed without tics, and reward dispensed. Each line includes the time of the event. By parsing through each line in a log file, a python script can extract and summarize the key data.

The hardware allows reward tokens to be dispensed automatically to the study participant.
One end of the long cable enters the token dispenser and its two wires attach to the two pins in the
Passive Connection Panel that, when shorted, trigger release of a reward token. The Student Trainer Interface box provides power to the token dispenser box and a remote pushbutton for manually triggering token release. The other end of the long cable connects to the two normally open pins on the relay inside of the small plastic box. The USB to TTL serial cable attaches to the input pins on
the relay, with the USB end of the cable leaving the box to attach to the computer running TicTimer. The figure shows the final assembly.

Parts List:


System software requirements are Java 8 and RXTX for Java, a library for serial port communication. Binaries for Windows and Linux are provided by Fizzed.com. Python 3 was used for the log file reader script.

The program can be run with or without the relay and USB cable. If the hardware is set up and connected to the computer, the program can start in "link mode." Otherwise, TicTimer can still be run in "button mode," in which the automatic reward system is replaced by a human who presses the push button attached to the Student Trainer Interface when prompted by a beep and a red flash on the computer screen.

The following procedure applies to both reward modes. First, the user presses "Setup" to choose which type of session is being run and to specify where the session log should be saved. For the NCR condition, the user is also prompted to identify the log file from a previously completed DRO session in the same subject (which provides the timing for the rewards dispensed in the NCR condition). Once setup is completed, the session can be started. During a session, the person observing the subject records tics by clicking the "Tic Detected" button or by pressing "T" or the space bar. If the session type includes rewards (DRO and NCR), they are dispensed appropriately. The session ends when the predetermined time elapses or when the user ends it manually by pressing "End Session" or by closing the window.

If a session is ended manually and restarted, the new session log will be appended to the old one unless a new file was chosen in setup. If a log file contains multiple sessions, only the last session will be used by the NCR mode (which requires a DRO session file in setup) and the data reader script.

To summarize the data from a TicTimer log file, run the accompanying python scrypt (TT_Data.py) with one or more log files as arguments. For each log file given, the script reports the length of the session and the number of tics, 10-second tic-free intervals, and rewards dispensed during the session.