/* 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_*/
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"*/
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.*/
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..._ */
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.*/
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*/
Activates the link target workbook.
code
View source on GitHub
CJF_General.c:3242 void activateLinkSource()
/* ophys commandCATEGORY: Data LinkingActivates the link target workbook.*/
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`.*/
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_*/
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`.*/
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*/
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_ */
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_ */
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_ */
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_*/
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_ */
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.*/
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.*/
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*/
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_*/
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_*/
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.*/
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*/
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*/
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`*/
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_*/
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_*/
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.*/
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_*/
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_*/
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.*/
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.*/
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.*/
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_*/
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.*/
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*/
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.*/
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*/
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 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.*/
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*/
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*/
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.*/
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.*/
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._*/
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_*/
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.*/
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.*/
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`.*/
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`.*/
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*/
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*/