OPhys Commands

Launch this page using the cjfhelp command
ABF Inspection: getTTL
ABFGraph Operations: DetectEvents, extractAllSweeps, ExtractData, MarkerStats, MemTest, MemTestAve, pAve, pAveTime, PhasePlot, pRave
ABFGraph Settings: AlignByTag, autobase, GetPath, GS, LPF, m1, m2, miniConfig, miniP, modifyNames, modifyTags, setBase, setmarks, setMarksEpoch, setMarksIndex, setMarksWks, setTTL
Automation: activateByLongName, activateLastBookSheet, CJFLoop, ListABFs, RunOnCells
Column Operations: AddX, ZeroOffsetMax
CPH: byEventCPH
Data Linking: activateLinkSource, activateLinkTarget, linkData, masterLink, masterLinkRave, pastelink, setLinkTarget
Graph Axis Manipulation: autoX, autoY, axisPan, axisSet, axisSpan, setX, setY
Graph Markup: hline, hmark, hSpan, styleGraph, styleGraphs, vline, vlines, vmark, vSpan
Graph Scaling: cent, cscale, csize, inch, scale, scaling
Image Analysis: dffSheet, LoadCsvWithMetadata, LoadLinescanCSV, RoiLoad
Internal Tools: cjfhelp, fixABFpaths, Hotmods, webCell, webExp
Origin Project Operations: dABF, FixAppend
Output Sheet Operations: extractSweeps, FreqInBinHist, getInactivation, keepFirstEventPerSweep, renameByABF, renameByParent, ShowAbfPath, ShowAbfPaths
Statistics: ks2boot, sendToANOVA, std1, std2, tData, tt2, tt2Sets, vStats
Summary and Rave Sheets: BaseToRange, BaseToRangeSlope, GetAllCols, GetCells, GetCols, GetColsXY, getGroups, NormToRange, Rave, RaveD, reject, resample, slopeCorrect, UpdateAllSheets, UpdateRaveSheet, UpdateRaveSheets, UpdateSummarySheet, UpdateSummarySheets, UpdateThisSheet, wks
Uncategorized: ExtractEvents
Workbook Operations: dSheets, ExtractByString, ExtractByTag, MergeSheetsH, MoveSheet, RunOnBooks, RunOnSheets, SortSheets
Worksheet Operations: addStatsRows, AlignColsXY, BaseToRangeAll, ccAve, decimateWKS, deleteColumns, deleteRows, deleteRowsBandpass, DeleteValuesAfterPeak, DeleteXColumns, letters, MergeCols, NANUM_to_Zero, NormToRangeAll, numbers, RenameSheet, rng, SortCols, wksAddNote
Worksheet Tagging: AddTag, ChangeTags
Undocumented Functions: List of undocumented commands
Code Metrics: Lines of Code, TODOs

ABF Inspection

getTTL

Display every TTL and indicate which are active in the protocol of the currently-loaded ABF. setTTL can be used to update the TTL used by evoked stats as an alternative to clicking through the settings dialogue.
code View source on GitHub
CJF_Common.c:3180 void getTTL()
/* ophys commandCATEGORY: ABF InspectionUSAGE: getTTLDisplay every TTL and indicate which are active in the protocol of the currently-loaded ABF.`setTTL` can be used to update the TTL used by evoked stats as an alternative to clicking through the settings dialogue.*/

ABFGraph Operations

DetectEvents

Run event detection (same thing as clicking the run current button in the CJFmini section of the ABF Graph)
code View source on GitHub
CJF_Mini.c:791 void DetectEvents(string strMode="singleFile", double dSecForRun=-1.0, int iStartSec=-1, int iEndSec=-1)
/* ophys commandCATEGORY: ABFGraph OperationsUSAGE: DetectEventsRun event detection (same thing as clicking the _run current_ button in the CJFmini section of the ABF Graph)*/

extractAllSweeps

Run extractData on every sweep of the currently-loaded ABF.
code View source on GitHub
CJF_Graph_Tools.c:1866 void extractAllSweeps()
/* ophys commandCATEGORY: ABFGraph OperationsUSAGE: extractAllSweepsRun `extractData` on every sweep of the currently-loaded ABF.*/

ExtractData

Creates a new worksheet containing the data between the markers. This command is the same as clicking the "extract data" button on the ABF graph. To run this on several consecutive sweeps, use the extractSweeps or ExtractAllSweeps commands.
code View source on GitHub
CJF_Graph_Tools.c:1731 void ExtractData(int iMarksToUse=12)
/* ophys commandCATEGORY: ABFGraph OperationsUSAGE: extractdataCreates a new worksheet containing the data between the markers.This command is the same as clicking the "extract data" button on the ABF graph.To run this on several consecutive sweeps, use the `extractSweeps` or `ExtractAllSweeps` commands.*/

MarkerStats

Run marker stats (same thing as clicking the M Stats button in the marker stats section of the ABF Graph)
code View source on GitHub
CJF_Graph_Tools.c:2286 void MarkerStats(int iStartSweep=-1, int iEndSweep=-1, int iMarksToUse=12)
/* ophys commandCATEGORY: ABFGraph OperationsUSAGE: MarkerStatsRun marker stats (same thing as clicking the _M Stats_ button in the marker stats section of the ABF Graph)*/

MemTest

This command runs the memtest analysis sequence on the currently-loaded ABF. Output is one row per sweep. To reduce output to a single row (suitable for comparison across cells) follow this command with raved and rave, or use the memtestave command.
code View source on GitHub
CJF_Memtest.c:9 void MemTest(bool bRunOnAverageSweep=false, int iWaveSweep=0)
/* ophys commandCATEGORY: ABFGraph OperationsUSAGE: memtestThis command runs the memtest analysis sequence on the currently-loaded ABF.Output is one row per sweep.To reduce output to a single row (suitable for comparison across cells) follow this command with `raved` and `rave`, or use the `memtestave` command.*/

MemTestAve

This command calls memtest then forces the first row of the output sheet to contain the average of all rows of the same column. This is one way of reducing several sweeps of membrane tests into a single number suitable for comparison across cells. An alternative to this command is memtest followed by raved and rave.
code View source on GitHub
CJF_Memtest.c:497 void MemTestAve()
/* ophys commandCATEGORY: ABFGraph OperationsUSAGE: memtestaveThis command calls `memtest` then forces the first row of the output sheet to contain the average of all rows of the same column.This is one way of reducing several sweeps of membrane tests into a single number suitable for comparison across cells.An alternative to this command is `memtest` followed by `raved` and `rave`.*/

pAve

Usage: pave [first sweep] [last sweep]
Example: pave 10 20 display an average of sweep 10 through sweep 20
Example: pave 10 -1 display an average of sweep 10 and every subsequent sweep
Plot a sweep representing the average of all sweeps between (and including) the given sweep numbers. If the last sweep is -1 it will average all sweeps between the first given sweep and the end of the ABF.
code View source on GitHub
CJF_Graph_Tools.c:2093 void pAve(int iStartSweep, int iEndSweep=-2)
/* ophys commandCATEGORY: ABFGraph OperationsUSAGE: pave [first sweep] [last sweep]Plot a sweep representing the average of all sweeps between (and including) the given sweep numbers.If the last sweep is `-1` it will average all sweeps between the first given sweep and the end of the ABF.EXAMPLE: `pave 10 20` _display an average of sweep 10 through sweep 20_EXAMPLE: `pave 10 -1` _display an average of sweep 10 and every subsequent sweep_*/

pAveTime

Usage: pavetime [start time] [stop time]
Plot the average of all sweeps between the two given times (in minutes).
code View source on GitHub
CJF_Graph_Tools.c:2076 void pAveTime(double timeMinutes1, double timeMinutes2)
/* ophys commandCATEGORY: ABFGraph OperationsUSAGE: pavetime [start time] [stop time]Plot the average of all sweeps between the two given times (in minutes).*/

PhasePlot

Run this on a current-clamp sweep with the markers shown. This command gets the data between the markers and creates a workbook with voltage (V) vs velocity (dV/dT)
code View source on GitHub
CJF_Graph_Tools.c:1617 void PhasePlot(int iMarksToUse=12)
/* ophys commandCATEGORY: ABFGraph OperationsUSAGE: phaseplotRun this on a current-clamp sweep with the markers shown.This command gets the data between the markers and creates a workbook with  voltage (V) vs velocity (dV/dT)*/

pRave

Usage: prave [rangeNumber]
Usage: prave [range number] [range type]
Example: prave 1 - plot the mean sweep from the first range defined by raved
Example: prave 1 bySweep - plot each individual sweep in the first range defined by raved
Plot the average sweep from the specified range in the rave dialogue (set by raved)
code View source on GitHub
CJF_Rave.c:782 void pRave(int iRange, string strOut="asAve")
/* ophys commandCATEGORY: ABFGraph OperationsUSAGE: prave [rangeNumber]USAGE: prave [range number] [range type]Plot the average sweep from the specified range in the rave dialogue (set by `raved`)EXAMPLE: `prave 1` - plot the mean sweep from the first range defined by `raved`EXAMPLE: `prave 1 bySweep` - plot each individual sweep in the first range defined by `raved`*/

ABFGraph Settings

AlignByTag

Usage: alignByTag [tag] [minutes]
Example: alignByTag disable automatic tag alignment
Example: alignByTag TGOT 10 tags containing 'TGOT' will be aligned to 10 minutes
Automatic tag alignment causes output sheets to be automatically shifted in time so the first ABF tag whose comment contains the given string will occur at the given time.
code View source on GitHub
CJF_General.c:728 void AlignByTag(string strTag = "", double dMinutes = 10)
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: alignByTag [tag] [minutes]Automatic tag alignment causes output sheets to be automatically shifted in time so the first ABF tag whose comment contains the given string will occur at the given time.EXAMPLE: `alignByTag` _disable automatic tag alignment_ EXAMPLE: `alignByTag TGOT 10` _tags containing 'TGOT' will be aligned to 10 minutes_ */

autobase

Example: autobase on
Example: autobase off
Example: autobase 500 600
Example: autobase wks
This command enables, disables, or sets the range for automatic baseline subtraction
code View source on GitHub
CJF_Graph_Tools.c:4657 void autobase(string sArg1, string sArg2="")
/* ophys commandCATEGORY: ABFGraph SettingsThis command enables, disables, or sets the range for automatic baseline subtractionEXAMPLE: `autobase on`EXAMPLE: `autobase off`EXAMPLE: `autobase 500 600`EXAMPLE: `autobase wks`*/

GetPath

Copy the path of the currently-loaded ABF to the clipboard. This is ideal for quickly loading an ABF in clampfit.
code View source on GitHub
CJF_Common.c:3147 void GetPath()
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: getpathCopy the path of the currently-loaded ABF to the clipboard.This is ideal for quickly loading an ABF in clampfit.*/

GS

Open the graph settings dialog. This is the same as clicking the "settings" button.
code View source on GitHub
CJF_GlobalSettings.c:219 void GS(string strSource="ProjectTree", int iSilent=0)
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: gsOpen the graph settings dialog.This is the same as clicking the "settings" button.*/

LPF

Usage: LPF [filter type] [size]
Example: LPF Gaussian 5
Example: LPF FFT 1
Example: LPF Exponential 2
Example: LPF Off
Example: LPF On
Example: LPF wks applies LPF settings from the active worksheet to the ABFGraph
Customize low-pass filter settings from the command window.
code View source on GitHub
CJF_General.c:3970 void LPF(string type, double value = 1)
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: LPF [filter type] [size]Customize low-pass filter settings from the command window.EXAMPLE: `LPF Gaussian 5`EXAMPLE: `LPF FFT 1`EXAMPLE: `LPF Exponential 2`EXAMPLE: `LPF Off`EXAMPLE: `LPF On`EXAMPLE: `LPF wks` applies LPF settings from the active worksheet to the ABFGraph*/

m1

Usage: m1 [time]
moves marker 1 (the left marker) to a time point on the sweep (in milliseconds). When placing both markers, markerSpan may be faster.
code View source on GitHub
CJF_Graph_Tools.c:461 void m1(double dNewX)
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: m1 [time]moves marker 1 (the left marker) to a time point on the sweep (in milliseconds).When placing both markers, `markerSpan` may be faster.*/

m2

Usage: m2 [time]
moves marker 2 (the right marker) to a time point on the sweep (in milliseconds). When placing both markers, markerSpan may be faster.
code View source on GitHub
CJF_Graph_Tools.c:471 void m2(double dNewX)
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: m2 [time]moves marker 2 (the right marker) to a time point on the sweep (in milliseconds).When placing both markers, `markerSpan` may be faster.*/

miniConfig

Usage: miniConfig
Usage: miniConfig [parameter] [value]
This command sets event detection parameters from the command window. Run miniConfig without arguments for usage information.
code View source on GitHub
CJF_Mini.c:3345 void miniConfig(string parameterName="", string parameterValue="")
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: miniConfigUSAGE: miniConfig [parameter] [value]This command sets event detection parameters from the command window.Run `miniConfig` without arguments for usage information.*/

miniP

Usage: minip
Usage: minip wks
Usage: minip wks-silent
Usage: minip save [name]
Usage: minip load [name]
Usage: minip load-silent [name]
Usage: minip del [name]
Usage: minip list
Launch the CJFmini settings window (to set parameters for event detection). Use minip wks to load the event detection paramaters used to generate data of the currently-selected output sheet. Saving and loading settings: If you frequently hop between settings (e.g., analyzing downward and upward events in the same file) it is useful to save and load cjfmini settings from the command window. A few special save/load commands exist: minip del * deletes all user defined parameter sets with project scope via single command.
code View source on GitHub
CJF_Mini.c:515 void miniP(string strSource="ABFGraph", string strTarget="UserDefined")
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: minipUSAGE: minip wksUSAGE: minip wks-silentUSAGE: minip save [name]USAGE: minip load [name]USAGE: minip load-silent [name]USAGE: minip del [name]USAGE: minip listLaunch the CJFmini settings window (to set parameters for event detection).Use `minip wks` to load the event detection paramaters used to generate data of the currently-selected output sheet.Saving and loading settings: If you frequently hop between settings (e.g., analyzing downward and upward events in the same file) it is useful to save and load cjfmini settings from the command window.A few special save/load commands exist: `minip del *` deletes all user defined parameter sets with project scope via single command.*/

modifyNames

Usage: modifyNames
Usage: modifyNames [group]
Example: modifyNames young;
Example: modifyNames aged;
Example: modifyNames tatNeg;
Example: modifyNames tatPos;
This command appends a group name to all output workbooks. Run this after loading a new ABF but before performing any analysis which outputs a workbook. People usually use this command to define the groups most often directly compared to one another (less-frequently-compared groups are organized by folders). Note that in the gs dialog the names appended to output workbooks are referred to as tags. Do not be confused with the names appended to worksheets which are also called tags. modifyNames stets the names of workbooks, while modifyTags sets the names of worksheets. Use of modifyTags is discouraged.
code View source on GitHub
CJF_General.c:2081 void modifyNames(string strModifier="")
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: modifyNamesUSAGE: modifyNames [group]This command appends a group name to all output workbooks.Run this after loading a new ABF but before performing any analysis which outputs a workbook.People usually use this command to define the groups most often directly compared to one another (less-frequently-compared groups are organized by folders).Note that in the `gs` dialog the names appended to output workbooks are referred to as _tags_.Do not be confused with the names appended to worksheets which are also called tags.`modifyNames` stets the names of workbooks, while `modifyTags` sets the names of worksheets.Use of `modifyTags` is discouraged.EXAMPLE: `modifyNames young;`EXAMPLE: `modifyNames aged;`EXAMPLE: `modifyNames tatNeg;`EXAMPLE: `modifyNames tatPos;`*/

modifyTags

Usage: modifyTags
Usage: modifyTags [group]
Example: modifyTags aged; turns _MT into _MT.aged (and _eStats.aged, _mStats.aged, etc.)
Example: modifyTags; removes all tags from output sheet names, reverting to _MT, _eStats, etc.
This command changes modifies the output tags in the global settings dialog without ever exposing the dialog to users. In contrast with commands like AddTag and ChangeTags which modify existing sheet names, this command configures how new sheets will be named when they are created. The "tag" (the second half of a sheet name separated from the base name by a period) is set with this command, or removed if no argument is given.
code View source on GitHub
CJF_General.c:2145 void modifyTags(string strModifier="")
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: modifyTagsUSAGE: modifyTags [group]This command changes modifies the output tags in the global settings dialog without ever exposing the dialog to users.In contrast with commands like `AddTag` and `ChangeTags` which modify _existing_ sheet names, this command configures how _new_ sheets will be named when they are created.The "tag" (the second half of a sheet name separated from the base name by a period) is set with this command, or removed if no argument is given.EXAMPLE: `modifyTags aged;` _turns `_MT` into `_MT.aged` (and `_eStats.aged`, `_mStats.aged`, etc.)_EXAMPLE: `modifyTags;` _removes all tags from output sheet names, reverting to `_MT`, `_eStats`, etc._*/

setBase

Usage: minip wks
Run this command on an active output sheet to apply its autobase settings to the ABFGraph
code View source on GitHub
CJF_Graph_Tools.c:3160 void setBase(string strMode="default")
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: minip wksRun this command on an active output sheet to apply its autobase settings to the ABFGraph*/

setmarks

Usage: setmarks [time 1] [time 2]
Usage: setmarks epoch [epoch index]
Usage: setmarks epoch [epoch index] [padding]
Example: setmarks 10 100 sets markers at 10 ms and 100 ms
Example: setmarks epoch 2 sets markers around the third epoch
Example: setmarks epoch 2 10 sets markers around the third epoch with 10 ms padding
Example: setmarks firststep sets markers around the first epoch where command deviates from holding
Example: setmarks firststep 10 same as before, with 10 ms padding
Move markers to specific times or around an epoch.
code View source on GitHub
CJF_Graph_Tools.c:528 void setmarks(string ParOne, string ParTwo="", int ParThree=0)
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: setmarks [time 1] [time 2]USAGE: setmarks epoch [epoch index]USAGE: setmarks epoch [epoch index] [padding]Move markers to specific times or around an epoch.EXAMPLE: `setmarks 10 100` _sets markers at 10 ms and 100 ms_EXAMPLE: `setmarks epoch 2` _sets markers around the third epoch_EXAMPLE: `setmarks epoch 2 10` _sets markers around the third epoch with 10 ms padding_EXAMPLE: `setmarks firststep` _sets markers around the first epoch where command deviates from holding_EXAMPLE: `setmarks firststep 10` _same as before, with 10 ms padding_*/

setMarksEpoch

Usage: setMarksEpoch [epoch]
Usage: setMarksEpoch [epoch] [padding]
Place markers around the given epoch (zero-indexed).
code View source on GitHub
CJF_Graph_Tools.c:597 void setMarksEpoch(int epochNumber = 0, int iPad=0)
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: setMarksEpoch [epoch]USAGE: setMarksEpoch [epoch] [padding]Place markers around the given epoch (zero-indexed).*/

setMarksIndex

Usage: setMarksIndex [index 1] [index 2]
Place markers at two sweep index positions (not millisecond positions). This function is required because setmarks uses floating point math. For example, setmarks is incapable of setting markers to index 2350
code View source on GitHub
CJF_Graph_Tools.c:495 void setMarksIndex(int index1, int index2)
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: setMarksIndex [index 1] [index 2]Place markers at two sweep index positions (not millisecond positions).This function is required because setmarks uses floating point math.For example, setmarks is incapable of setting markers to index 2350*/

setMarksWks

Usage: setmarks [index 1] [index 2]
Place markers at two sweep index positions (not millisecond positions)
code View source on GitHub
CJF_Graph_Tools.c:563 void setMarksWks(string strPad)
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: setmarks [index 1] [index 2]Place markers at two sweep index positions (not millisecond positions)*/

setTTL

Usage: setTTL [digital out number]
This command can be used to update the TTL used by evoked stats as an alternative to clicking through the settings dialogue.
code View source on GitHub
CJF_Common.c:3203 void setTTL(int iDigitalOut)
/* ophys commandCATEGORY: ABFGraph SettingsUSAGE: setTTL [digital out number]This command can be used to update the TTL used by evoked stats as an alternative to clicking through the settings dialogue.*/

