createFrequencyMatrix: Analyzing the frequency of worm thrashing over time and...

Description Arguments Details Value Note Author(s) See Also Examples


This function analyzes the frequency of worm thrashing over time for the files returned by the Tracker program and then combined the frequency of all files into a matrix and extracted genotype information from tracker file names to create annotation file.



inputPath is a directory which contains the files returned by the Tracker program. Because annotation file is generated by extracting the genotype information from tracker file names, the user should use dashes to denote genotypes and separate the date in the file name like Genotype_Drug(if used)_Dose(if used)_Date_#. The following are some examples of tracker file names: N4_AMPH_100uM_2-11-14_1 (genotype is N4), dat-1ok157_IMI_10uM_12-12-12_7(genotype is dat-1ok157), cat-2e1112dat-1ok157_2-20-09_2 (genotype is cat-2e1112dat-1ok157) and dat-1ok157dop-3vs106_5-17-06_4 (genotype is dat-1ok157dop-3vs106).


outputPath is a directory which saves the plots and files returned by the function.


The function provides four different counting methods: "FFT" (Fast Fourier Transform), "Extrema", "PeakDet" (peak delta) and "RT+GP" (Get Peaks plus Racetrack Filter) and the users can select one of them to output the corresponding frequency matrix. The default outputted method is "Extrema".


Threshold is the amount of degrees (in radians) required to count at as thrash and the default is 0.6.


DeltaPeakDt is the threshold for "peak delta" algorithm, similar to Threshold and the default is 1.6.


MinFrameBtwnMax is the minimum number of frames between maxima and the default is 4.


MinDelta is similar to DeltaPeakDet and the default is 2.5.


longPeriod is the longest period cycle which is not zerod and the default is 5.


AvWindowSize is the length of the average window in seconds and the default is 10 seconds.


fps is the frame per second and the default is 15.


ZP_Length is the Zero-padding length and the default is 100.


WindowSize is the size of window for computing the Fast Fourier Transform and the default is 30.


MaxCompWin is the window size on deciding if the current angle is a maxima and the default is 2.


minTime is the minimum threshold of time points for the following analysis and the default is 0 second.


maxTime is the maximum threshold of time points for the following analysis and the default is 600 seconds.


The createFrequencyMatrix function outputs six files:

1. outputDescription_createFrequencyMatrix.html contains a summary of all output files.

2. XFig.jpg is the image of scatter plot of one animal plotted as "Frequency vs Time(min)" with all four counting methods overlaid. "X" of "XFig.jpg" represents the input file names.

3. XFigSub.jpg is the same as XFig.jpg except counting methods are broken up into four different plots. This is very helpful in checking through a video to make sure that Tracker tracked the worm properly. Bad contrast can be a problem with Tracker missing the worm and these files help to identify troublesome videos for retracking or discarding.

4. XFreq.csv is the CSV file of raw data organized by column, where column one represents frequency as counted by FFT, column two represents frequency calculated by Extrema, column three represents frequency calculated by PeakDt, column four represents frequency as counted by RT+GP and column five represents time in seconds.

5. frequencyMatrix.txt is a TXT file which contains the information of frequencyMatrix.

6. annotationfile.txt is a TXT file which contains the information of annotation.


The createFrequencyMatrix function returns a list object which contains the following information:


frequencyMatrix combines the analysis results of the frequency of worm thrashing over time for all Tracker files in the inputPath.


annotation contains all genotype information extracted from file names of all Tracker files in the inputPath.


The worm frequency analysis script in this function is converted from matlab script coded by Katherine Fleming and Paul Fleming.


Jing Wang and Andrew Hardaway

See Also



    inputPath <- system.file("extdata","trackerFiles",package="SwimR")
    outputPath <- getwd()
    freMat <- createFrequencyMatrix(inputPath, outputPath, method = "Extrema", 
 Threshold = 0.6, DeltaPeakDt = 1.6, MinFrameBtwnMax = 4, MinDelta = 2.5, longPeriod = 5, 
 AvWindowSize = 10, fps = 15, ZP_Length = 100, WindowSize = 30, MaxCompWin = 2, minTime = 0, 
 maxTime = 600)

Questions? Problems? Suggestions? or email at

Please suggest features or report bugs with the GitHub issue tracker.

All documentation is copyright its authors; we didn't write any of that.