Automation

activateByLongName

Usage: activateByLongName [longName]
Raises the workbook or graph in the current folder whose long name matches that given (cap-insensitive). This can be used to switch between output sheets and ABFGraph windows when scripts use sheet-specific commands (like "getcols") or ABFGraph-specific commands (like "m1" and "m2").
code View source on GitHub
CJF_General.c:3487 void activateByLongName(string longName)
/* ophys commandCATEGORY: AutomationUSAGE: activateByLongName [longName]Raises the workbook or graph in the current folder whose long name matches that given (cap-insensitive).This can be used to switch between output sheets and ABFGraph windows when scripts use sheet-specific commands (like "getcols") or ABFGraph-specific commands (like "m1" and "m2").*/

activateLastBookSheet

Raises the most recently updated output workbook/worksheet, even if they are in another folder. This command is intended to be used when scripting to raise the output worksheet to commands like "getcols" after an analysis is finished and the ABFGraph may be selected.
code View source on GitHub
CJF_General.c:3461 void activateLastBookSheet()
/* ophys commandCATEGORY: AutomationUSAGE: activateLastBookSheetRaises the most recently updated output workbook/worksheet, even if they are in another folder.This command is intended to be used when scripting to raise the output worksheet to commands like "getcols" after an analysis is finished and the ABFGraph may be selected.*/

CJFLoop

Usage: cjfloop [first iterator] [last iterator] "commands to run"
Example: A number sign (#) in the command will be replaced with the iterator.
Example: **WARNING
Example: cjfloop 3 5 "col(#) = col(#) * 2" double the value in columns C, D, and E
Run a command (wrapped in double-quotes) for each column in the given range.
code View source on GitHub
CJF_General.c:404 void CJFLoop(int iStart, int iEnd, string strCommandIn)
/* ophys commandCATEGORY: AutomationUSAGE: cjfloop [first iterator] [last iterator] "commands to run"Run a command (wrapped in double-quotes) for each column in the given range.EXAMPLE: A number sign (#) in the command will be replaced with the iterator.EXAMPLE: **WARNING:** If iterating columns, remember that columns indices in Origin are base 1 (index value of first column is 1). EXAMPLE: `cjfloop 3 5 "col(#) = col(#) * 2"` _double the value in columns C, D, and E_*/

ListABFs

Usage: ListABFs [-all] [SearchString_protocolName]
Usage: ListABFs [-byTag] [SearchString_TagContents]
Example: ListAbfs lists all ABFs with the same parent
Example: ListABFs -all lists all ABFs in the folder
Example: ListABFs 0201 lists all ABFs with the same parent with a protocol containing "0201"
Example: ListABFs -all 0201 lists all ABFs in the folder with a protocol containing "0201"
Example: ListABFs -byTag TGOT lists all ABFs in the folder with any tag containing the string "TGOT"
ListABFs displays a list of ABFs and protocols associated with the ABF currently loaded in the ABFGraph window. By default only ABFs with the same parent are displayed, and the SearchString, if present, is used to filter results based on protocol name. Optional user flags (-all, -byTag) can be used to change defaults to list all cells in active folder and to use search string to search within ABF tags, respectively. Flags can be used alone or togehter, and in any order. Search string if present, must always be the last paramater entered.
code View source on GitHub
CJF_Common.c:2601 void ListABFs(string strParOne="", string strParTwo="", string strParThree="")
/* ophys commandCATEGORY: AutomationUSAGE: ListABFs [-all] [SearchString_protocolName]USAGE: ListABFs [-byTag] [SearchString_TagContents]ListABFs displays a list of ABFs and protocols associated with the ABF currently loaded in the ABFGraph window.By default only ABFs with the same parent are displayed, and the SearchString, if present, is used to filter results based on protocol name.Optional user flags (-all, -byTag) can be used to change defaults to list all cells in active folder and to use search string to search within ABF tags, respectively. Flags can be used alone or togehter, and in any order. Search string if present, must always be the last paramater entered.EXAMPLE: `ListAbfs` lists all ABFs with the same parentEXAMPLE: `ListABFs -all` lists all ABFs in the folderEXAMPLE: `ListABFs 0201` lists all ABFs with the same parent with a protocol containing "0201"EXAMPLE: `ListABFs -all 0201` lists all ABFs in the folder with a protocol containing "0201"EXAMPLE: `ListABFs -byTag TGOT` lists all ABFs in the folder with any tag containing the string "TGOT"*/

RunOnCells

Example: RunOnCells "nextAbfProtocol 0110; MarkerStats;"
Modifynames, setpath, then run the given command on every parent ABF. Parent ABFs are identified from memtests located in an adjacent folder.
code View source on GitHub
CJF_General.c:4544 void RunOnCells(string command = "")
/* ophys commandCATEGORY: AutomationExample: RunOnCells "nextAbfProtocol 0110; MarkerStats;"Modifynames, setpath, then run the given command on every parent ABF.Parent ABFs are identified from memtests located in an adjacent folder.*/

Column Operations

AddX

Usage: addx [distance]
Usage: addx [distance] [column] [offset]
Example: addx 100 fills the first column with 100, 200, 300...
Example: addx 10 0 -110 fills the first column with -110, -100, -90, -80...
Replaces the first column of the selected worksheet with an ascending series of numbers. If an argument is given, each number is multiplied by the argument.
code View source on GitHub
CJF_General.c:19 void AddX(double iStep=1, int iCol=0, double iStart=0)
/* ophys commandCATEGORY: Column OperationsUSAGE: addx [distance]USAGE: addx [distance] [column] [offset]Replaces the first column of the selected worksheet with an ascending series of numbers.If an argument is given, each number is multiplied by the argument.EXAMPLE: `addx 100` _fills the first column with 100, 200, 300..._ EXAMPLE: `addx 10 0 -110` _fills the first column with -110, -100, -90, -80..._ */

ZeroOffsetMax

When run with a evenly-sampled column selected (e.g., output of ExtractData), this command adjusts the offset time so the peak value occurs at time zero.
code View source on GitHub
CJF_Graph_Tools.c:1917 void ZeroOffsetMax()
/* ophys commandCATEGORY: Column OperationsUSAGE: ZeroOffsetMaxWhen run with a evenly-sampled column selected (e.g., output of ExtractData), this command adjusts the offset time so the peak value occurs at time zero.*/

CPH

byEventCPH

Usage: byEventCPH [startTime] [stopTime]
Usage: byEventCPH [startTime] [stopTime] [sheetsMatching]
Example: bcph 5 10 - Calculates CPH for events from 5-10 minutes only for the selected byEvent sheet
Example: bcph 5 10 _byEvent - Calculates CPH for events from 5-10 minutes from events across all byEvents sheets
Calculate the CPH for amplitude (Amp) and interevent interval (ii) as described on "byEvent" sheets. Only events within the supplied time range (in minutes) are included. This command may be run multiple times for multiple time ranges.
code View source on GitHub
CJF_Stats.c:442 void byEventCPH(double dStartTime,double dEndTime, string strTag="NoTag")
/* ophys commandCATEGORY: CPHUSAGE: byEventCPH [startTime] [stopTime]USAGE: byEventCPH [startTime] [stopTime] [sheetsMatching]Calculate the CPH for amplitude (Amp) and interevent interval (ii) as described on "byEvent" sheets.Only events within the supplied time range (in minutes) are included.This command may be run multiple times for multiple time ranges.EXAMPLE: `bcph 5 10` - Calculates CPH for events from 5-10 minutes only for the selected byEvent sheetEXAMPLE: `bcph 5 10 _byEvent` - Calculates CPH for events from 5-10 minutes from events across all byEvents sheets*/

Data Linking

activateLinkSource

Activates the link target workbook.
code View source on GitHub
CJF_General.c:3242 void activateLinkSource()
/* ophys commandCATEGORY: Data LinkingActivates the link target workbook.*/

activateLinkTarget

Activates workbook indicated as linkTarget, if it exists. Alias is alt.
code View source on GitHub
CJF_General.c:3222 void activateLinkTarget()
/* ophys commandCATEGORY: Data LinkingUSAGE: ActivateLinkTargetActivates workbook indicated as linkTarget, if it exists.Alias is `alt`.*/

linkData

Usage: LinkData [column]
Example: Always link data to a workbook named LinkedData
Example: To separate different kinds of data
Example:
  • Use SetLinkTarget to indicate where new linked data will go
Example:
  • Target multiple LinkedData workbooks in different folders
Example:
  • Target multiple named worksheets in the LinkedData workbook
Example: LinkData B
Links the specified column with that previously defined using SetLinkTarget. If SetLinkTarget was not run, will link data to a LinkedData workbook / Main worksheet. Alias is ld. Recommendations:
code View source on GitHub
CJF_General.c:3099 void linkData(string strIn = "-1", string strMethod="auto")
/* ophys commandCATEGORY: Data LinkingUSAGE: LinkData [column]Links the specified column with that previously defined using `SetLinkTarget`.If `SetLinkTarget` was not run, will link data to a `LinkedData` workbook / `Main` worksheet.Alias is `ld`.**Recommendations:**EXAMPLE: Always link data to a workbook named `LinkedData`EXAMPLE: To separate different kinds of data:EXAMPLE: * Use `SetLinkTarget` to indicate where new linked data will goEXAMPLE: * Target multiple `LinkedData` workbooks in different foldersEXAMPLE: * Target multiple named worksheets in the `LinkedData` workbookEXAMPLE: `LinkData B`*/
Usage: masterLink [bookMatch] [sheetMatch] [columnMatch]
Example: masterLink "MarkerStats.Ep." "_Rave" "r1_" creates a new workbook containing linked r1 output columns of rave sheets
Create a new workbook filled with columns linked to the matching source columns. Examples
code View source on GitHub
CJF_General.c:3762 void masterLink(string bookMatch="", string sheetMatch="", string colMatch="")
/* ophys commandCATEGORY: Data LinkingUSAGE: masterLink [bookMatch] [sheetMatch] [columnMatch]Create a new workbook filled with columns linked to the matching source columns.**Examples**EXAMPLE: `masterLink "MarkerStats.Ep." "_Rave" "r1_"` _creates a new workbook containing linked `r1` output columns of rave sheets_*/

masterLinkRave

Usage: masterLinkRave [bookMatch]
Example: masterLinkRave "MarkerStats.Ep."
A simple version of masterLink just for creating workbooks of rave data. The rave range 1 column is always used. Examples
code View source on GitHub
CJF_General.c:3743 void masterLinkRave(string bookMatch="")
/* ophys commandCATEGORY: Data LinkingUSAGE: masterLinkRave [bookMatch]A simple version of `masterLink` just for creating workbooks of rave data.The rave range 1 column is always used.**Examples**EXAMPLE: `masterLinkRave "MarkerStats.Ep."`*/
Usage: pastelink [column index] [update method]
Pastes a column (set using the copyLink command) into the selected column (or one identified by an argument). If the update method argument is "manual" the link will not auto-update. Alias for this command is pl.
code View source on GitHub
CJF_General.c:3024 void pastelink(string strIn = "-1", string strMethod="auto")
/* ophys commandCATEGORY: Data LinkingUSAGE: pastelink [column index] [update method]Pastes a column (set using the `copyLink` command) into the selected column (or one identified by an argument).If the update method argument is "manual" the link will not auto-update.Alias for this command is `pl`.*/

setLinkTarget

Example: SetLinkTarget - sets the active worksheet as the target
Example: SetLinkTarget D - sets the active worksheet column D as the target
SetLinkTarget, SetLinkTarget [column] Sets the active worksheet (and optionally a column) as the target for future LinkData commands. Alias is slt.
code View source on GitHub
CJF_General.c:3198 void setLinkTarget(string strIn="-1", bool bVerbose=1)
/* ophys commandCATEGORY: Data Linking`SetLinkTarget`, `SetLinkTarget [column]`Sets the active worksheet (and optionally a column) as the target for future `LinkData` commands.Alias is `slt`.EXAMPLE: `SetLinkTarget` - sets the active worksheet as the targetEXAMPLE: `SetLinkTarget D` - sets the active worksheet column D as the target*/

Graph Axis Manipulation

autoX

Usage: autox
Usage: autox [padding]
Example: autox automatically scales X axis to fit data
Example: autox 10 fit X to data, then zoom out 10 units on each side
Automatically adjusts the limits of the X axis to fit the data. Optionally an additional padding is added.
code View source on GitHub
CJF_Graph_Tools.c:1533 void autoX(double dPad=-1)
/* ophys commandCATEGORY: Graph Axis ManipulationUSAGE: autoxUSAGE: autox [padding]Automatically adjusts the limits of the X axis to fit the data.Optionally an additional padding is added.EXAMPLE: `autox` _automatically scales X axis to fit data_ EXAMPLE: `autox 10` _fit X to data, then zoom out 10 units on each side_ */

autoY

Usage: autoy
Usage: autoy [padding]
Example: autoy automatically scales Y axis to fit data
Example: autoy 10 fit Y to data, then zoom out 10 units on each side
Automatically adjusts the limits of the Y axis to fit the data. Optionally an additional padding is added.
code View source on GitHub
CJF_Graph_Tools.c:1582 void autoY(double dPad=-1)
/* ophys commandCATEGORY: Graph Axis ManipulationUSAGE: autoyUSAGE: autoy [padding]Automatically adjusts the limits of the Y axis to fit the data.Optionally an additional padding is added.EXAMPLE: `autoy` _automatically scales Y axis to fit data_ EXAMPLE: `autoy 10` _fit Y to data, then zoom out 10 units on each side_ */

axisPan

Usage: axisPan [axis] [amount]
Example: axisPan x 5 pans the X axis to the right 5 units
Example: axisPan y -25 pans the Y axis down 25 units
Pan the axis for the selected graph layer. This is similar to holding down Z and click-draging, but you can be confident you are only panning one axis at a time.
code View source on GitHub
CJF_Graph_Tools.c:4575 void axisPan(string axisToControl="", double shiftBy=0)
/* ophys commandCATEGORY: Graph Axis ManipulationUSAGE: axisPan [axis] [amount]Pan the axis for the selected graph layer.This is similar to holding down Z and click-draging, but you can be confident you are only panning one axis at a time.EXAMPLE: `axisPan x 5` _pans the X axis to the right 5 units_ EXAMPLE: `axisPan y -25` _pans the Y axis down 25 units_ */

axisSet

Usage: axisSet [axis] [lower] [upper]
Usage: axisSet
Example: axisset x 5 15 sets horizontal axis to span from 5 to 15
Example: axisset y -25 5 sets vertical axis to span from -25 to +5
Example: axisSet shows current axis limits
Set the axis range for the selected graph layer. This is a command window alternative to double-clicking the graph to manually define axis limits.
code View source on GitHub
CJF_Graph_Tools.c:4616 void axisSet(string axisToControl="", double lower=0, double upper=0)
/* ophys commandCATEGORY: Graph Axis ManipulationUSAGE: axisSet [axis] [lower] [upper]USAGE: axisSetSet the axis range for the selected graph layer.This is a command window alternative to double-clicking the graph to manually define axis limits.EXAMPLE: `axisset x 5 15` _sets horizontal axis to span from 5 to 15_ EXAMPLE: `axisset y -25 5` _sets vertical axis to span from -25 to +5_ EXAMPLE: `axisSet` _shows current axis limits_*/

axisSpan

Usage: axisSpan [axis] [span]
Example: axisSpan x 10 zooms the X axis so it spans 10 units without changing the center
Zoom an axis (x or y) so its axis limits are at the given span amount. The center of the axis will not change. Use this after autox or autoy to ensure your data is centered (as an alternative to cscale, which won't work if there's a large shift in the data)
code View source on GitHub
CJF_Graph_Tools.c:4532 void axisSpan(string axisToControl="", double span=0)
/* ophys commandCATEGORY: Graph Axis ManipulationUSAGE: axisSpan [axis] [span]Zoom an axis (x or y) so its axis limits are at the given span amount.The center of the axis will not change.Use this after autox or autoy to ensure your data is centered (as an alternative to cscale, which won't work if there's a large shift in the data)EXAMPLE: `axisSpan x 10` _zooms the X axis so it spans 10 units without changing the center_ */

setX

Usage: setx [layer] [lower] [upper]
Manually set the horizontal axis limits for a graph of the given layer. This is an alternative to axisSet which acts on the currently selected graph layer.
code View source on GitHub
CJF_LayerTools.c:376 void setX(int targetLayer, double x1, double x2)
/* ophys commandCATEGORY: Graph Axis ManipulationUSAGE: setx [layer] [lower] [upper]Manually set the horizontal axis limits for a graph of the given layer.This is an alternative to `axisSet` which acts on the currently selected graph layer.*/

setY

Usage: sety [layer] [lower] [upper]
Manually set the vertical axis limits for a graph of the given layer. This is an alternative to axisSet which acts on the currently selected graph layer.
code View source on GitHub
CJF_LayerTools.c:397 void setY(int i, double x1, double x2)
/* ophys commandCATEGORY: Graph Axis ManipulationUSAGE: sety [layer] [lower] [upper]Manually set the vertical axis limits for a graph of the given layer.This is an alternative to `axisSet` which acts on the currently selected graph layer.*/

Graph Markup

hline

Usage: hline [value on the vertical axis]
Draw a horizontal line at a given point on the vertical axis
code View source on GitHub
CJF_LayerTools.c:429 void hline(double i, double dStart_or_color = -1, double dEnd = -1)
/* ophys commandCATEGORY: Graph MarkupUSAGE: hline [value on the vertical axis]Draw a horizontal line at a given point on the vertical axis*/

hmark

Usage: hmark [y] [x1] [x2]
Example: hmark 50 10 15 Draw a horizontal line between 10 and 15 minutes placed at Y=50
Draw a horizontal line between two X positions at a specified Y location
code View source on GitHub
CJF_LayerTools.c:477 void hmark(double y, double xStart, double xEnd)
/* ophys commandCATEGORY: Graph MarkupUSAGE: hmark [y] [x1] [x2]Draw a horizontal line between two X positions at a specified Y locationEXAMPLE: `hmark 50 10 15` _Draw a horizontal line between 10 and 15 minutes placed at Y=50_*/

hSpan

Usage: hSpan [y1] [y2]
Usage: hSpan [y1] [y2] [colorIndex]
Example: hspan 20 25 shades the region between Y=20 and Y=25
Example: hspan 20 25 3 shades the region between Y=20 and Y=25 using a different color
Add a horizontally-infinite rectangle to shade the range between two vertical positions on the active graph.
code View source on GitHub
CJF_LayerTools.c:594 void hSpan(double y1, double y2, int colorIndex = 0, int transparency = 80)
/* ophys commandCATEGORY: Graph MarkupUSAGE: hSpan [y1] [y2]USAGE: hSpan [y1] [y2] [colorIndex]Add a horizontally-infinite rectangle to shade the range between two vertical positions on the active graph.EXAMPLE: `hspan 20 25` _shades the region between Y=20 and Y=25_EXAMPLE: `hspan 20 25 3` _shades the region between Y=20 and Y=25 using a different color_*/

styleGraph

Styles the selected graph using settings typical for our laboratory. This command changes axis tick label size, axis tick length, axis line width, axis title font size, legend font size, symbol size, and sets display scaling to fixed at 1.
code View source on GitHub
CJF_General.c:4341 void styleGraph()
/* ophys commandCATEGORY: Graph MarkupStyles the selected graph using settings typical for our laboratory.This command changes axis tick label size, axis tick length, axis line width, axis title font size, legend font size, symbol size, and sets display scaling to fixed at 1.*/

styleGraphs

Runs styleGraph on every graph of the active page
code View source on GitHub
CJF_General.c:4325 void styleGraphs()
/* ophys commandCATEGORY: Graph MarkupRuns `styleGraph` on every graph of the active page*/

vline

Usage: vline [value on the horizontal axis]
Draw a vertical line at a given point on the horizontal axis
code View source on GitHub
CJF_LayerTools.c:521 void vline(double i, double dStart_or_color = -1, double dEnd = -1)
/* ophys commandCATEGORY: Graph MarkupUSAGE: vline [value on the horizontal axis]Draw a vertical line at a given point on the horizontal axis*/

vlines

Usage: vlines [x1] [x2] [x3]...
Example: vlines 7 9 12 14
Draw an arbitrary number of vertical lines at the given X positions Example:
code View source on GitHub
CJF_LayerTools.c:502 void vlines(double x1 = NaN, double x2 = NaN, double x3 = NaN, double x4 = NaN, double x5 = NaN, double x6 = NaN, double x7 = NaN, double x8 = NaN, double x9 = NaN, double x10 = NaN)
/* ophys commandCATEGORY: Graph MarkupUSAGE: vlines [x1] [x2] [x3]...Draw an arbitrary number of vertical lines at the given X positions**Example:**EXAMPLE: `vlines 7 9 12 14`*/

vmark

Usage: vmark [x] [y1] [y2]
Example: vmark 0 -70 40 Draw a vertical line between -70 and +40 placed at X=0
Draw a vertical line between two Y positions at a specified X location
code View source on GitHub
CJF_LayerTools.c:489 void vmark(double x, double yStart, double yEnd)
/* ophys commandCATEGORY: Graph MarkupUSAGE: vmark [x] [y1] [y2]Draw a vertical line between two Y positions at a specified X locationEXAMPLE: `vmark 0 -70 40` _Draw a vertical line between -70 and +40 placed at X=0_*/

vSpan

Usage: vSpan [x1] [x2]
Usage: vSpan [x1] [x2] [colorIndex]
Example: vSpan 5 10 shades the region between X=5 and X=10
Example: vSpan 5 10 3 shades the region between X=5 and X=10 using a different color
Add a vertically-infinite rectangle to shade the range between two horizontal positions on the active graph.
code View source on GitHub
CJF_LayerTools.c:632 void vSpan(double x1, double x2, int colorIndex = 0, int transparency = 80)
/* ophys commandCATEGORY: Graph MarkupUSAGE: vSpan [x1] [x2]USAGE: vSpan [x1] [x2] [colorIndex]Add a vertically-infinite rectangle to shade the range between two horizontal positions on the active graph.EXAMPLE: `vSpan 5 10` _shades the region between X=5 and X=10_EXAMPLE: `vSpan 5 10 3` _shades the region between X=5 and X=10 using a different color_*/

Graph Scaling

cent

Modify properties of every graph layer in the selected graph window to use centimeter units. inch is a similar command.
code View source on GitHub
CJF_LayerTools.c:182 void cent()
/* ophys commandCATEGORY: Graph ScalingUSAGE: centModify properties of every graph layer in the selected graph window to use centimeter units.`inch` is a similar command.*/

cscale

Usage: cscale [laer to copy from] [layer to copy to]
Example: cscale 1 2; copies the axis limits of layer 1 and pastes them onto layer 2
When run with a graph object, this command copies the scale dimensions (axis limits) from one layer and pastes them onto another layer. Similar to CSize.
code View source on GitHub
CJF_LayerTools.c:126 void cscale(int sourceLayer, int targetLayer)
/* ophys commandCATEGORY: Graph ScalingUSAGE: cscale [laer to copy from] [layer to copy to]When run with a graph object, this command copies the scale dimensions (axis limits) from one layer and pastes them onto another layer.Similar to `CSize`.EXAMPLE: `cscale 1 2;` _copies the axis limits of layer 1 and pastes them onto layer 2_*/

csize

Usage: csize [laer to copy from] [layer to copy to]
Example: csize 1 2; copies the dimensions of layer 1 and pastes them onto layer 2
When run with a graph object, this command copies the dimensions (size of the graph on the page) from one layer and pastes them onto another layer. Similar to CScale.
code View source on GitHub
CJF_LayerTools.c:266 void csize(int sourceLayer, int targetLayer)
/* ophys commandCATEGORY: Graph ScalingUSAGE: csize [laer to copy from] [layer to copy to]When run with a graph object, this command copies the dimensions (size of the graph on the page) from one layer and pastes them onto another layer.Similar to `CScale`.EXAMPLE: `csize 1 2;` _copies the dimensions of layer 1 and pastes them onto layer 2_*/

inch

Modify properties of every graph layer in the selected graph window to use inch units. cent is a similar command.
code View source on GitHub
CJF_LayerTools.c:164 void inch()
/* ophys commandCATEGORY: Graph ScalingUSAGE: inchModify properties of every graph layer in the selected graph window to use inch units.`cent` is a similar command.*/

scale

Usage: scale [layer]
Display information (namely axis limits) about the given graph layer. This is an alternative to axisSet which displays the axis limits of the currently selected graph layer when it is called without arguments.
code View source on GitHub
CJF_LayerTools.c:101 void scale(int i)
/* ophys commandCATEGORY: Graph ScalingUSAGE: scale [layer]Display information (namely axis limits) about the given graph layer.This is an alternative to `axisSet` which displays the axis limits of the currently selected graph layer when it is called without arguments.*/

scaling

Usage: scaling off
Usage: scaling on
Example: scaling off - no effective scaling. Final point sizes of fonts and other graph objects, relative to the graph page (or when printed), are exactly as set in Origin dialogs.
Example: scaling on - automatially scale point size for fonts and other graph objects with the size of the layer that contains them.
Controls whether point size of fonts and other graph elements scales automatically with the size of the graph layer that contains them.
code View source on GitHub
CJF_Graph_Tools.c:1243 void scaling(string strToggle, double dScaleFactor=-1.0)
/* ophys commandCATEGORY: Graph ScalingUSAGE: scaling offUSAGE: scaling onControls whether point size of fonts and other graph elements scales automatically with the size of the graph layer that contains them.EXAMPLE: `scaling off` - no effective scaling. Final point sizes of fonts and other graph objects, relative to the graph page (or when printed), are exactly as set in Origin dialogs.EXAMPLE: `scaling on` - automatially scale point size for fonts and other graph objects with the size of the layer that contains them.*/

Image Analysis

dffSheet

Usage: dffSheet [startTime] [endTime]
Usage: dffSheet [startTime] [endTime] [xColumnIndex]
Example: dffSheet 7 9.5 applies dF/F using the baseline range (7-9.5) from the first column
Example: dffSheet 7 9.5 1 applies dF/F using the baseline range (7-9.5) from the second column
Simultaneously apply baseline subtraction and normalization to every Y column in the workbook convert fluorescence intensity (F) to dF/F. This command is an alternative to ntrSheet and btrSheet which cannot be combined and also do not support unevenly-spaced X data.
code View source on GitHub
CJF_Video.c:20 void dffSheet(double dTime1, double dTime2, int iXColumnIndex = 0)
/* ophys commandCATEGORY: Image AnalysisUSAGE: dffSheet [startTime] [endTime]USAGE: dffSheet [startTime] [endTime] [xColumnIndex]Simultaneously apply baseline subtraction and normalization to every Y column in the workbook convert fluorescence intensity (F) to dF/F.This command is an alternative to `ntrSheet` and `btrSheet` which cannot be combined and also do not support unevenly-spaced X data.EXAMPLE: `dffSheet 7 9.5` _applies dF/F using the baseline range (7-9.5) from the first column_EXAMPLE: `dffSheet 7 9.5 1` _applies dF/F using the baseline range (7-9.5) from the second column_*/

LoadCsvWithMetadata

Usage: LoadLinescanCSV
Usage: LoadLinescanCSV [csv path]
Usage: LoadLinescanCSV [csv path] [book] [sheet]
This command loads a CSV file as a worksheet and populates its metadata from an adjacent JSON file. The JSON file must have the same base filename but end with .csv.json for it to be loaded automatically.
code View source on GitHub
CJF_Image.c:48 void LoadCsvWithMetadata(string strCsvFilePath = "", string strBookName = "", string strSheetName = "")
/* ophys commandCATEGORY: Image AnalysisUSAGE: LoadLinescanCSVUSAGE: LoadLinescanCSV [csv path]USAGE: LoadLinescanCSV [csv path] [book] [sheet]This command loads a CSV file as a worksheet and populates its metadata from an adjacent JSON file.The JSON file must have the same base filename but end with `.csv.json` for it to be loaded automatically.*/

LoadLinescanCSV

Usage: LoadLinescanCSV
Usage: LoadLinescanCSV [path]
Usage: LoadLinescanCSV [path] [book] [sheet]
Example: LoadLinescanCSV launches CSV file select dialog
Example: `LoadLinescanCSV X
Example: `LoadLinescanCSV X
Load a CSV file created by ScanAGator. If the CSV has an adjacent JSON file, load its contents as metadata for the new worksheet. Additional arguments
code View source on GitHub
CJF_Image.c:14 void LoadLinescanCSV(string strFilePath = "", string strBookName = "Linescans", string strSheetName = "")
/* ophys commandCATEGORY: Image AnalysisUSAGE: LoadLinescanCSVUSAGE: LoadLinescanCSV [path]USAGE: LoadLinescanCSV [path] [book] [sheet]Load a CSV file created by ScanAGator.If the CSV has an adjacent JSON file, load its contents as metadata for the new worksheet.Additional argumentsEXAMPLE: `LoadLinescanCSV` launches CSV file select dialogEXAMPLE: `LoadLinescanCSV X:/example/scan.csv` loads a specific CSV fileEXAMPLE: `LoadLinescanCSV X:/example/scan.csv Proximal Cell3` loads CSV into a target book/sheet*/

RoiLoad

Import XLS/CSV files containing ROI (region of interest) results created by ImageJ into Origin. Although features are frequently added and changed to support evolving types of analysis command, running RoiLoad without arguments will always tell you what ROI analysis commands are available and how to use them.
code View source on GitHub
CJF_Video.c:50 void RoiLoad()
/* ophys commandCATEGORY: Image AnalysisUSAGE: RoiLoadImport XLS/CSV files containing ROI (region of interest) results created by ImageJ into Origin.Although features are frequently added and changed to support evolving types of analysis command, running `RoiLoad` without arguments will always tell you what ROI analysis commands are available and how to use them.*/

Internal Tools

cjfhelp

Launch oPhys command documentation in a web browser
code View source on GitHub
CJF_Internal.c:13 void cjfhelp(string strCommand="")
/* ophys commandCATEGORY: Internal ToolsUSAGE: cjfHelpLaunch oPhys command documentation in a web browser*/

fixABFpaths

If ABF files are moved then setpath wks may fail because the worksheet remembers the old file path. The FixAbfPaths command identifies all worksheets in the project with broken file paths and fixes them by locating the ABF file and replacing the file path in the worksheet. Contact Jason if this command fails to fix all paths in an Origin project.
code View source on GitHub
CJF_SQL.c:30 void fixABFpaths()
/* ophys commandCATEGORY: Internal ToolsUSAGE: FixAbfPathsIf ABF files are moved then `setpath wks` may fail because the worksheet remembers the old file path.The `FixAbfPaths` command identifies all worksheets in the project with broken file paths and fixes them by locating the ABF file and replacing the file path in the worksheet.Contact Jason if this command fails to fix all paths in an Origin project.*/

Hotmods

Hotmods are LabTalk variables that change program behavior when set to 1 (enabled) or 0 (disabled).

  • deltaTTL - Get new ttl times every sweep (useful for variable inter pulse interval protocols).
  • BasePerTTL - Baseline subtract each evoked signal from a period just before the TTL.
  • bGetLastEvent - Controls whether to get first or last event per sweep from byEvent sheets.
  • bIgnoreByEvent - Treat byEvent sheets like normal sheets.
  • R2Out - Output whole-cell capacitive transient fits (AdjR2) to extra column on memtest sheets.
  • HotMod04 - Show step command current on byEvent sheets when AP mode is enabled.
  • biphasicEvents - Reduce event detection false positives when traces have positive and negative events.
  • HotMod03 - Report AP amplitude as peak-to-threshold voltage and AP threshold time the start time on byEvent sheets.
  • NoiseThreshold - Blanks sweeps where 60hz noise is above the specified threshold.
code View source on GitHub
CJF_General.c:4408 void Hotmods()
/* ophys commandCATEGORY: Internal ToolsHotmods are LabTalk variables that change program behavior when set to 1 (enabled) or 0 (disabled).  * `deltaTTL` - Get new ttl times every sweep (useful for variable inter pulse interval protocols).  * `BasePerTTL` - Baseline subtract each evoked signal from a period just before the TTL.  * `bGetLastEvent` - Controls whether to get first or last event per sweep from byEvent sheets.  * `bIgnoreByEvent` - Treat byEvent sheets like normal sheets.  * `R2Out` - Output whole-cell capacitive transient fits (AdjR2) to extra column on memtest sheets.  * `HotMod04` - Show step command current on byEvent sheets when AP mode is enabled.  * `biphasicEvents` - Reduce event detection false positives when traces have positive and negative events.  * `HotMod03` - Report AP amplitude as peak-to-threshold voltage and AP threshold time the start time on byEvent sheets.  * `NoiseThreshold` - Blanks sweeps where 60hz noise is above the specified threshold.*/

webCell

Launch a web browser to the individual cell page for the cell described by the active worksheet or ABFGraph
code View source on GitHub
CJF_Internal.c:35 void webCell()
/* ophys commandCATEGORY: Internal ToolsUSAGE: webCellLaunch a web browser to the individual cell page for the cell described by the active worksheet or ABFGraph*/

webExp

Launch a web browser to the top-level experiment page for the cell described by the active worksheet or ABFGraph
code View source on GitHub
CJF_Internal.c:24 void webExp()
/* ophys commandCATEGORY: Internal ToolsUSAGE: webExpLaunch a web browser to the top-level experiment page for the cell described by the active worksheet or ABFGraph*/

Origin Project Operations

dABF

Delete every ABFBook in the entire project to reduce the OPJ file size. Settings in the ABFGraph are preserved, and setpath wks can be used to re-load the ABF from any output sheet.
code View source on GitHub
CJF_Graph_Tools.c:3882 void dABF()
/* ophys commandCATEGORY: Origin Project OperationsUSAGE: dABFDelete every ABFBook in the entire project to reduce the OPJ file size.Settings in the ABFGraph are preserved, and `setpath wks` can be used to re-load the ABF from any output sheet.*/

FixAppend

Fixes ABFGraph and ABFBook long names. Run this after appending an OPJ into the current project.
code View source on GitHub
CJF_General.c:3835 void FixAppend()
/* ophys commandCATEGORY: Origin Project OperationsUSAGE: FixAppendFixes ABFGraph and ABFBook long names.Run this after appending an OPJ into the current project.*/

Output Sheet Operations

extractSweeps

Usage: ExtractSweeps
Usage: ExtractSweeps [first sweep] [last sweep]
Runs extractData on multiple sweeps. If the first and last sweeps are both unspecificed, this will get last 10 sweeps in file (orevery sweep if fewer than 10 sweeps exist). To extract all sweeps, use the ExtractAllSweeps command.
code View source on GitHub
CJF_Graph_Tools.c:1885 void extractSweeps(int iStart=-1, int iEnd=-1)
/* ophys commandCATEGORY: Output Sheet OperationsUSAGE: ExtractSweepsUSAGE: ExtractSweeps [first sweep] [last sweep]Runs `extractData` on multiple sweeps.If the first and last sweeps are both unspecificed, this will get last 10 sweeps in file (orevery sweep if fewer than 10 sweeps exist).To extract all sweeps, use the `ExtractAllSweeps` command._Note: It is generally not a good idea to store tons of extracted data in an OPJ, espeically without decimation._*/

FreqInBinHist

Usage: FreqInBinHist
Usage: FreqInBinHist [bin size]
Example: FreqInBinHist bins AP times using the default bin size (5 seconds)
Example: FreqInBinHist 1 bins AP times using 1 second bins
Converts every Y column of a summary sheet into a histogram using a given bin size. To generate freuqency histograms from AP event times, run event detection and generate AP byEvent sheets, then use GetCols to get the event times (in file), then run this command on the summary sheet. The optional argument defines the bin size (in X units), with smaller numbers resulting in histograms with more bars.
code View source on GitHub
CJF_General.c:4247 void FreqInBinHist(float fBinSize=5, float maxTime=60)
/* ophys commandCATEGORY: Output Sheet OperationsUSAGE: FreqInBinHistUSAGE: FreqInBinHist [bin size]Converts every Y column of a summary sheet into a histogram using a given bin size.To generate freuqency histograms from AP event times, run event detection and generate AP byEvent sheets, then use GetCols to get the event times (in file), then run this command on the summary sheet.The optional argument defines the bin size (in X units), with smaller numbers resulting in histograms with more bars.EXAMPLE: `FreqInBinHist` _bins AP times using the default bin size (5 seconds)_EXAMPLE: `FreqInBinHist 1` _bins AP times using 1 second bins_*/

getInactivation

Usage: getInactivation
Usage: getInactivation [sweeps] [minimum percent]
Calculate actional potential inactivation by sweep. Inactivation is the time between the last action potential and the second marker. Run on an active byEvent sheet and the output will be created as a new worksheet. For sweeps without APs inactivation is 0% or 100% if it occurs before or after the first sweep containing an AP. Markers must be placed around the step. Use a command like: setmarks epoch 1 to place markers around the step.
code View source on GitHub
CJF_General.c:3876 void getInactivation(double dMinimumFraction = .1)
/* ophys commandCATEGORY: Output Sheet OperationsUSAGE: getInactivationUSAGE: getInactivation [sweeps] [minimum percent]Calculate actional potential inactivation by sweep.Inactivation is the time between the last action potential and the second marker.Run on an active byEvent sheet and the output will be created as a new worksheet.For sweeps without APs inactivation is 0% or 100% if it occursbefore or after the first sweep containing an AP.Markers must be placed around the step.Use a command like: `setmarks epoch 1` to place markers around the step.*/

keepFirstEventPerSweep

Run on a byEvent output sheet to delete every row that isn't the first event per sweep. This can be used to isolate byEvent parameters for the first AP in every sweep.
code View source on GitHub
CJF_Mini.c:3416 void keepFirstEventPerSweep()
/* ophys commandCATEGORY: Output Sheet OperationsUSAGE: KeepFirstEventPerSweepRun on a byEvent output sheet to delete every row that isn't the first event per sweep.This can be used to isolate byEvent parameters for the first AP in every sweep.*/

renameByABF

Run this on an output sheet (e.g., a memtest output sheet) and the sheet will be renamed by its original ABF file name. This is the traditional naming system, and this command can reverse the functionality of renameByABF.
code View source on GitHub
CJF_General.c:2705 void renameByABF()
/* ophys commandCATEGORY: Output Sheet OperationsUSAGE: renameByABFRun this on an output sheet (e.g., a memtest output sheet) and the sheet will be renamed by its original ABF file name.This is the traditional naming system, and this command can reverse the functionality of `renameByABF`.*/

renameByParent

Run this on an output sheet (e.g., a memtest output sheet) and the sheet will be renamed by its parent ABF. This makes it easy to compare data from multiple ABFs which all came from the same cell. Reverse this functionality with renameByABF. Run renameByABF to do the opposite. You can rapidly convert your project to a parent-named project with runonsheets _MT renameByParent.
code View source on GitHub
CJF_General.c:2694 void renameByParent()
/* ophys commandCATEGORY: Output Sheet OperationsUSAGE: renameByParentRun this on an output sheet (e.g., a memtest output sheet) and the sheet will be renamed by its _parent_ ABF.This makes it easy to compare data from multiple ABFs which all came from the same cell.Reverse this functionality with `renameByABF`.Run `renameByABF` to do the opposite.You can rapidly convert your project to a parent-named project with `runonsheets _MT renameByParent`.*/

ShowAbfPath

Display the path for the ABF analyzed in the active worksheet
code View source on GitHub
CJF_General.c:2858 void ShowAbfPath()
/* ophys commandCATEGORY: Output Sheet OperationsUSAGE: ShowAbfPathDisplay the path for the ABF analyzed in the active worksheet*/

ShowAbfPaths

Display the path for every ABF analyzed across all sheets of the active workbook
code View source on GitHub
CJF_General.c:2879 void ShowAbfPaths()
/* ophys commandCATEGORY: Output Sheet OperationsUSAGE: ShowAbfPathsDisplay the path for every ABF analyzed across all sheets of the active workbook*/

Statistics

ks2boot

Usage: ks2boot [columnIndexA] [columnIndexB]
Example: ks2boot 0 1 1000 Run the KS test (on columns 0 and 1) 1000 times
Example: ks2boot 0 1 1000 5 Run the KS test (on columns 0 and 1) 1000 times with a sample size sufficient to show a 5 unit difference
Run a bootstrapped two-sample Kolmogorov-Smirnov distribution test (KS test) on data from two columns. CPH data can be created using ByEventCPH.
code View source on GitHub
CJF_KS2.c:10 void ks2boot(string strIn1, string strIn2, int iNumBootStrapTrials=1000, double meanDiff = -1, double alpha=0.05, double power=0.80)
/* ophys commandCATEGORY: StatisticsUSAGE: ks2boot [columnIndexA] [columnIndexB]Run a bootstrapped two-sample Kolmogorov-Smirnov distribution test (KS test) on data from two columns.CPH data can be created using `ByEventCPH`.EXAMPLE: `ks2boot 0 1 1000` _Run the KS test (on columns 0 and 1) 1000 times_EXAMPLE: `ks2boot 0 1 1000 5` _Run the KS test (on columns 0 and 1) 1000 times with a sample size sufficient to show a 5 unit difference_*/

sendToANOVA

Usage: sendToANOVA [group name]
Run this on a summary sheet (once per group) to create a workbook suitable for using Origin's ANOVA tools. After running, manually rename column A to "group" and label columns B and C to reflect the metrics being compared. Then click Statistics, Anova, Two-Way Repeated Measures ANOVA, and point the input data fields to the 4 columns of the ANOVA workbook.
code View source on GitHub
CJF_Stats.c:901 void sendToANOVA(string strFactorA="FactorA")
/* ophys commandCATEGORY: StatisticsUSAGE: sendToANOVA [group name]Run this on a summary sheet (once per group) to create a workbook suitable for using Origin's ANOVA tools.After running, manually rename column A to "group" and label columns B and C to reflect the metrics being compared.Then click Statistics, Anova, Two-Way Repeated Measures ANOVA, and point the input data fields to the 4 columns of the ANOVA workbook.*/

std1

Usage: std1 [column]
Tell Origin that you intend to use a specific column of the selected worksheet in a ttest calculation later when tt2 is run. This is an alternative to tdata designed for situations where the source columns are in two different worksheets.
code View source on GitHub
CJF_Stats.c:1036 void std1(string strIn = "-1")
/* ophys commandCATEGORY: StatisticsUSAGE: std1 [column]Tell Origin that you intend to use a specific column of the selected worksheet in a ttest calculation later when `tt2` is run.This is an alternative to `tdata` designed for situations where the source columns are in two different worksheets.*/

std2

Usage: std2 [column]
Tell Origin that you intend to use a specific column of the selected worksheet in a ttest calculation later when tt2 is run. This is an alternative to tdata designed for situations where the source columns are in two different worksheets.
code View source on GitHub
CJF_Stats.c:1056 void std2(string strIn = "-1")
/* ophys commandCATEGORY: StatisticsUSAGE: std2 [column]Tell Origin that you intend to use a specific column of the selected worksheet in a ttest calculation later when `tt2` is run.This is an alternative to `tdata` designed for situations where the source columns are in two different worksheets.*/

tData

Usage: tdata [column] [column]
Usage: tdata [column] [column] paired
Example: tdata C D runs an unpaired t-test on columns C and D
Example: tdata E F paired runs a paired t-test on columns E and F
Displays t-test information comparing two columns in the same worksheet. To compare columns from different worksheets use std1, std2, and tt2.
code View source on GitHub
CJF_Stats.c:999 void tData(string strIn1, string strIn2, string strPair="unpaired")
/* ophys commandCATEGORY: StatisticsUSAGE: tdata [column] [column]USAGE: tdata [column] [column] pairedEXAMPLE: `tdata C D` runs an unpaired t-test on columns C and DEXAMPLE: `tdata E F paired` runs a paired t-test on columns E and FDisplays t-test information comparing two columns in the same worksheet.To compare columns from different worksheets use `std1`, `std2`, and `tt2`.*/

tt2

Usage: tt2
Usage: tt2 [pair type]
Example: tt2 runs an unpaired two-sample T-test
Example: tt2 paired runs a paired two-sample T-test
Display two-sample T-test results comparing of data from columns previously defined by std1 and std2. Pair type can be unpaired (default) or paired. A variance check is performed when this command is run, and a little arrow -> points to the P-value that should be used (Welch's correction if variance is high).
code View source on GitHub
CJF_Stats.c:1109 void tt2(string strPair="unpaired")
/* ophys commandCATEGORY: StatisticsUSAGE: tt2USAGE: tt2 [pair type]Display two-sample T-test results comparing of data from columns previously defined by `std1` and `std2`.Pair type can be `unpaired` (default) or `paired`.A variance check is performed when this command is run, and a little arrow `->` points to the P-value that should be used (Welch's correction if variance is high).EXAMPLE: `tt2` runs an unpaired two-sample T-testEXAMPLE: `tt2 paired` runs a paired two-sample T-test*/

tt2Sets

Usage: tt2sets [firstColumnDatasetA] [firstColumnDatasetB] [columnsPerDataset]
Run a series of t-tests on pairs of column data.
code View source on GitHub
CJF_Stats.c:1292 void tt2Sets(string strBeginSet1, string strBeginSet2, int iNumSets, string strPair="unpaired")
/* ophys commandCATEGORY: StatisticsUSAGE: tt2sets [firstColumnDatasetA] [firstColumnDatasetB] [columnsPerDataset]Run a series of t-tests on pairs of column data.*/

vStats

Usage: vStats [column]
Usage: vStats [column] [start] [end]
Usage: vStats [column] [start] [end] asX
Example: vStats c calculate statistics for column C
Example: vStats c 5 10 run stats on column C from rows 6-11
Example: vStats c 5 10 asX run stats on column C rows where where X is 6-11
Calculate population statistics for a column. If start and end rows are given, only report stats for the given column between those rows. Start and end rows may be defined by index (row number plus one, default) or by x value. Values can later be accessed from the command window using variables like vStats.mean. This may be useful in combination with range stats (see rng or letters) to run commands like rC = rC / vStats.mean.
code View source on GitHub
CJF_Stats.c:35 void vStats(string strIn="-1", double dStart=0, double dEnd=-1.0, string strMode="asIndex")
/* ophys commandCATEGORY: StatisticsUSAGE: vStats [column]USAGE: vStats [column] [start] [end]USAGE: vStats [column] [start] [end] asXCalculate population statistics for a column.If start and end rows are given, only report stats for the given column between those rows.Start and end rows may be defined by index (row number plus one, default) or by x value.Values can later be accessed from the command window using variables like `vStats.mean`.This may be useful in combination with range stats (see `rng` or `letters`) to run commands like `rC = rC / vStats.mean`.EXAMPLE: `vStats c` _calculate statistics for column C_EXAMPLE: `vStats c 5 10` _run stats on column C from rows 6-11_EXAMPLE: `vStats c 5 10 asX` _run stats on column C rows where where X is 6-11_*/

Summary and Rave Sheets

BaseToRange

Usage: btr [start] [end], btr [start] [end] [asX]
Example: btr 3 4 _on a summary sheet
Example: btr 3 4 asIndex _on a summary sheet
Baseline subtract data to the mean of a range. If run on a summary sheet this command will act on all columns. If run on a regular sheet it will act on a single (specified) column. The ranges used can be defined by row numbers (asIndex) or times (asX, default). This command is similar to NormToRange. An alias for BaseToRange is btr.
code View source on GitHub
CJF_SummarySheets.c:287 void BaseToRange(string parOne="", string parTwo="", string parThree="")
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: btr [start] [end], btr [start] [end] [asX]Baseline subtract data to the mean of a range.If run on a summary sheet this command will act on all columns.If run on a regular sheet it will act on a single (specified) column.The ranges used can be defined by row numbers (asIndex) or times (asX, default).This command is similar to NormToRange.An alias for `BaseToRange` is `btr`.EXAMPLE: `btr 3 4` _on a summary sheet: baseline subtracts all columns to minutes 3-4_EXAMPLE: `btr 3 4 asIndex` _on a summary sheet: baseline subtracts all columns to rows 3-4_*/

BaseToRangeSlope

Usage: BaseToRangeSlope [start] [end]
Example: BaseToRangeSlope 5 10 - subtracts the baseline (linear fit of data where X is 5-10) from every Y column
Use SlopeCorrect instead. Subtract a sloping baseline from every Y column of the active worksheet. The baseline is calculated as a linear regression fitted to the X/Y pairs within the given range (X values, inclusive).
code View source on GitHub
CJF_General.c:3589 void BaseToRangeSlope(double dStart, double dEnd)
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: BaseToRangeSlope [start] [end]WARNING: This command is not recommended for summary sheets.Use `SlopeCorrect` instead.Subtract a sloping baseline from every Y column of the active worksheet.The baseline is calculated as a linear regression fitted to the X/Y pairs within the given range (X values, inclusive).EXAMPLE: `BaseToRangeSlope 5 10` - subtracts the baseline (linear fit of data where X is 5-10) from every Y column*/

GetAllCols

Usage: getAllCols
Usage: getAllCols [custom match]
Example: getAllCols
Example: getAllCols ROI
Run GetCols on every Y column of the active worksheet. The sheet match is whatever comes after the last underscore (_MT, _EVN, _mStats, etc) unless it is explicitly given
code View source on GitHub
CJF_General.c:1507 void GetAllCols(string sSheetNameMatch="")
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: getAllColsUSAGE: getAllCols [custom match]Run `GetCols` on every Y column of the active worksheet.The sheet match is whatever comes after the last underscore (_MT, _EVN, _mStats, etc) unless it is explicitly givenEXAMPLE: `getAllCols`EXAMPLE: `getAllCols ROI`*/

GetCells

Usage: getCells
Usage: getCells mean
Usage: getCells max
Usage: getCells min
Usage: getCells first
This command creates a summary sheet with the mean (or max, min, or first) column value from every column of every cell. The output becomes one row per cell. This command accomplishes what used to be done using getcols and raved/rave with the limits set from 0 to infinity. A "group" column is automatically created to facilitate use of Origin's grouping tools.
code View source on GitHub
CJF_General.c:3338 void GetCells(string measurementType = "")
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: getCellsUSAGE: getCells meanUSAGE: getCells maxUSAGE: getCells minUSAGE: getCells firstThis command creates a summary sheet with the mean (or max, min, or first) column value from every column of every cell.The output becomes one row per cell.This command accomplishes what used to be done using getcols and raved/rave with the limits set from 0 to infinity.A "group" column is automatically created to facilitate use of Origin's grouping tools.*/

GetCols

Usage: getCols [column] [sheets matching] [output sheet]
Example: getcols Ih gets "Ih" column from every worksheet with an underscore in its name
Example: getcols Ih _MT gets "Ih" column from every worksheet matching "MT"
Example: getcols Ih _MT S.Ih gets "Ih" column from every worksheet matching "MT" and names the output sheet "S.Ih"
Example: getcols 3 _MT S.Rm gets the 4th column (numbers start at 0) from every worksheet matching "MT" and names the output sheet "S.Rm"
Example: getcols 3 _MT S.Rm MemTests runs on every workbook with "MemTests" in its name
This command cycles through every sheet in a workbook (matching the search string) and locates the specified column, then copies all of that column's data into a single output sheet (called a summary sheet). Summary sheet names start with S.

GetCols on byEvent sheets: GetCols has a different behavior when run on byEvent sheets. Instead of returning every value in a column, it only returns the first value for each sweep. This is desirable for some analyses (e.g., repeated AP ramps) but undesirable for others (e.g., CPH). To disable this alternate behavior and force getcols to perform normally on byEvent sheets, run bIgnoreByEvent = 1 in the command window.

GetCols across multiple workbooks: If a 4th argument is given, getcols is not restricted to the selected workbook. The 4th argument is a search string, and all workbooks in the current folder containing this string will be searched. It is recommended that a new workbook be created just to house getcols commands of this type. Getcols then never needs to be run on individual workbooks. However, in most cases it is better to use LinkData instead of creating multi-workbook getcols commands.
code View source on GitHub
CJF_GetCols.c:27 void GetCols(string strIn="", string strTag="", string strTarget="", string strFromBooks="ActiveBookOnly")
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: getCols [column] [sheets matching] [output sheet]This command cycles through every sheet in a workbook (matching the search string) and locates the specified column, then copies all of that column's data into a single output sheet (called a summary sheet).Summary sheet names start with S.**GetCols on byEvent sheets:**GetCols has a different behavior when run on byEvent sheets.Instead of returning every value in a column, it only returns the first value for each sweep.This is desirable for some analyses (e.g., repeated AP ramps) but undesirable for others (e.g., CPH).To disable this alternate behavior and force getcols to perform normally on byEvent sheets, run `bIgnoreByEvent = 1` in the command window.**GetCols across multiple workbooks:**If a 4th argument is given, getcols is not restricted to the selected workbook.The 4th argument is a search string, and all workbooks in the current folder containing this string will be searched.It is recommended that a new workbook be created just to house getcols commands of this type.Getcols then never needs to be run on individual workbooks.However, in most cases it is better to use `LinkData` instead of creating multi-workbook getcols commands.EXAMPLE: `getcols Ih` _gets "Ih" column from every worksheet with an underscore in its name_EXAMPLE: `getcols Ih _MT` _gets "Ih" column from every worksheet matching "MT"_EXAMPLE: `getcols Ih _MT S.Ih` _gets "Ih" column from every worksheet matching "MT" and names the output sheet "S.Ih"_EXAMPLE: `getcols 3 _MT S.Rm` _gets the 4th column (numbers start at 0) from every worksheet matching "MT" and names the output sheet "S.Rm"_EXAMPLE: `getcols 3 _MT S.Rm MemTests` _runs on every workbook with "MemTests" in its name_*/

GetColsXY

Usage: GetColsXY [X column index] [Y column index] [sheet match] [output sheet name]
Example: GetColsXY 1 2 _MT S.IhVsRa Creates a summary sheet with two columns from every memtest sheet
Example: GetColsXY 24 2 _EVN S.GainXY Creates an AP gain summary sheet with command current and AP count
Create a new worksheet containing pairs of X/Y columns sourced from each worksheet matching the given search string.
code View source on GitHub
CJF_General.c:1125 void GetColsXY(int iColX, int iColY, string strSourceName, string strTarget)
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: GetColsXY [X column index] [Y column index] [sheet match] [output sheet name]Create a new worksheet containing pairs of X/Y columns sourced from each worksheet matching the given search string.EXAMPLE: `GetColsXY 1 2 _MT S.IhVsRa` _Creates a summary sheet with two columns from every memtest sheet_EXAMPLE: `GetColsXY 24 2 _EVN S.GainXY` _Creates an AP gain summary sheet with command current and AP count_*/

getGroups

Usage: getGroups [column] [sheets matching] [output sheet]
Example: getgroups 1 _mStats mean.S runs getcols 1 using _mStats.young and _mStats.aged as search strings
This command is identical to getcols except that if there are output sheets with group tags (i.e., _MT.aged) it will separately run getcols on each group.
code View source on GitHub
CJF_General.c:1355 void getGroups(int iColumn, string sSheetsMatching, string sSheetOutputName, int iColsToCollect=1)
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: getGroups [column] [sheets matching] [output sheet]This command is identical to `getcols` except that if there are output sheets with group tags (i.e., `_MT.aged`) it will separately run getcols on each group.EXAMPLE: `getgroups 1 _mStats mean.S` _runs getcols 1 using `_mStats.young` and `_mStats.aged` as search strings_*/

NormToRange

Usage: ntr [start] [end], ntr [start] [end] [asX or asIndex]
Example: NormToRange 3 4 _on a summary sheet
Example: NormToRange 3 4 asIndex _on a summary sheet
Normalize data to the mean of a range. If run on a summary sheet this command will act on all columns. If run on a regular sheet it will act on a single (specified) column. The ranges used can be defined by row numbers (asIndex) or times (asX, default). This command is similar to BaseToRange. An alias for NormToRange is ntr.
code View source on GitHub
CJF_SummarySheets.c:231 void NormToRange(string parOne="", string parTwo="", string parThree="")
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: ntr [start] [end], ntr [start] [end] [asX or asIndex]Normalize data to the mean of a range.If run on a summary sheet this command will act on all columns.If run on a regular sheet it will act on a single (specified) column.The ranges used can be defined by row numbers (asIndex) or times (asX, default).This command is similar to BaseToRange.An alias for `NormToRange` is `ntr`.EXAMPLE: `NormToRange 3 4` _on a summary sheet: normalizes all columns to minutes 3-4_EXAMPLE: `NormToRange 3 4 asIndex` _on a summary sheet: normalizes all columns to rows 3-4_*/

Rave

Example: runonsheets _RAVE rave
Example: getCols 1 _RAVE S.RAVE
The rave command only acts on the selected worksheet. It produces a new worksheet with the same name except with _RAVE at the end. In this new worksheet has only two columns: the first column is the name of each column in the original sheet, and the second column is the average values for each original column between the time points specified by raved. Rave output sheets remember the name of the input sheet they were produced from. A rave sheet can be updated by rave while the rave output sheet is selected. All rave sheets in a workbook can be updated with: After you have a workbook containing many rave sheets, you can use getcols to collect all of the data into a single sheet. Since rave sheets only have two columns, the arguments for this command never change:
code View source on GitHub
CJF_Rave.c:291 void Rave()
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: raveThe rave command only acts on the selected worksheet.It produces a new worksheet with the same name except with `_RAVE` at the end.In this new worksheet has only two columns: the first column is the name of each column in the original sheet, and the second column is the average values for each original column between the time points specified by `raved`.Rave output sheets remember the name of the input sheet they were produced from.A rave sheet can be updated by `rave` while the rave output sheet is selected.All rave sheets in a workbook can be updated with:After you have a workbook containing many rave sheets, you can use `getcols` to collect all of the data into a single sheet.Since rave sheets only have two columns, the arguments for this command never change:EXAMPLE: `runonsheets _RAVE rave`EXAMPLE: `getCols 1 _RAVE S.RAVE`*/

RaveD

Usage: raved
Usage: raved wks
Usage: raved wks-silent
Usage: raved save [name]
Usage: raved load [name]
Usage: raved load-silent [name]
Usage: raved del [name]
Usage: raved list
Launch a dialog box which customizes the ranges to use for the range average. See rave for details. raved del * - will delete all stored raved parameters with project scope.
code View source on GitHub
CJF_Rave.c:21 void RaveD(string strSource="ProjectTree", string strTarget="UserDefined")
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: ravedUSAGE: raved wksUSAGE: raved wks-silentUSAGE: raved save [name]USAGE: raved load [name]USAGE: raved load-silent [name]USAGE: raved del [name]USAGE: raved listLaunch a dialog box which customizes the ranges to use for the range average.See `rave` for details.Note: you can save multiple raved parameter sets using tools nearly identical to those for minip.raved del * - will delete all stored raved parameters with project scope.*/

reject

Usage: reject columnIndex "reason for rejection"
Example: reject 3 "cell died"
When run on a summary sheet (created by getcols) this command identifies the sheet corresponding to the given column index, applies a _rej tag, then adds the reason to the worksheet's notes. That sheet will no longer be included in the summary sheet when getcols is re-run.
code View source on GitHub
CJF_General.c:1858 void reject(string strOne="NULL", string strTwo="NULL")
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: reject columnIndex "reason for rejection"When run on a summary sheet (created by getcols) this command identifies the sheet corresponding to the given column index, applies a `_rej` tag, then adds the reason to the worksheet's notes.That sheet will no longer be included in the summary sheet when getcols is re-run.EXAMPLE: `reject 3 "cell died"`*/

resample

Usage: Resample [width]
Usage: Resample [width] [step]
Example: resample 2 Downsample by 2 so 100 points becomes 50
Example: resample 10 Downsample by 10 so 100 points becomes 10
Example: resample 10 1 Apply data smoothing with a window size of one and no down-sampling
Example: resample off Disable resampling
Down-sample the data using a moving window average. By default the window step size is the window size (for a moving window with no overlap), but this can be customized to achieve data smoothing. Setting width to 1 results in data smoothing with no down-sampling. Resampling can be combined with NormToRange, BaseToRange, etc. This command only works on summary sheets. Use decimate and decimateWks on non-summary sheets.
code View source on GitHub
CJF_SummarySheets.c:767 void resample(string strParOne, string strParTwo ="", string strOutputOverride ="")
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: Resample [width]USAGE: Resample [width] [step]Down-sample the data using a moving window average.By default the window step size is the window size (for a moving window with no overlap), but this can be customized to achieve data smoothing.Setting `width` to `1` results in data smoothing with no down-sampling.Resampling can be combined with `NormToRange`, `BaseToRange`, etc.This command only works on summary sheets.Use `decimate` and `decimateWks` on non-summary sheets.EXAMPLE: `resample 2` _Downsample by 2 so 100 points becomes 50_EXAMPLE: `resample 10` _Downsample by 10 so 100 points becomes 10_EXAMPLE: `resample 10 1` _Apply data smoothing with a window size of one and no down-sampling_EXAMPLE: `resample off` _Disable resampling_*/

slopeCorrect

Usage: SlopeCorrect [start] [end] [asX (default) / asIndex]
Usage: SlopeCorrect on/off (toggle only works after initial run).
Example: SlopeCorrect 5 10 Remove the slope (over x-axis values 5-10) from all Y columns
Example: SlopeCorrect 10 30 asIndex Remove the slope (over rows 10-30) from all Y columns
Run this command on a summary sheet to fit a linear line to each data column (confined to rows defined by the start and end times) then subtract the slope from the original data. The result are data columns with the same Y offset from 0 but slope removed. This command can be combined with other commands like BaseToRange and NormToRange in any order. An optional third argument asIndex can be given indiacting start and ends values row indexes.
code View source on GitHub
CJF_SummarySheets.c:554 void slopeCorrect(string strParOne, string strParTwo="", string strMode = "asX", string strOutputOverride ="")
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: SlopeCorrect [start] [end] [asX (default) / asIndex]USAGE: SlopeCorrect on/off (toggle only works after initial run).Run this command on a summary sheet to fit a linear line to each data column (confined to rows defined by the start and end times) then subtract the slope from the original data.The result are data columns with the same Y offset from 0 but slope removed.This command can be combined with other commands like `BaseToRange` and `NormToRange` in any order.An optional third argument `asIndex` can be given indiacting start and ends values row indexes.EXAMPLE: `SlopeCorrect 5 10` _Remove the slope (over x-axis values 5-10) from all Y columns_EXAMPLE: `SlopeCorrect 10 30 asIndex` _Remove the slope (over rows 10-30) from all Y columns_*/

UpdateAllSheets

Re-runs rave or getcols on all the summary sheets using the same input parameters originally used to create those sheets.
code View source on GitHub
CJF_SummarySheets.c:66 void UpdateAllSheets()
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: UpdateAllSheetsRe-runs `rave` or `getcols` on all the summary sheets using the same input parameters originally used to create those sheets.*/

UpdateRaveSheet

Re-runs rave on the active summary sheet using the same input parameters originally used to create that sheet.
code View source on GitHub
CJF_SummarySheets.c:36 void UpdateRaveSheet()
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: UpdateRaveSheetRe-runs `rave` on the active summary sheet using the same input parameters originally used to create that sheet.*/

UpdateRaveSheets

Runs UpdateRaveSheet on every worksheet of the active workbook.
code View source on GitHub
CJF_SummarySheets.c:47 void UpdateRaveSheets()
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: UpdateRaveSheetsRuns `UpdateRaveSheet` on every worksheet of the active workbook.*/

UpdateSummarySheet

Re-runs getcols on the active summary sheet using the same input parameters originally used to create that sheet.
code View source on GitHub
CJF_SummarySheets.c:77 void UpdateSummarySheet()
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: UpdateSummarySheetRe-runs `getcols` on the active summary sheet using the same input parameters originally used to create that sheet.*/

UpdateSummarySheets

Runs UpdateSummarySheet on every worksheet of the active workbook.
code View source on GitHub
CJF_SummarySheets.c:20 void UpdateSummarySheets()
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: UpdateSummarySheetsRuns `UpdateSummarySheet` on every worksheet of the active workbook.*/

UpdateThisSheet

Usage: UTS
Usage: UpdateThisSheet
re-run getcols or rave on the active worksheet
code View source on GitHub
CJF_SummarySheets.c:89 void UpdateThisSheet()
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: UTSUSAGE: UpdateThisSheetre-run getcols or rave on the active worksheet*/

wks

Usage: wks
Usage: wks columnIndex
When run on a summary sheet (created by getcols) this command will go to the source sheet corresponding to the highlighted (or specified) column.
code View source on GitHub
CJF_General.c:1928 void wks(string strCol="active")
/* ophys commandCATEGORY: Summary and Rave SheetsUSAGE: wksUSAGE: wks columnIndexWhen run on a summary sheet (created by getcols) this command will go to the source sheet corresponding to the highlighted (or specified) column.*/

Uncategorized

ExtractEvents

Usage: ExtractEvents [start] [end]
Example: extractevents 10 30; averages events between sweeps 10 and 30
Example: getgroups 1 _mStats mean.S runs getcols 1 using _mStats.young and _mStats.aged as search strings
Run this command on a byEvent sheet to create an average trace of all events which occur between start and end. Arguments are sweep numbers for episodic files and minutes for gap-free files. This command can create an average AP, IPSC, or EPSC shape between two time points.
code View source on GitHub
CJF_Mini.c:2926 void ExtractEvents(double dMinStart, double dMinEnd)
/* ophys commandCATEGORY: USAGE: ExtractEvents [start] [end]Run this command on a byEvent sheet to create an average trace of all events which occur between `start` and `end`.Arguments are sweep numbers for episodic files and minutes for gap-free files.This command can create an average AP, IPSC, or EPSC shape between two time points.EXAMPLE: `extractevents 10 30;` _averages events between sweeps 10 and 30_EXAMPLE: `getgroups 1 _mStats mean.S` _runs getcols 1 using `_mStats.young` and `_mStats.aged` as search strings_*/

Workbook Operations

dSheets

Usage: dsheets [match]
Delete worksheets whose name contains the matching text.
code View source on GitHub
CJF_General.c:2194 void dSheets(string strTag)
/* ophys commandCATEGORY: Workbook OperationsUSAGE: dsheets [match]Delete worksheets whose name contains the matching text.*/

ExtractByString

Usage: extractByString [match]
Usage: extractByTag [match] [destination workbook]
Move all worksheets whose name matches the given string into a new workbook (or an existing workbook if specified)
code View source on GitHub
CJF_General.c:2407 void ExtractByString(string strTag, string strDest="", bool bKeepSource=false)
/* ophys commandCATEGORY: Workbook OperationsUSAGE: extractByString [match]USAGE: extractByTag [match] [destination workbook]Move all worksheets whose name matches the given string into a new workbook (or an existing workbook if specified)*/

ExtractByTag

Usage: extractByTag [tag]
Usage: extractByTag [tag] [destination workbook]
Move all worksheets with the given tag into a new workbook (or an existing workbook if specified)
code View source on GitHub
CJF_General.c:2363 void ExtractByTag(string strTag, string strDest="", bool bKeepSource=false)
/* ophys commandCATEGORY: Workbook OperationsUSAGE: extractByTag [tag]USAGE: extractByTag [tag] [destination workbook]Move all worksheets with the given tag into a new workbook (or an existing workbook if specified)*/

MergeSheetsH

Usage: mergeSheets [tag]
Vertically merges rows from all sheets whose names match the given tag into a new sheet.
code View source on GitHub
CJF_General.c:2801 void MergeSheetsH(int sourceFirstColumnIndex = 1)
/* ophys commandCATEGORY: Workbook OperationsUSAGE: mergeSheets [tag]Vertically merges rows from all sheets whose names match the given tag into a new sheet.*/

MoveSheet

Usage: MoveSheet [bookName]
Example: runOnSheets _eStats "copySheet allStats;" use in combination with runOnSheets
Move the active worksheet to the given bookname. If the book doesn't exist, it will be created.
code View source on GitHub
CJF_General.c:2944 void MoveSheet(string bookDestination)
/* ophys commandCATEGORY: Workbook OperationsUSAGE: MoveSheet [bookName]Move the active worksheet to the given bookname.If the book doesn't exist, it will be created.EXAMPLE: `runOnSheets _eStats "copySheet allStats;"` _use in combination with runOnSheets_*/

RunOnBooks

Usage: runonbooks [match phrase] "[command]"
Example: runonbooks Events "getcols 3 _EVN S.FreqInBin" runs getcols on every events workbook
Example: runonbooks Events "runonsheets S. rave" runs rave on every summary sheet of every events workbook
Run a labtalk command on every workbook in the current folder. The command must be inside double quotes.
code View source on GitHub
CJF_General.c:1395 void RunOnBooks(string strMatch, string strCmd="")
/* ophys commandCATEGORY: Workbook OperationsUSAGE: runonbooks [match phrase] "[command]"Run a labtalk command on every workbook in the current folder.The command must be inside double quotes.EXAMPLE: `runonbooks Events "getcols 3 _EVN S.FreqInBin"` _runs getcols on every events workbook_EXAMPLE: `runonbooks Events "runonsheets S. rave"` _runs rave on every summary sheet of every events workbook_*/

RunOnSheets

Usage: runonsheets [match phrase] "[command]"
Example: runonsheets _MT "setpath wks; memtest;" re-run membrane test on every sheet
Example: runonsheets _eStats "wks.ncols = 6;" ensure every sheet has 6 columns
Example: `runonsheets _eStats "csetvalue formula
Example: runonsheets mStats "wks.Name$=" silent show the names of all worksheets
Run a labtalk command on every sheet of the selected workbook. The command must be inside double quotes. An optional third argument silences output if set to zero.
code View source on GitHub
CJF_General.c:1629 void RunOnSheets(string strInput, string strCmd, bool bVerbose=true, string strFromBooks="ActiveBookOnly")
/* ophys commandCATEGORY: Workbook OperationsUSAGE: runonsheets [match phrase] "[command]"Run a labtalk command on every sheet of the selected workbook.The command must be inside double quotes.An optional third argument silences output if set to zero.EXAMPLE: `runonsheets _MT "setpath wks; memtest;"` _re-run membrane test on every sheet_EXAMPLE: `runonsheets _eStats "wks.ncols = 6;"` _ensure every sheet has 6 columns_EXAMPLE: `runonsheets _eStats "csetvalue formula:=[A*100] col:=6;"` _set formula for column 6 (column A * 100)_EXAMPLE: `runonsheets mStats "wks.Name$=" silent` _show the names of all worksheets_*/

SortSheets

Re-arranges all worksheets in the selected workbook according to alphabetical order. Run sortsheets -1 to reverse-sort them.
code View source on GitHub
CJF_General.c:2236 void SortSheets()
/* ophys commandCATEGORY: Workbook OperationsUSAGE: sortsheetsRe-arranges all worksheets in the selected workbook according to alphabetical order.Run `sortsheets -1` to reverse-sort them.*/

Worksheet Operations

addStatsRows

Adds mean and standard deviation rows to the active worksheet
code View source on GitHub
CJF_General.c:3728 void addStatsRows()
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: AddStatsRowsAdds mean and standard deviation rows to the active worksheet*/

AlignColsXY

Given a sheet with pairs of X/Y columns, shift data down so all X columns are aligned. This command is typically followed by DeleteXColumns
code View source on GitHub
CJF_General.c:1001 void AlignColsXY()
/* ophys commandCATEGORY: Worksheet OperationsGiven a sheet with pairs of X/Y columns, shift data down so all X columns are aligned.This command is typically followed by `DeleteXColumns`*/

BaseToRangeAll

Usage: btrsheet [start] [end]
Baseline subtract all columns of data (not for summary sheets). Optionally add "false" to the end to force asIndex (not asX).
code View source on GitHub
CJF_General.c:3528 void BaseToRangeAll(string _1="", string _2="", string _3="")
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: btrsheet [start] [end]Baseline subtract all columns of data (not for summary sheets).Optionally add "false" to the end to force asIndex (not asX).*/

ccAve

Usage: ccave
Usage: ccave SE
Usage: ccave SD
When run on a worksheet, all Y columns are averaged together (horizontally) and two new columns are made (or updated): average and error. The default error is standard error (SE), but if "SD" is given as an argument the error is standard deviation (SD).
code View source on GitHub
CJF_General.c:40 void ccAve(bool standardError = true)
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: ccaveUSAGE: ccave SEUSAGE: ccave SDWhen run on a worksheet, all Y columns are averaged together (horizontally) and two new columns are made (or updated): average and error.The default error is standard error (SE), but if "SD" is given as an argument the error is standard deviation (SD).*/

decimateWKS

Usage: decimatewks [decimate by]
Example: decimatewks 5 makes each row the average of 5 original rows
Reduces data vertically by making each cell the average of a given number of rows. This is non-destructive, as it creates a new copy of the current worksheet.
code View source on GitHub
CJF_General.c:2577 void decimateWKS(int iWindowSize, int iStepSize = -1)
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: decimatewks [decimate by]Reduces data vertically by making each cell the average of a given number of rows.This is non-destructive, as it creates a new copy of the current worksheet.EXAMPLE: `decimatewks 5` _makes each row the average of 5 original rows_ */

deleteColumns

Usage: deleteColumns [first column index], [last column index]
Delete all rows between (and including) the given column index numbers.
code View source on GitHub
CJF_General.c:167 void deleteColumns(unsigned int columnIndexFirst, unsigned int columnIndexLast = -1)
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: deleteColumns [first column index], [last column index]Delete all rows between (and including) the given column index numbers.*/

deleteRows

Usage: deleterows [first row] [last row]
Example: deleteRows 10 deletes row 10 and all rows after it
Example: deleteRows 10 13 deletes row 10, 11, 12, and 13. Row 14 is preserved.
Delete all rows between (and including) the given row numbers. If the second row is not given, everything between the first row and the end of the worksheet is deleted. The drows command does the same thing and takes the same arguments.
code View source on GitHub
CJF_General.c:190 void deleteRows(int firstRowToDelete, int lastRowToDelete=999999)
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: deleterows [first row] [last row]Delete all rows between (and including) the given row numbers.If the second row is not given, everything between the first row and the end of the worksheet is deleted.The `drows` command does the same thing and takes the same arguments.EXAMPLE: `deleteRows 10` _deletes row 10 and all rows after it_ EXAMPLE: `deleteRows 10 13` _deletes row 10, 11, 12, and 13. Row 14 is preserved._ */

deleteRowsBandpass

Usage: deleteRowsBandpass [columnIndex] [lowestAllowedValue] [highestAllowedValue]
Delete rows where the value of a given column is outside an allowable range. On bySweep sheets this can be used to discard all sweeps outside an allowable time range, or whose data is outside of an allowable range. On byEvent sheets this can be used to discard all events outside an allowable time range or outside the range of expected values for events.
code View source on GitHub
CJF_General.c:220 void deleteRowsBandpass(int columnIndex, double lowestAllowedValue, double highestAllowedValue)
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: deleteRowsBandpass [columnIndex] [lowestAllowedValue] [highestAllowedValue]Delete rows where the value of a given column is outside an allowable range.On bySweep sheets this can be used to discard all sweeps outside an allowable time range, or whose data is outside of an allowable range.On byEvent sheets this can be used to discard all events outside an allowable time range or outside the range of expected values for events.*/

DeleteValuesAfterPeak

For each Y column in the active worksheet, identify the first peak, then blank all cells after it. Run on AP gain summary sheets to isolate sweeps before hyperexcitation causes reduced firing (e.g., AP block).
code View source on GitHub
CJF_Common.c:4606 void DeleteValuesAfterPeak()
/* ophys commandCATEGORY: Worksheet OperationsFor each Y column in the active worksheet, identify the first peak, then blank all cells after it.Run on AP gain summary sheets to isolate sweeps before hyperexcitation causes reduced firing (e.g., AP block).*/

DeleteXColumns

Delete all X columns (except for the first one)
code View source on GitHub
CJF_General.c:1046 void DeleteXColumns(bool skipFirstColumn = true)
/* ophys commandCATEGORY: Worksheet OperationsDelete all X columns (except for the first one)*/

letters

Rename every column as a series of double-letters (AA, BB, CC, etc)
code View source on GitHub
CJF_General.c:585 void letters(string strPrefix="r")
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: lettersRename every column as a series of double-letters (AA, BB, CC, etc)*/

MergeCols

Merges all values from all Y columns into a column named "MERGED". This command can be re-run on the same sheet multiple times. Masked columns are ignored.
code View source on GitHub
CJF_General.c:2753 void MergeCols()
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: mergeColsMerges all values from all Y columns into a column named "MERGED".This command can be re-run on the same sheet multiple times.Masked columns are ignored.*/

NANUM_to_Zero

Replace all -- cells in the selected worksheet with the number 0. I use this to correct instananeous frequency for gain functions. When no APs are detected (frequency should be 0 instead of NANUM)
code View source on GitHub
CJF_General.c:356 void NANUM_to_Zero()
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: nanum_to_ZeroReplace all `--` cells in the selected worksheet with the number `0`.I use this to correct instananeous frequency for gain functions.When no APs are detected (frequency should be 0 instead of NANUM)*/

NormToRangeAll

Usage: ntrsheet [start] [end]
Normalize all columns of data (not for summary sheets). Optionally add "false" to the end to use asIndex (instead of asX).
code View source on GitHub
CJF_General.c:3540 void NormToRangeAll(string _1="", string _2="", string _3="")
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: ntrsheet [start] [end]Normalize all columns of data (not for summary sheets).Optionally add "false" to the end to use asIndex (instead of asX).*/

numbers

Rename every column as a series of numbers starting at 0.
code View source on GitHub
CJF_General.c:547 void numbers(string strMode="on")
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: numbersRename every column as a series of numbers starting at 0.*/

RenameSheet

Usage: renameSheet [new name]
Set the name of the active worksheet
code View source on GitHub
CJF_General.c:2715 void RenameSheet(string sNewName)
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: renameSheet [new name]Set the name of the active worksheet*/

rng

Usage: rng
Usage: rng [prefix]
Example: rng - columns on the active sheet can be modified like rA = 5, rB += 9, etc.
Example: rng sheet1 - columns on the active sheet can be modified from anywhere like sheet1C += 3
This command allows columns of the current worksheet to be addressed from the command window. An optional prefix can be given to make it easier to do math on columns from different worksheets.
code View source on GitHub
CJF_General.c:602 void rng(string strPrefix="r")
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: rngUSAGE: rng [prefix]This command allows columns of the current worksheet to be addressed from the command window.An optional prefix can be given to make it easier to do math on columns from different worksheets.EXAMPLE: `rng` - columns on the active sheet can be modified like `rA = 5`, `rB += 9`, etc.EXAMPLE: `rng sheet1` - columns on the active sheet can be modified from anywhere like `sheet1C += 3`*/

SortCols

Sort columns alphabetically by their long name (skipping the first column).
code View source on GitHub
CJF_General.c:51 void SortCols()
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: sortColsSort columns alphabetically by their long name (skipping the first column).*/

wksAddNote

Usage: wksAddNote "note contents"
Adds the a note to the metadata of the selected worksheet.
code View source on GitHub
CJF_General.c:2477 void wksAddNote(string strInput)
/* ophys commandCATEGORY: Worksheet OperationsUSAGE: wksAddNote "note contents"Adds the a note to the metadata of the selected worksheet.*/

Worksheet Tagging

AddTag

Usage: addtag [match] [addition]
Example: addtag _MT .aged; turns 1234_123_MT into 1234_123_MT.aged
Example: addtag _MT .aged; run again becomes 1234_123_MT.aged.aged
When run with a workbook selected, it finds any sheet with match in its name and appends addition to its name. You could match _ so the command works on all sheets, or you could specifically match just _MT. Also see ChangeTags and modifyTags. There is no problem if sheet names already contain multiple underscores.
code View source on GitHub
CJF_General.c:1775 void AddTag(string strIn, string strTag)
/* ophys commandCATEGORY: Worksheet TaggingUSAGE: addtag [match] [addition]When run with a workbook selected, it finds any sheet with `match` in its name and appends `addition` to its name.You could match `_` so the command works on all sheets, or you could specifically match just `_MT`.Also see `ChangeTags` and `modifyTags`.There is no problem if sheet names already contain multiple underscores.EXAMPLE: `addtag _MT .aged;` _turns `1234_123_MT` into `1234_123_MT.aged`_EXAMPLE: `addtag _MT .aged;` _run again becomes `1234_123_MT.aged.aged`_*/

ChangeTags

Usage: changetags [search] [replace]
Example: changetags _MT _MT.aged; turns 1234_123_MT into 1234_123_MT.aged
Example: changetags _MT.aged _MT.young; turns 1234_123_MT.aged into 1234_123_MT.young
When run with a workbook selected, it performs a search/replace on the tail end of every sheet name in the workbook. Also see AddTag and modifyTags.
code View source on GitHub
CJF_General.c:2043 void ChangeTags(string strIn, string strOut)
/* ophys commandCATEGORY: Worksheet TaggingUSAGE: changetags [search] [replace]When run with a workbook selected, it performs a search/replace on the tail end of every sheet name in the workbook.Also see `AddTag` and `modifyTags`.EXAMPLE: `changetags _MT _MT.aged;` _turns `1234_123_MT` into `1234_123_MT.aged`_EXAMPLE: `changetags _MT.aged _MT.young;` _turns `1234_123_MT.aged` into `1234_123_MT.young`_*/

Undocumented Commands

CJF_Internal.c:12 */void cjfhelp(string strCommand="")
CJF_Internal.c:23 */void webExp()
CJF_Internal.c:34 */void webCell()
CJF_Internal.c:42 string GetActiveAbfPath()
CJF_Internal.c:71 void LaunchAbfBrowser(string strPath, bool bPathIncludesFile=true)
CJF_Internal.c:72 void LaunchAbfBrowser(string strPath, bool bPathIncludesFile=true)
CJF_Graph_Tools.c:3 void setData(int iCol=-1)
CJF_Graph_Tools.c:70 void setLayer()
CJF_Graph_Tools.c:71 void setLayer()
CJF_Graph_Tools.c:86 void AddPlot(int iManualOverride=-1, int iType=-1)
CJF_Graph_Tools.c:174 void removeplot()
CJF_Graph_Tools.c:191 void old_goto(string strIn)
CJF_Graph_Tools.c:253 void btn_ToggleEvokedMarkers(bool bUpdateOnMove=false)
CJF_Graph_Tools.c:344 void setEvoked(string strMode="wks")
CJF_Graph_Tools.c:402 void UpdateEvokedResponseMarkers(int iMark, string strMarkName)
CJF_Graph_Tools.c:460 */void m1(double dNewX)
CJF_Graph_Tools.c:470 */void m2(double dNewX)
CJF_Graph_Tools.c:478 void m3(double dNewX)
CJF_Graph_Tools.c:479 void m3(double dNewX)
CJF_Graph_Tools.c:483 void m4(double dNewX)
CJF_Graph_Tools.c:484 void m4(double dNewX)
CJF_Graph_Tools.c:494 */void setMarksIndex(int index1, int index2)
CJF_Graph_Tools.c:527 */void setmarks(string ParOne, string ParTwo="", int ParThree=0)
CJF_Graph_Tools.c:562 */void setMarksWks(string strPad)
CJF_Graph_Tools.c:596 */void setMarksEpoch(int epochNumber = 0, int iPad=0)
CJF_Graph_Tools.c:630 void marks(string strMode="on", int iForceABFGraph=0)
CJF_Graph_Tools.c:631 void marks(string strMode="on", int iForceABFGraph=0)
CJF_Graph_Tools.c:687 void mtog(int iMark)
CJF_Graph_Tools.c:699 void mlbls(string strMode="on")
CJF_Graph_Tools.c:715 void addmark(string strName, double xPos=-1.0)
CJF_Graph_Tools.c:799 void MarkStats(int iMarksToUse=12, int iMode=1)
CJF_Graph_Tools.c:934 void MarkAutoBase()
CJF_Graph_Tools.c:951 void BringMarks()
CJF_Graph_Tools.c:973 void ABFGraph_ToggleLayer2()
CJF_Graph_Tools.c:1025 void ABFGraph_btnWave(int iState)
CJF_Graph_Tools.c:1026 void ABFGraph_btnWave(int iState)
CJF_Graph_Tools.c:1035 void overlay()
CJF_Graph_Tools.c:1036 void overlay()
CJF_Graph_Tools.c:1050 void theavy()
CJF_Graph_Tools.c:1051 void theavy()
CJF_Graph_Tools.c:1065 void bheavy()
CJF_Graph_Tools.c:1066 void bheavy()
CJF_Graph_Tools.c:1080 void tonly()
CJF_Graph_Tools.c:1081 void tonly()
CJF_Graph_Tools.c:1094 void ABFGraph_btnCMD(int iStatus)
CJF_Graph_Tools.c:1095 void ABFGraph_btnCMD(int iStatus)
CJF_Graph_Tools.c:1144 void ABFGraph_btnTTL(int iStatus)
CJF_Graph_Tools.c:1145 void ABFGraph_btnTTL(int iStatus)
CJF_Graph_Tools.c:1206 void listobj(string strSearch="")
CJF_Graph_Tools.c:1227 void clearobj(string strObjName)
CJF_Graph_Tools.c:1231 void clear(string strObjName)
CJF_Graph_Tools.c:1242 */void scaling(string strToggle, double dScaleFactor=-1.0)
CJF_Graph_Tools.c:1275 void xFull()
CJF_Graph_Tools.c:1281 void yFull()
CJF_Graph_Tools.c:1286 void ScaleToMarks()
CJF_Graph_Tools.c:1303 void xOut(double dFactor=2)
CJF_Graph_Tools.c:1316 void yOut(double dFactor=2)
CJF_Graph_Tools.c:1329 void xIn(double dFactor=2)
CJF_Graph_Tools.c:1348 void yIn(double dFactor=2)
CJF_Graph_Tools.c:1367 void xLeft(double dXUnits=-1)
CJF_Graph_Tools.c:1392 void yUp(double dYUnits=-1)
CJF_Graph_Tools.c:1417 void xRight(double dXUnits=-1)
CJF_Graph_Tools.c:1442 void yDown(double dYUnits=-1)
CJF_Graph_Tools.c:1467 void xCenter(double dNewCenter)
CJF_Graph_Tools.c:1480 void autoY_Original(double dPad=0.10)
CJF_Graph_Tools.c:1532 */void autoX(double dPad=-1)
CJF_Graph_Tools.c:1581 */void autoY(double dPad=-1)
CJF_Graph_Tools.c:1604 void autoXY(double dXPad=-1, double dYPad=-1)
CJF_Graph_Tools.c:1616 */void PhasePlot(int iMarksToUse=12)
CJF_Graph_Tools.c:1730 */void ExtractData(int iMarksToUse=12)
CJF_Graph_Tools.c:1865 */void extractAllSweeps()
CJF_Graph_Tools.c:1884 */void extractSweeps(int iStart=-1, int iEnd=-1)
CJF_Graph_Tools.c:1916 */void ZeroOffsetMax()
CJF_Graph_Tools.c:1954 void ShowLocalMaxima()
CJF_Graph_Tools.c:1955 void ShowLocalMaxima()
CJF_Graph_Tools.c:1962 void SaveLocalMaxima(int iStartSweep=-1, int iEndSweep=-1)
CJF_Graph_Tools.c:2075 */void pAveTime(double timeMinutes1, double timeMinutes2)
CJF_Graph_Tools.c:2092 */void pAve(int iStartSweep, int iEndSweep=-2)
CJF_Graph_Tools.c:2101 void plotAve(int iStartSweep, int iEndSweep)
CJF_Graph_Tools.c:2102 void plotAve(int iStartSweep, int iEndSweep)
CJF_Graph_Tools.c:2285 */void MarkerStats(int iStartSweep=-1, int iEndSweep=-1, int iMarksToUse=12)
CJF_Graph_Tools.c:2289 void getStats(int iStartSweep=-1, int iEndSweep=-1, int iMarksToUse=12)
CJF_Graph_Tools.c:2290 void getStats(int iStartSweep=-1, int iEndSweep=-1, int iMarksToUse=12)
CJF_Graph_Tools.c:2763 void getStats_append(int iStartSweep=-1, int iEndSweep=-1, int iMarksToUse=12)
CJF_Graph_Tools.c:2764 void getStats_append(int iStartSweep=-1, int iEndSweep=-1, int iMarksToUse=12)
CJF_Graph_Tools.c:3159 */void setBase(string strMode="default")
CJF_Graph_Tools.c:3306 void DataPlotToVectors()
CJF_Graph_Tools.c:3316 void DataPlotToVectors2()
CJF_Graph_Tools.c:3332 bool GetPlotToSweep(pCLAMPSweep& SweepIn)
CJF_Graph_Tools.c:3333 bool GetPlotToSweep(pCLAMPSweep& SweepIn)
CJF_Graph_Tools.c:3384 void btn_ToggleMarks()
CJF_Graph_Tools.c:3385 void btn_ToggleMarks()
CJF_Graph_Tools.c:3409 void btn_ToggleCJFMiniControls()
CJF_Graph_Tools.c:3410 void btn_ToggleCJFMiniControls()
CJF_Graph_Tools.c:3430 void lblF(int iFontSize, int iWarn=1)
CJF_Graph_Tools.c:3431 void lblF(int iFontSize, int iWarn=1)
CJF_Graph_Tools.c:3447 bool add_label_cjf(Layer& ll, GraphObject& grText, double x, double y, LPCSTR lpcszText)
CJF_Graph_Tools.c:3448 bool add_label_cjf(Layer& ll, GraphObject& grText, double x, double y, LPCSTR lpcszText)
CJF_Graph_Tools.c:3462 bool GetMinMaxFromAllPlots(double &dSmallestMin, double &dBiggestMax, double xFrom, double xTo)
CJF_Graph_Tools.c:3463 bool GetMinMaxFromAllPlots(double &dSmallestMin, double &dBiggestMax, double xFrom, double xTo)
CJF_Graph_Tools.c:3526 void stackplots(double dSpacer)
CJF_Graph_Tools.c:3527 void stackplots(double dSpacer)
CJF_Graph_Tools.c:3542 void BugTest_ToggleButtons(int iButtonPressed)
CJF_Graph_Tools.c:3543 void BugTest_ToggleButtons(int iButtonPressed)
CJF_Graph_Tools.c:3588 void ToggleButtons(int iButtonPressed)
CJF_Graph_Tools.c:3589 void ToggleButtons(int iButtonPressed)
CJF_Graph_Tools.c:3672 void abfb()
CJF_Graph_Tools.c:3673 void abfb()
CJF_Graph_Tools.c:3677 void abfBrowse()
CJF_Graph_Tools.c:3678 void abfBrowse()
CJF_Graph_Tools.c:3868 void ToggleHiddenGraphObjects()
CJF_Graph_Tools.c:3869 void ToggleHiddenGraphObjects()
CJF_Graph_Tools.c:3881 */void dABF()
CJF_Graph_Tools.c:3897 void dbyEvent()
CJF_Graph_Tools.c:3898 void dbyEvent()
CJF_Graph_Tools.c:4009 void TTL(int iOffset, int iStim=1)
CJF_Graph_Tools.c:4031 void RollABFDataPlots(int iDirection)
CJF_Graph_Tools.c:4032 void RollABFDataPlots(int iDirection)
CJF_Graph_Tools.c:4070 void newScroll(int iLayer=0, int iDirection=1)
CJF_Graph_Tools.c:4138 bool dataplots_move_row_to_bottom_top(TreeNode& tr, int nRow, bool bMoveToTopOfTree = false)
CJF_Graph_Tools.c:4183 int iNumABFDataPlots()
CJF_Graph_Tools.c:4184 int iNumABFDataPlots()
CJF_Graph_Tools.c:4208 void btnsForMemTestGraph(int iDataToPlot=1)
CJF_Graph_Tools.c:4209 void btnsForMemTestGraph(int iDataToPlot=1)
CJF_Graph_Tools.c:4319 void GetThere(int iDirection=1)
CJF_Graph_Tools.c:4323 void LoadNextSheetByTag(int iDirection=1)
CJF_Graph_Tools.c:4324 void LoadNextSheetByTag(int iDirection=1)
CJF_Graph_Tools.c:4446 void mtReadTags()
CJF_Graph_Tools.c:4447 void mtReadTags()
CJF_Graph_Tools.c:4531 */void axisSpan(string axisToControl="", double span=0)
CJF_Graph_Tools.c:4574 */void axisPan(string axisToControl="", double shiftBy=0)
CJF_Graph_Tools.c:4615 */void axisSet(string axisToControl="", double lower=0, double upper=0)
CJF_Graph_Tools.c:4656 */void autobase(string sArg1, string sArg2="")
CJF_Common.c:636 void test_cc_WorksheetContainsAveSE()
CJF_Common.c:637 void test_cc_WorksheetContainsAveSE()
CJF_Common.c:954 bool SetParameters_AutoBase(pCLAMPSweep &SweepIn, TreeNode tnGlobalTree)
CJF_Common.c:955 bool SetParameters_AutoBase(pCLAMPSweep &SweepIn, TreeNode tnGlobalTree)
CJF_Common.c:973 bool SetParameters_LowPass(pCLAMPSweep &SweepIn, TreeNode tnGlobalTree)
CJF_Common.c:974 bool SetParameters_LowPass(pCLAMPSweep &SweepIn, TreeNode tnGlobalTree)
CJF_Common.c:988 bool SetParameters_CleanPeaks(pCLAMPSweep &SweepIn, TreeNode tnGlobalTree)
CJF_Common.c:989 bool SetParameters_CleanPeaks(pCLAMPSweep &SweepIn, TreeNode tnGlobalTree)
CJF_Common.c:2005 void UpdateMarkerVals(int iExceptionHandler=0)
CJF_Common.c:2006 void UpdateMarkerVals(int iExceptionHandler=0)
CJF_Common.c:2192 bool ChangeInMarkerPositionOrSourceData(GraphLayer gL)
CJF_Common.c:2193 bool ChangeInMarkerPositionOrSourceData(GraphLayer gL)
CJF_Common.c:2245 void MiniPrep_CheckOtherSettings()
CJF_Common.c:2246 void MiniPrep_CheckOtherSettings()
CJF_Common.c:2273 void test_cc_GetFile()
CJF_Common.c:2274 void test_cc_GetFile()
CJF_Common.c:2600 */void ListABFs(string strParOne="", string strParTwo="", string strParThree="")
CJF_Common.c:2697 void printTags(string strPath)
CJF_Common.c:2698 void printTags(string strPath)
CJF_Common.c:3146 */void GetPath()
CJF_Common.c:3153 void GetxmlPath()
CJF_Common.c:3154 void GetxmlPath()
CJF_Common.c:3160 void objNames(string strObjName)
CJF_Common.c:3161 void objNames(string strObjName)
CJF_Common.c:3179 */void getTTL()
CJF_Common.c:3202 */void setTTL(int iDigitalOut)
CJF_Common.c:3218 void rio(int iDigitalOut)
CJF_Common.c:3219 void rio(int iDigitalOut)
CJF_Common.c:3223 void ReadDigitalOut(int iDigitalOut)
CJF_Common.c:3425 void vRampTest(double dTrim=0.33)
CJF_Common.c:3426 void vRampTest(double dTrim=0.33)
CJF_Common.c:3824 int isx64()
CJF_Common.c:3825 int isx64()
CJF_Common.c:3862 void test_cc_stringStartsWith()
CJF_Common.c:3863 void test_cc_stringStartsWith()
CJF_Common.c:3884 void test_cc_stringEndsWith()
CJF_Common.c:3885 void test_cc_stringEndsWith()
CJF_Common.c:4246 void assertWksHash(string expectedHash = "")
CJF_Common.c:4247 void assertWksHash(string expectedHash = "")
CJF_Common.c:4560 void test_cc_GetDataInRange()
CJF_Common.c:4561 void test_cc_GetDataInRange()
CJF_Common.c:4605 */void DeleteValuesAfterPeak()
CJF_KS2.c:9 */void ks2boot(string strIn1, string strIn2, int iNumBootStrapTrials=1000, double meanDiff = -1, double alpha=0.05, double power=0.80)
CJF_Variance.c:3 void newVar(int iOut=1)
CJF_Variance.c:31 void varBySweep(int iOut=1)
CJF_Variance.c:32 void varBySweep(int iOut=1)
CJF_Memtest.c:8 */void MemTest(bool bRunOnAverageSweep=false, int iWaveSweep=0)
CJF_Memtest.c:496 */void MemTestAve()
CJF_CheckLicense.c:55 double CJFCheckLicense(double dCurrentVersion, bool bFromCommandPrompt=false, bool bSuppressErrorMessages=false)
CJF_CheckLicense.c:197 void CJFLSpeed(int iChecks)
CJF_CheckLicense.c:198 void CJFLSpeed(int iChecks)
CJF_GlobalSettings.c:42 **/bool bMarksOn(GraphLayer gL)
CJF_GlobalSettings.c:43 bool bMarksOn(GraphLayer gL)
CJF_GlobalSettings.c:59 void AreMarksOn()
CJF_GlobalSettings.c:60 void AreMarksOn()
CJF_GlobalSettings.c:69 void gsupdate()
CJF_GlobalSettings.c:70 void gsupdate()
CJF_GlobalSettings.c:161 void log(string message="")
CJF_GlobalSettings.c:162 void log(string message="")
CJF_GlobalSettings.c:163 void GSUpdateAll()
CJF_GlobalSettings.c:164 void GSUpdateAll()
CJF_GlobalSettings.c:218 */void GS(string strSource="ProjectTree", int iSilent=0)
CJF_GlobalSettings.c:530 bool ButtonClick(TreeNode& myTree, int nRow, int nType, Dialog& theDlg)
CJF_GlobalSettings.c:531 bool ButtonClick(TreeNode& myTree, int nRow, int nType, Dialog& theDlg)
CJF_GlobalSettings.c:545 bool gsEventHandler(TreeNode& tr, int nRow, int nType, Dialog& Dlg)
CJF_GlobalSettings.c:546 bool gsEventHandler(TreeNode& tr, int nRow, int nType, Dialog& Dlg)
CJF_GlobalSettings.c:625 void UpdateGlobalTreeForMinMax(int iViewState)
CJF_GlobalSettings.c:626 void UpdateGlobalTreeForMinMax(int iViewState)
CJF_SummarySheets.c:2 void uss()
CJF_SummarySheets.c:3 void uss()
CJF_SummarySheets.c:6 void urs()
CJF_SummarySheets.c:7 void urs()
CJF_SummarySheets.c:10 void uts()
CJF_SummarySheets.c:11 void uts()
CJF_SummarySheets.c:19 */void UpdateSummarySheets()
CJF_SummarySheets.c:35 */void UpdateRaveSheet()
CJF_SummarySheets.c:46 */void UpdateRaveSheets()
CJF_SummarySheets.c:65 */void UpdateAllSheets()
CJF_SummarySheets.c:76 */void UpdateSummarySheet()
CJF_SummarySheets.c:88 */void UpdateThisSheet()
CJF_SummarySheets.c:99 bool Update_Single_SummarySheet(Worksheet &wks, bool bForceGetColsUpdate = false)
CJF_SummarySheets.c:100 bool Update_Single_SummarySheet(Worksheet &wks, bool bForceGetColsUpdate = false)
CJF_SummarySheets.c:195 bool Update_Single_RaveSheet(Worksheet &wks, bool preserveRavedSettings = true)
CJF_SummarySheets.c:196 bool Update_Single_RaveSheet(Worksheet &wks, bool preserveRavedSettings = true)
CJF_SummarySheets.c:230 */void NormToRange(string parOne="", string parTwo="", string parThree="")
CJF_SummarySheets.c:286 */void BaseToRange(string parOne="", string parTwo="", string parThree="")
CJF_SummarySheets.c:290 void ntr(string parOne="", string parTwo="", string parThree="")
CJF_SummarySheets.c:291 void ntr(string parOne="", string parTwo="", string parThree="")
CJF_SummarySheets.c:295 void btr(string parOne="", string parTwo="", string parThree="")
CJF_SummarySheets.c:296 void btr(string parOne="", string parTwo="", string parThree="")
CJF_SummarySheets.c:300 void ntr_btr_main(string parOne="", string parTwo="", string parThree="", bool bNTR=true, string strOutputOverride ="")
CJF_SummarySheets.c:301 void ntr_btr_main(string parOne="", string parTwo="", string parThree="", bool bNTR=true, string strOutputOverride ="")
CJF_SummarySheets.c:419 void ntr_btr_for_summarySheet(Worksheet wksIn, double dBaseStart, double dBaseEnd, bool asX, bool bNTR)
CJF_SummarySheets.c:420 void ntr_btr_for_summarySheet(Worksheet wksIn, double dBaseStart, double dBaseEnd, bool asX, bool bNTR)
CJF_SummarySheets.c:458 bool ntr_btr_toggle_metadata(Worksheet wks, string parOne, bool bNTR)
CJF_SummarySheets.c:459 bool ntr_btr_toggle_metadata(Worksheet wks, string parOne, bool bNTR)
CJF_SummarySheets.c:508 void ntr_btr_add_metadata(Worksheet wks, double dStart, double dEnd, bool asX, bool bNTR)
CJF_SummarySheets.c:509 void ntr_btr_add_metadata(Worksheet wks, double dStart, double dEnd, bool asX, bool bNTR)
CJF_SummarySheets.c:538 void sc(string strParOne, string strParTwo="", string strMode = "asX")
CJF_SummarySheets.c:539 void sc(string strParOne, string strParTwo="", string strMode = "asX")
CJF_SummarySheets.c:553 */void slopeCorrect(string strParOne, string strParTwo="", string strMode = "asX", string strOutputOverride ="")
CJF_SummarySheets.c:745 void rs(string strParOne, string strParTwo = "")
CJF_SummarySheets.c:746 void rs(string strParOne, string strParTwo = "")
CJF_SummarySheets.c:766 */void resample(string strParOne, string strParTwo ="", string strOutputOverride ="")
CJF_Rave.c:20 */void RaveD(string strSource="ProjectTree", string strTarget="UserDefined")
CJF_Rave.c:290 */void Rave()
CJF_Rave.c:765 string StripTrailingPeriod(string strIn)
CJF_Rave.c:766 string StripTrailingPeriod(string strIn)
CJF_Rave.c:781 */void pRave(int iRange, string strOut="asAve")
CJF_General.c:18 */void AddX(double iStep=1, int iCol=0, double iStart=0)
CJF_General.c:39 */void ccAve(bool standardError = true)
CJF_General.c:50 */void SortCols()
CJF_General.c:56 void sByLabel()
CJF_General.c:57 void sByLabel()
CJF_General.c:61 void ntrsheet(double rangeStart=-98765, double rangeEnd=-98765)
CJF_General.c:62 void ntrsheet(double rangeStart=-98765, double rangeEnd=-98765)
CJF_General.c:89 void ntrcol(int icol=-1, double dStartTime=-9.8765, double dEndTime=-9.8765, bool bAsX = true)
CJF_General.c:90 void ntrcol(int icol=-1, double dStartTime=-9.8765, double dEndTime=-9.8765, bool bAsX = true)
CJF_General.c:101 void btrsheet(double rangeStart=-98765, double rangeEnd=-98765, bool rangeRelativeToColumnZero=true)
CJF_General.c:102 void btrsheet(double rangeStart=-98765, double rangeEnd=-98765, bool rangeRelativeToColumnZero=true)
CJF_General.c:128 void btrcol(int icol=-1, double dStartTime=-9.8765, double dEndTime=-9.8765, bool asX=true)
CJF_General.c:129 void btrcol(int icol=-1, double dStartTime=-9.8765, double dEndTime=-9.8765, bool asX=true)
CJF_General.c:143 void normToVal(int iCol, double dVal)
CJF_General.c:144 void normToVal(int iCol, double dVal)
CJF_General.c:150 void dBooks(string strIn)
CJF_General.c:151 void dBooks(string strIn)
CJF_General.c:155 void ccAbs(int iCol)
CJF_General.c:166 */void deleteColumns(unsigned int columnIndexFirst, unsigned int columnIndexLast = -1)
CJF_General.c:189 */void deleteRows(int firstRowToDelete, int lastRowToDelete=999999)
CJF_General.c:195 void dRows(int iRowBegin, int iRowEnd)
CJF_General.c:196 void dRows(int iRowBegin, int iRowEnd)
CJF_General.c:219 */void deleteRowsBandpass(int columnIndex, double lowestAllowedValue, double highestAllowedValue)
CJF_General.c:245 void bandpassAll(double lowestAllowedValue, double highestAllowedValue, bool deleteValues = true)
CJF_General.c:246 void bandpassAll(double lowestAllowedValue, double highestAllowedValue, bool deleteValues = true)
CJF_General.c:260 void bandpass(int columnIndex, double lowestAllowedValue, double highestAllowedValue, bool deleteValues = true)
CJF_General.c:261 void bandpass(int columnIndex, double lowestAllowedValue, double highestAllowedValue, bool deleteValues = true)
CJF_General.c:285 void dNull(int iColIndex)
CJF_General.c:286 void dNull(int iColIndex)
CJF_General.c:296 void dEven(int iColIndex)
CJF_General.c:297 void dEven(int iColIndex)
CJF_General.c:308 void dOdd(int iColIndex)
CJF_General.c:309 void dOdd(int iColIndex)
CJF_General.c:320 void doe(int iColIndex, string sChoice, Worksheet wks)
CJF_General.c:321 void doe(int iColIndex, string sChoice, Worksheet wks)
CJF_General.c:355 */void NANUM_to_Zero()
CJF_General.c:365 void Zero_to_NANUM()
CJF_General.c:366 void Zero_to_NANUM()
CJF_General.c:378 void eop(string strMode)
CJF_General.c:403 */void CJFLoop(int iStart, int iEnd, string strCommandIn)
CJF_General.c:427 void clbls()
CJF_General.c:428 void clbls()
CJF_General.c:440 void wlbls()
CJF_General.c:451 void lbls(string strIn="d")
CJF_General.c:470 void slbls()
CJF_General.c:475 void hlbls()
CJF_General.c:480 void SetComments(int iCol, string strLabel)
CJF_General.c:485 void SetName(int iCol, string strLabel)
CJF_General.c:486 void SetName(int iCol, string strLabel)
CJF_General.c:491 void SetUnits(int iCol, string strLabel)
CJF_General.c:492 void SetUnits(int iCol, string strLabel)
CJF_General.c:497 void oneRowMean()
CJF_General.c:498 void oneRowMean()
CJF_General.c:511 void oneRowMax()
CJF_General.c:512 void oneRowMax()
CJF_General.c:524 void oneRowMin()
CJF_General.c:536 void averageUp(bool warn = true)
CJF_General.c:537 void averageUp(bool warn = true)
CJF_General.c:546 */void numbers(string strMode="on")
CJF_General.c:573 void num()
CJF_General.c:576 void numoff()
CJF_General.c:584 */void letters(string strPrefix="r")
CJF_General.c:601 */void rng(string strPrefix="r")
CJF_General.c:605 void rngletters(string strPrefix)
CJF_General.c:606 void rngletters(string strPrefix)
CJF_General.c:637 void delrng(string strPrefix="r", int iMax=100)
CJF_General.c:638 void delrng(string strPrefix="r", int iMax=100)
CJF_General.c:646 string Old_GenerateColName(int iCol)
CJF_General.c:647 string Old_GenerateColName(int iCol)
CJF_General.c:662 void cWidth(int iw)
CJF_General.c:727 */void AlignByTag(string strTag = "", double dMinutes = 10)
CJF_General.c:823 void divByUserDef()
CJF_General.c:824 void divByUserDef()
CJF_General.c:845 void MaskByUserDef(double dThresh)
CJF_General.c:880 void maskSweep(int iSweep)
CJF_General.c:881 void maskSweep(int iSweep)
CJF_General.c:909 void protocol()
CJF_General.c:910 void protocol()
CJF_General.c:984 void insertCol(int iAt=99)
CJF_General.c:985 void insertCol(int iAt=99)
CJF_General.c:1000 */void AlignColsXY()
CJF_General.c:1045 */void DeleteXColumns(bool skipFirstColumn = true)
CJF_General.c:1124 */void GetColsXY(int iColX, int iColY, string strSourceName, string strTarget)
CJF_General.c:1128 void GetXY(int iColX, int iColY, string strSourceName, string strTarget)
CJF_General.c:1129 void GetXY(int iColX, int iColY, string strSourceName, string strTarget)
CJF_General.c:1229 void GetCols_dep(int iCol, string strSourceName, string strTarget, int iExtraCol=-1)
CJF_General.c:1230 void GetCols_dep(int iCol, string strSourceName, string strTarget, int iExtraCol=-1)
CJF_General.c:1354 */void getGroups(int iColumn, string sSheetsMatching, string sSheetOutputName, int iColsToCollect=1)
CJF_General.c:1382 void rob(string strMatch, string strCmd="")
CJF_General.c:1383 void rob(string strMatch, string strCmd="")
CJF_General.c:1394 */void RunOnBooks(string strMatch, string strCmd="")
CJF_General.c:1425 void CollectRows(int iRow, string strSourceName, string strTarget)
CJF_General.c:1426 void CollectRows(int iRow, string strSourceName, string strTarget)
CJF_General.c:1476 void PrintMarkerData()
CJF_General.c:1477 void PrintMarkerData()
CJF_General.c:1506 */void GetAllCols(string sSheetNameMatch="")
CJF_General.c:1537 void appendSheet(string strOut="appendSheets")
CJF_General.c:1538 void appendSheet(string strOut="appendSheets")
CJF_General.c:1581 void gScroll()
CJF_General.c:1582 void gScroll()
CJF_General.c:1614 void ROS(string strInput, string strCmd, bool bVerbose=true, string strFromBooks="ActiveBookOnly")
CJF_General.c:1628 */void RunOnSheets(string strInput, string strCmd, bool bVerbose=true, string strFromBooks="ActiveBookOnly")
CJF_General.c:1699 void rot(string strTag, string strCmd, string strFromBooks="ActiveBookOnly")
CJF_General.c:1700 void rot(string strTag, string strCmd, string strFromBooks="ActiveBookOnly")
CJF_General.c:1703 void RunOnTags(string strTag, string strCmd, string strFromBooks="ActiveBookOnly")
CJF_General.c:1704 void RunOnTags(string strTag, string strCmd, string strFromBooks="ActiveBookOnly")
CJF_General.c:1759 void SaveAsCSV()
CJF_General.c:1760 void SaveAsCSV()
CJF_General.c:1774 */void AddTag(string strIn, string strTag)
CJF_General.c:1793 void retag(string strOne="NULL", string strTwo="NULL", string strThree="NULL")
CJF_General.c:1794 void retag(string strOne="NULL", string strTwo="NULL", string strThree="NULL")
CJF_General.c:1857 */void reject(string strOne="NULL", string strTwo="NULL")
CJF_General.c:1905 void goto(string strCol="active")
CJF_General.c:1906 void goto(string strCol="active")
CJF_General.c:1914 void goback()
CJF_General.c:1917 void gb()
CJF_General.c:1918 void gb()
CJF_General.c:1927 */void wks(string strCol="active")
CJF_General.c:2042 */void ChangeTags(string strIn, string strOut)
CJF_General.c:2060 void modNames(string strModifier="")
CJF_General.c:2061 void modNames(string strModifier="")
CJF_General.c:2080 */void modifyNames(string strModifier="")
CJF_General.c:2115 void gsnames()
CJF_General.c:2116 void gsnames()
CJF_General.c:2130 void modTags(string strModifier="")
CJF_General.c:2131 void modTags(string strModifier="")
CJF_General.c:2144 */void modifyTags(string strModifier="")
CJF_General.c:2182 string mTag(string strTagIn, string strModifier)
CJF_General.c:2183 string mTag(string strTagIn, string strModifier)
CJF_General.c:2193 */void dSheets(string strTag)
CJF_General.c:2225 void ss()
CJF_General.c:2226 void ss()
CJF_General.c:2235 */void SortSheets()
CJF_General.c:2312 void SortSheetsOld(int iDirection=1)
CJF_General.c:2313 void SortSheetsOld(int iDirection=1)
CJF_General.c:2362 */void ExtractByTag(string strTag, string strDest="", bool bKeepSource=false)
CJF_General.c:2406 */void ExtractByString(string strTag, string strDest="", bool bKeepSource=false)
CJF_General.c:2448 void wksClearNote()
CJF_General.c:2476 */void wksAddNote(string strInput)
CJF_General.c:2501 bool wksNoteContains(string strInput, bool bSearchAsSubString=false)
CJF_General.c:2502 bool wksNoteContains(string strInput, bool bSearchAsSubString=false)
CJF_General.c:2522 void wksNotesToPyNotes()
CJF_General.c:2523 void wksNotesToPyNotes()
CJF_General.c:2536 void typePath()
CJF_General.c:2537 void typePath()
CJF_General.c:2544 void abfPathToLT()
CJF_General.c:2545 void abfPathToLT()
CJF_General.c:2557 string intToStr(int value, int padding=0, string paddingChar="0")
CJF_General.c:2558 string intToStr(int value, int padding=0, string paddingChar="0")
CJF_General.c:2576 */void decimateWKS(int iWindowSize, int iStepSize = -1)
CJF_General.c:2624 void lss()
CJF_General.c:2625 void lss()
CJF_General.c:2628 void loadSummarySheet()
CJF_General.c:2629 void loadSummarySheet()
CJF_General.c:2641 void renameByParentOrABF(bool bByABF = false)
CJF_General.c:2642 void renameByParentOrABF(bool bByABF = false)
CJF_General.c:2693 */void renameByParent()
CJF_General.c:2704 */void renameByABF()
CJF_General.c:2714 */void RenameSheet(string sNewName)
CJF_General.c:2720 void FixTokens()
CJF_General.c:2721 void FixTokens()
CJF_General.c:2752 */void MergeCols()
CJF_General.c:2800 */void MergeSheetsH(int sourceFirstColumnIndex = 1)
CJF_General.c:2834 void DelAveCol()
CJF_General.c:2835 void DelAveCol()
CJF_General.c:2848 void DisplayWksPath()
CJF_General.c:2849 void DisplayWksPath()
CJF_General.c:2857 */void ShowAbfPath()
CJF_General.c:2878 */void ShowAbfPaths()
CJF_General.c:2898 void wksHash()
CJF_General.c:2899 void wksHash()
CJF_General.c:2902 void DisplayWksHash()
CJF_General.c:2903 void DisplayWksHash()
CJF_General.c:2919 void DisplayWksRowCount()
CJF_General.c:2920 void DisplayWksRowCount()
CJF_General.c:2943 */void MoveSheet(string bookDestination)
CJF_General.c:2964 void addUserParameter(string strParamName)
CJF_General.c:2971 void setUserParameter(string strParam, int iCol, string strValue)
CJF_General.c:2972 void setUserParameter(string strParam, int iCol, string strValue)
CJF_General.c:2984 bool getlink(string strIn = "-1", bool bVerbose=1)
CJF_General.c:3023 */void pastelink(string strIn = "-1", string strMethod="auto")
CJF_General.c:3098 */void linkData(string strIn = "-1", string strMethod="auto")
CJF_General.c:3197 */void setLinkTarget(string strIn="-1", bool bVerbose=1)
CJF_General.c:3221 */void activateLinkTarget()
CJF_General.c:3241 */void activateLinkSource()
CJF_General.c:3257 void lt()
CJF_General.c:3258 void lt()
CJF_General.c:3261 void linktarget()
CJF_General.c:3262 void linktarget()
CJF_General.c:3291 void slt(string strIn = "-1", bool bVerbose=1)
CJF_General.c:3294 void alt()
CJF_General.c:3297 void als()
CJF_General.c:3300 void ld(string strIn = "-1", string strMethod="auto")
CJF_General.c:3303 void copylink(int iCol = -1)
CJF_General.c:3306 void cl(int iCol = -1)
CJF_General.c:3309 void gl(string strIn = "-1")
CJF_General.c:3314 void pl(string strIn = "-1", string strMethod="auto")
CJF_General.c:3321 void GetAuto(string measurementType = "")
CJF_General.c:3322 void GetAuto(string measurementType = "")
CJF_General.c:3337 */void GetCells(string measurementType = "")
CJF_General.c:3460 */void activateLastBookSheet()
CJF_General.c:3486 */void activateByLongName(string longName)
CJF_General.c:3527 */void BaseToRangeAll(string _1="", string _2="", string _3="")
CJF_General.c:3539 */void NormToRangeAll(string _1="", string _2="", string _3="")
CJF_General.c:3553 void SlopeCorrectWKS(double dStart, double dEnd)
CJF_General.c:3575 void btrs(double dStart, double dEnd)
CJF_General.c:3576 void btrs(double dStart, double dEnd)
CJF_General.c:3588 */void BaseToRangeSlope(double dStart, double dEnd)
CJF_General.c:3648 void test_ApplyLinearRegressionSlopeCorrection()
CJF_General.c:3649 void test_ApplyLinearRegressionSlopeCorrection()
CJF_General.c:3727 */void addStatsRows()
CJF_General.c:3742 */void masterLinkRave(string bookMatch="")
CJF_General.c:3761 */void masterLink(string bookMatch="", string sheetMatch="", string colMatch="")
CJF_General.c:3834 */void FixAppend()
CJF_General.c:3875 */void getInactivation(double dMinimumFraction = .1)
CJF_General.c:3969 */void LPF(string type, double value = 1)
CJF_General.c:4156 void FitCols(bool forceZeroTimeOffset = true, bool showDetails = false)
CJF_General.c:4198 void rollingSD(int iWindowSizeSec = 5, int iRollSizeSec = 1)
CJF_General.c:4199 void rollingSD(int iWindowSizeSec = 5, int iRollSizeSec = 1)
CJF_General.c:4246 */void FreqInBinHist(float fBinSize=5, float maxTime=60)
CJF_General.c:4324 */void styleGraphs()
CJF_General.c:4340 */void styleGraph()
CJF_General.c:4407 */void Hotmods()
CJF_General.c:4543 */void RunOnCells(string command = "")
CJF_PyInterface.c:8 void setpy(string pythonFilePath="")
CJF_PyInterface.c:9 void setpy(string pythonFilePath="")
CJF_PyInterface.c:26 void runpy(string pythonFilePath="", bool bRunPyMods = true)
CJF_PyInterface.c:27 void runpy(string pythonFilePath="", bool bRunPyMods = true)
CJF_PyInterface.c:36 void pyhh()
CJF_PyInterface.c:37 void pyhh()
CJF_PyInterface.c:38 void pyTest()
CJF_PyInterface.c:39 void pyPaths()
CJF_PyInterface.c:43 void stackmean()
CJF_PyInterface.c:44 void stackout_create()
CJF_PyInterface.c:45 void stackout_1_to_fiji()
CJF_PyInterface.c:46 void stackout_2_to_fiji()
CJF_SQL.c:29 */void fixABFpaths()
CJF_SQL.c:41 void LinkSummary()
CJF_SQL.c:42 void LinkSummary()
CJF_SQL.c:65 void CheckLinks(string strOption="", string strMode="")
CJF_SQL.c:66 void CheckLinks(string strOption="", string strMode="")
CJF_SQL.c:262 void UpdateFile0Path(string strPath)
CJF_SQL.c:263 void UpdateFile0Path(string strPath)
CJF_SQL.c:326 void abfsearch(string strQuery="default", string strDetail1="", string strDetail2="")
CJF_SQL.c:327 void abfsearch(string strQuery="default", string strDetail1="", string strDetail2="")
CJF_SQL.c:423 void buildGUIDList(int iCopyToSql=0)
CJF_SQL.c:424 void buildGUIDList(int iCopyToSql=0)
CJF_Mini.c:164 void testMini(int iSweep=-1)
CJF_Mini.c:165 void testMini(int iSweep=-1)
CJF_Mini.c:412 void FormatEventMarkers()
CJF_Mini.c:413 void FormatEventMarkers()
CJF_Mini.c:463 void HideEventMarkers(int iNumToRemove=5)
CJF_Mini.c:464 void HideEventMarkers(int iNumToRemove=5)
CJF_Mini.c:468 void ChooseBatchMode()
CJF_Mini.c:469 void ChooseBatchMode()
CJF_Mini.c:483 void BatchMini()
CJF_Mini.c:484 void BatchMini()
CJF_Mini.c:495 void mp(string strSource="ABFGraph", string strTarget="UserDefined")
CJF_Mini.c:496 void mp(string strSource="ABFGraph", string strTarget="UserDefined")
CJF_Mini.c:514 */void miniP(string strSource="ABFGraph", string strTarget="UserDefined")
CJF_Mini.c:790 */void DetectEvents(string strMode="singleFile", double dSecForRun=-1.0, int iStartSec=-1, int iEndSec=-1)
CJF_Mini.c:794 void CJFMini(string strMode="singleFile", double dSecForRun=-1.0, int iStartSec=-1, int iEndSec=-1)
CJF_Mini.c:795 void CJFMini(string strMode="singleFile", double dSecForRun=-1.0, int iStartSec=-1, int iEndSec=-1)
CJF_Mini.c:1753 void AddEvnSheetColLabels(Worksheet &wksIn, Tree& trLocalParams)
CJF_Mini.c:1754 void AddEvnSheetColLabels(Worksheet &wksIn, Tree& trLocalParams)
CJF_Mini.c:1830 void AddEpBySweepSheetColLabels(Worksheet wks, TreeNode tnEventParams, string sUnits, Tree trMarks, bool bAPMode, bool bHackInStimulusColumnsWhenMarkersOn)
CJF_Mini.c:1831 void AddEpBySweepSheetColLabels(Worksheet wks, TreeNode tnEventParams, string sUnits, Tree trMarks, bool bAPMode, bool bHackInStimulusColumnsWhenMarkersOn)
CJF_Mini.c:1910 void AlignByEventSheetsByTag(Worksheet wks, pCLAMPFile myABF, TreeNode tnDefaults, bool bIsEpisodic=1)
CJF_Mini.c:1911 void AlignByEventSheetsByTag(Worksheet wks, pCLAMPFile myABF, TreeNode tnDefaults, bool bIsEpisodic=1)
CJF_Mini.c:2002 void FindEvents(pCLAMPSweep &myChan, matrix &mat, TreeNode &tnParams, Tree &trLocalParams)
CJF_Mini.c:2003 void FindEvents(pCLAMPSweep &myChan, matrix &mat, TreeNode &tnParams, Tree &trLocalParams)
CJF_Mini.c:2819 void FilterMatrixForCleanDecay(matrix &mat, bool bRecreateX=true)
CJF_Mini.c:2820 void FilterMatrixForCleanDecay(matrix &mat, bool bRecreateX=true)
CJF_Mini.c:2848 void AddEventToMatrix(uint& iEventNum, uint& iRowsIn, sEvent& Evn, matrix& mat, Tree& trLocalParams, TreeNode& tnParams)
CJF_Mini.c:2849 void AddEventToMatrix(uint& iEventNum, uint& iRowsIn, sEvent& Evn, matrix& mat, Tree& trLocalParams, TreeNode& tnParams)
CJF_Mini.c:2925 */void ExtractEvents(double dMinStart, double dMinEnd)
CJF_Mini.c:3285 void DisplayEventParametersForAllWorksheets()
CJF_Mini.c:3286 void DisplayEventParametersForAllWorksheets()
CJF_Mini.c:3291 void DisplayEventParametersForThisWorksheet(bool displayLabelsOnly = false)
CJF_Mini.c:3292 void DisplayEventParametersForThisWorksheet(bool displayLabelsOnly = false)
CJF_Mini.c:3344 */void miniConfig(string parameterName="", string parameterValue="")
CJF_Mini.c:3415 */void keepFirstEventPerSweep()
CJF_LayerTools.c:69 void tog(int i)
CJF_LayerTools.c:70 void tog(int i)
CJF_LayerTools.c:100 */void scale(int i)
CJF_LayerTools.c:125 */void cscale(int sourceLayer, int targetLayer)
CJF_LayerTools.c:163 */void inch()
CJF_LayerTools.c:181 */void cent()
CJF_LayerTools.c:186 void vShiftLay(int i, double vShift)
CJF_LayerTools.c:187 void vShiftLay(int i, double vShift)
CJF_LayerTools.c:206 void hShiftLay(int i, double hShift)
CJF_LayerTools.c:207 void hShiftLay(int i, double hShift)
CJF_LayerTools.c:225 void pos(int i)
CJF_LayerTools.c:226 void pos(int i)
CJF_LayerTools.c:242 void size(int i)
CJF_LayerTools.c:243 void size(int i)
CJF_LayerTools.c:267 void csize(int sourceLayer, int targetLayer)
CJF_LayerTools.c:287 void atop(int sourceLayer, int targetLayer)
CJF_LayerTools.c:288 void atop(int sourceLayer, int targetLayer)
CJF_LayerTools.c:309 void aleft(int sourceLayer, int targetLayer)
CJF_LayerTools.c:310 void aleft(int sourceLayer, int targetLayer)
CJF_LayerTools.c:331 void setLeft(int i, double left)
CJF_LayerTools.c:332 void setLeft(int i, double left)
CJF_LayerTools.c:342 void setTop(int i, double top)
CJF_LayerTools.c:343 void setTop(int i, double top)
CJF_LayerTools.c:353 void setPos(int i, double left, double top)
CJF_LayerTools.c:354 void setPos(int i, double left, double top)
CJF_LayerTools.c:361 void setSize(int i, double width=0, double height=0)
CJF_LayerTools.c:362 void setSize(int i, double width=0, double height=0)
CJF_LayerTools.c:375 */void setX(int targetLayer, double x1, double x2)
CJF_LayerTools.c:396 */void setY(int i, double x1, double x2)
CJF_LayerTools.c:406 void z(int i)
CJF_LayerTools.c:407 void z(int i)
CJF_LayerTools.c:428 */void hline(double i, double dStart_or_color = -1, double dEnd = -1)
CJF_LayerTools.c:476 */void hmark(double y, double xStart, double xEnd)
CJF_LayerTools.c:488 */void vmark(double x, double yStart, double yEnd)
CJF_LayerTools.c:520 */void vline(double i, double dStart_or_color = -1, double dEnd = -1)
CJF_LayerTools.c:593 */void hSpan(double y1, double y2, int colorIndex = 0, int transparency = 80)
CJF_LayerTools.c:631 */void vSpan(double x1, double x2, int colorIndex = 0, int transparency = 80)
CJF_Image.c:13 */void LoadLinescanCSV(string strFilePath = "", string strBookName = "Linescans", string strSheetName = "")
CJF_Image.c:47 */void LoadCsvWithMetadata(string strCsvFilePath = "", string strBookName = "", string strSheetName = "")
CJF_Image.c:95 TreeNode GetTreeFromJsonFile(string strFilePath)
CJF_Image.c:96 TreeNode GetTreeFromJsonFile(string strFilePath)
CJF_Image.c:102 string ReadFileText(string strFilePath)
CJF_Image.c:103 string ReadFileText(string strFilePath)
CJF_Image.c:130 void iType()
CJF_Image.c:131 void iType()
CJF_Image.c:151 void imat2(string strTabname)
CJF_Image.c:152 void imat2(string strTabname)
CJF_Image.c:222 void iLev()
CJF_Image.c:223 void iLev()
CJF_Image.c:228 void iLevconvert()
CJF_Image.c:229 void iLevconvert()
CJF_GetCols.c:26 */void GetCols(string strIn="", string strTag="", string strTarget="", string strFromBooks="ActiveBookOnly")
CJF_GetCols.c:93 void GetCols_Main(int iCol, string strCol, string strTag, string strTarget, string strFromBooks="ActiveBookOnly")
CJF_GetCols.c:94 void GetCols_Main(int iCol, string strCol, string strTag, string strTarget, string strFromBooks="ActiveBookOnly")
CJF_GetCols.c:202 void GetCols_Core(WorksheetPage &pbTemp, Worksheet &wksOut, string &strTag, int &iCol, string &strCol, string &strFromBooks, int &iSheetCounter=1)
CJF_GetCols.c:203 void GetCols_Core(WorksheetPage &pbTemp, Worksheet &wksOut, string &strTag, int &iCol, string &strCol, string &strFromBooks, int &iSheetCounter=1)
CJF_GetCols.c:400 bool GetCols_CheckX(string &strXColName, string &strXColUnits, double &dXColStep, double &dXColStart, int iSheetCounter, Worksheet &wks)
CJF_GetCols.c:401 bool GetCols_CheckX(string &strXColName, string &strXColUnits, double &dXColStep, double &dXColStart, int iSheetCounter, Worksheet &wks)
CJF_GetCols.c:461 bool GetCols_isByEventSheet(Worksheet &wks)
CJF_GetCols.c:462 bool GetCols_isByEventSheet(Worksheet &wks)
CJF_GetCols.c:483 vector GetCols_FirstEventPerSweep(Dataset &dsSource, vector &vInd, double &dOffset)
CJF_GetCols.c:484 vector GetCols_FirstEventPerSweep(Dataset &dsSource, vector &vInd, double &dOffset)
CJF_GetCols.c:496 void GetCols_Labels(Worksheet &wksOut, int iActiveCol, string strUnits, string strSourceName, string strBookName, string strSheetName, string strFromBooks)
CJF_GetCols.c:497 void GetCols_Labels(Worksheet &wksOut, int iActiveCol, string strUnits, string strSourceName, string strBookName, string strSheetName, string strFromBooks)
CJF_Video.c:19 */void dffSheet(double dTime1, double dTime2, int iXColumnIndex = 0)
CJF_Video.c:49 */void RoiLoad()
CJF_Video.c:56 void RoiLoadRaw(string roiFileXLS="")
CJF_Video.c:57 void RoiLoadRaw(string roiFileXLS="")
CJF_Video.c:61 void RoiLoadNormed(string roiFileXLS="")
CJF_Video.c:62 void RoiLoadNormed(string roiFileXLS="")
CJF_Version.c:8 string versionCurrent()
CJF_Version.c:14 void versionInfo()
CJF_Version.c:15 void versionInfo()
CJF_Version.c:19 bool versionAtLeast(int requriedMajor, int requiredMinor, int requiredPatch)
CJF_Version.c:20 bool versionAtLeast(int requriedMajor, int requiredMinor, int requiredPatch)
CJF_Version.c:27 void versionCheckDemo()
CJF_Version.c:28 void versionCheckDemo()
CJF_Version.c:57 void versionPatchIncrement()
CJF_Version.c:58 void versionPatchIncrement()
CJF_Stats.c:3 bool rStats(DataRange dr, double dStart=0, double dEnd=-1.0, string strMode="asIndex")
CJF_Stats.c:4 bool rStats(DataRange dr, double dStart=0, double dEnd=-1.0, string strMode="asIndex")
CJF_Stats.c:34 */void vStats(string strIn="-1", double dStart=0, double dEnd=-1.0, string strMode="asIndex")
CJF_Stats.c:144 void LRTest(int xCol, int yCol)
CJF_Stats.c:145 void LRTest(int xCol, int yCol)
CJF_Stats.c:178 void group(int iCol1, int iCol2)
CJF_Stats.c:179 void group(int iCol1, int iCol2)
CJF_Stats.c:214 void ungroup()
CJF_Stats.c:215 void ungroup()
CJF_Stats.c:219 void exportASCII()
CJF_Stats.c:256 void appendCols(int iLowPass=1e9)
CJF_Stats.c:257 void appendCols(int iLowPass=1e9)
CJF_Stats.c:274 void CPHD(string strSource="ProjectTree", string strTarget="UserDefined")
CJF_Stats.c:275 void CPHD(string strSource="ProjectTree", string strTarget="UserDefined")
CJF_Stats.c:381 */void mergeSheets(string strTag = "")
CJF_Stats.c:382 void mergeSheets(string strTag = "")
CJF_Stats.c:427 void bCPH(double dStartTime,double dEndTime, string strTag="NoTag")
CJF_Stats.c:428 void bCPH(double dStartTime,double dEndTime, string strTag="NoTag")
CJF_Stats.c:441 */void byEventCPH(double dStartTime,double dEndTime, string strTag="NoTag")
CJF_Stats.c:607 void WriteOutPutCol(Worksheet wksOut, string strColName, vector vData, string strLabel, double dXStart=-1, double dXStep=-1, string strXUnit="")
CJF_Stats.c:608 void WriteOutPutCol(Worksheet wksOut, string strColName, vector vData, string strLabel, double dXStart=-1, double dXStep=-1, string strXUnit="")
CJF_Stats.c:635 void old_CJFKStest(int iCol1, int iCol2)
CJF_Stats.c:675 void pmtTest()
CJF_Stats.c:862 vector vSig(vector vX, double dS, double dX0, double dH)
CJF_Stats.c:863 vector vSig(vector vX, double dS, double dX0, double dH)
CJF_Stats.c:900 */void sendToANOVA(string strFactorA="FactorA")
CJF_Stats.c:998 */void tData(string strIn1, string strIn2, string strPair="unpaired")
CJF_Stats.c:1012 void settd( int iDataset, int iCol)
CJF_Stats.c:1013 void settd( int iDataset, int iCol)
CJF_Stats.c:1035 */void std1(string strIn = "-1")
CJF_Stats.c:1055 */void std2(string strIn = "-1")
CJF_Stats.c:1071 void setTdata1(int iCol, bool bVerbose=1)
CJF_Stats.c:1084 void setTdata2(int iCol, bool bVerbose=1)
CJF_Stats.c:1085 void setTdata2(int iCol, bool bVerbose=1)
CJF_Stats.c:1108 */void tt2(string strPair="unpaired")
CJF_Stats.c:1291 */void tt2Sets(string strBeginSet1, string strBeginSet2, int iNumSets, string strPair="unpaired")
CJF_Stats.c:1325 void colStats_ttest1()
CJF_Stats.c:1326 void colStats_ttest1()
CJF_Stats.c:1352 void sheetStats_ttest_paired(string strTag, string strCol1, string strCol2)
CJF_Stats.c:1353 void sheetStats_ttest_paired(string strTag, string strCol1, string strCol2)
CJF_Tests.c:1 void cjftest_memtest()
CJF_Tests.c:2 void cjftest_memtest()
CJF_Tests.c:3 void cjftest_ap()
CJF_Tests.c:4 void cjftest_epsc()
CJF_Tests.c:5 void cjftest_scn()
CJF_Tests.c:6 void cjftest_getcols()
CJF_Tests.c:7 void cjftest_btr_etc()
CJF_Tests.c:11 void test_getcols()
CJF_Tests.c:12 void test_getcols()
CJF_Tests.c:21 void cjftest_summarySheetOperations()
CJF_Tests.c:22 void cjftest_summarySheetOperations()
CJF_Tests.c:78 void createTestFolder()
CJF_Tests.c:79 void createTestFolder()
CJF_Tests.c:83 void fillWithAscendingValues(vector &vec, int count, double delta, double first)
CJF_Tests.c:84 void fillWithAscendingValues(vector &vec, int count, double delta, double first)
CJF_Tests.c:90 void fillWithRandomWalk(vector &vec, int count, int seed)
CJF_Tests.c:91 void fillWithRandomWalk(vector &vec, int count, int seed)
CJF_Tests.c:103 void createTestWorkbook(string bookName="TestBook", int sheetCount = 20, int dataColumnCount = 5, int dataRowCount = 200)
CJF_Tests.c:144 void test_ScnNameConversion()
CJF_Tests.c:145 void test_ScnNameConversion()
CJF_Tests.c:182 bool test_cc_GetColIndexFromSCNName(string strLabel, int iExpectedColumnIndex)
CJF_Tests.c:183 bool test_cc_GetColIndexFromSCNName(string strLabel, int iExpectedColumnIndex)
CJF_Tests.c:192 bool test_cc_GetColIndexToSCNName(string strExpectedScnName, int iColumnIndex)
CJF_Tests.c:193 bool test_cc_GetColIndexToSCNName(string strExpectedScnName, int iColumnIndex)
CJF_Tests.c:205 void assert_column_hash(int columnIndex, string expectedHash)
CJF_Tests.c:206 void assert_column_hash(int columnIndex, string expectedHash)
CJF_Tests.c:220 void test_memtest()
CJF_Tests.c:221 void test_memtest()
CJF_Tests.c:238 void test_ap()
CJF_Tests.c:239 void test_ap()
CJF_Tests.c:308 void test_epsc()
CJF_Tests.c:309 void test_epsc()
CJF_Tests.c:355 void setup_minip_AP()
CJF_Tests.c:356 void setup_minip_AP()
CJF_Tests.c:389 void setup_minip_EPSC()
CJF_Tests.c:390 void setup_minip_EPSC()
CJF_Tests.c:411 void setup_rave()
CJF_Tests.c:412 void setup_rave()
CJF_EventFilter.c:134 double EF_ColIndex(double dUserInputFromTree, int iEventSheetFormat)
CJF_EventFilter.c:289 string strListBox()
CJF_EventFilter.c:317 void EF_Default()
CJF_EventFilter.c:318 void EF_Default()
CJF_EventFilter.c:430 void ef(string strSource="ProjectTree")
CJF_EventFilter.c:431 void ef(string strSource="ProjectTree")
CJF_EventFilter.c:499 bool EF_Event(TreeNode& Tr, int nRow, int CntrlType, Dialog& getNDlg)
CJF_EventFilter.c:500 bool EF_Event(TreeNode& Tr, int nRow, int CntrlType, Dialog& getNDlg)
CJF_EventFilter.c:525 bool EF_OnClickButton1(TreeNode& Tr, int nRow, int nCntrlType, Dialog& getNDlg)
CJF_EventFilter.c:530 bool EF_OnClickButton2(TreeNode& Tr, int nRow, int nCntrlType, Dialog& getNDlg)
CJF_EventFilter.c:535 bool EF_OnClickButton3(TreeNode& Tr, int nRow, int nCntrlType, Dialog& getNDlg)
CJF_EventFilter.c:545 bool EventSheetsPresent_O75(string strInput)
CJF_EventFilter.c:563 bool EventSheetsPresent(string& strInput)
CJF_EventFilter.c:564 bool EventSheetsPresent(string& strInput)
CJF_EventFilter.c:578 bool EF_Main(TreeNode &Tr)
CJF_EventFilter.c:802 void EF_GraphOutput(TreeNode &Tr, Worksheet wksFreqOut, Worksheet wksAmpOut)
CJF_EventFilter.c:803 void EF_GraphOutput(TreeNode &Tr, Worksheet wksFreqOut, Worksheet wksAmpOut)
CJF_EventFilter.c:859 bool EF_ProcessEventSheet(Worksheet& wks, TreeNode &Tr, Worksheet& wksFreqOut, Worksheet& wksAmpOut, int iTargetCol=-1)
CJF_EventFilter.c:860 bool EF_ProcessEventSheet(Worksheet& wks, TreeNode &Tr, Worksheet& wksFreqOut, Worksheet& wksAmpOut, int iTargetCol=-1)
CJF_EventFilter.c:1241 void EF_ApplyFilter(matrix& mat1, double dAsPercent, double dColIndex, double dMin, double dMax, int iFilterNumber, bool verbose)
CJF_EventFilter.c:1314 bool EF_Check_EventSheet_Format(Worksheet &wks0, TreeNode &Tr)

Code Metrics

Lines of Code

FileSource LinesLines of Code
CJF_Internal.c 93 60
CJF_Graph_Tools.c 4,728 3,070
CJF_PClampSweep.c 1,468 798
CJF_Common.c 4,635 2,919
CJF_KS2.c 142 94
CJF_Variance.c 256 58
CJF_Memtest.c 502 313
CJF_CheckLicense.c 221 134
CJF_GlobalSettings.c 636 418
CJF_SummarySheets.c 950 691
CJF_Rave.c 1,173 617
CJF_General.c 4,591 3,042
CJF_PyInterface.c 83 42
CJF_SQL.c 480 328
CJF_Mini.c 3,446 2,015
CJF_LayerTools.c 662 413
CJF_Image.c 238 165
CJF_GetCols.c 511 339
CJF_Video.c 203 139
CJF_Version.c 90 64
CJF_Stats.c 1,388 972
CJF_Tests.c 516 436
CJF_EventFilter.c 1,508 722

Generated by HtmlPage.cs on Tuesday, 23 May 2023 at 16:29