File MIES_WaveDataFolderGetters.ipf

Collection of Wave and Datafolder getter functions.

  • All functions with return types DF or Wave return an existing wave or datafolder.

  • Prefer functions which return a DFREF over functions which return strings. The latter ones are only useful if you need to know if the folder exists.

  • Modifying wave getter functions might require to introduce wave versioning, see Wave versioning support

Experiment Documentation

static const double LBN_NUMERICAL_DESCRIPTION_VERSION = 2
static const double LBN_TEXTUAL_DESCRIPTION_VERSION = 1
static const double SWEEP_SETTINGS_WAVE_VERSION = 39
dfref GetLabNotebookFolder()

Return the datafolder reference to the lab notebook.

string GetLabNotebookFolderAsString()

Return the full path to the lab notebook, e.g. root:MIES:LabNoteBook.

UTF_NOINSTRUMENTATION

dfref GetDevSpecLabNBFolder(string device)

Return the data folder reference to the device specific lab notebook.

string GetDevSpecLabNBFolderAsString(string device)

Return the full path to the device specific lab notebook, e.g. root:MIES:LabNoteBook:ITC18USB:Device0.

UTF_NOINSTRUMENTATION

wave DAQ_LBN_GETTER_PROTO(string win)
wave GetLBTextualValues(string device)

Returns a wave reference to the text labnotebook.

Rows:

  • Filled at runtime

Columns:

  • Filled at runtime

Layers:

  • 0-7: data for a particular headstage using the layer index

  • 8: headstage independent data

static variable UpgradeLabNotebook(string device)

Handle upgrades of the numerical/textual labnotebooks in one step.

This function is idempotent and must stay that way.

Supported upgrades:

  • Addition of the third column “TimeStampSinceIgorEpochUTC”

  • Addition of nineth layer for headstage independent data

  • Conversion of numeric labnotebook to 64bit floats

  • Removal of invalid units for “Stim Scale Factor”, “DA Gain” and “AD Gain”

  • Addition of fourth column “EntrySourceType”

  • Fix unit and tolerance of “Repeat Sets”

  • Reapplying the dimension labels as the old ones were cut off after 31 bytes

  • Making dimension labels valid liberal object names

  • Extending the row dimension to 6 for the key waves

  • Fixing empty column dimension labels in key waves

static string FixInvalidLabnotebookKey(string name)
static variable SetLBKeysRowDimensionLabels(wave wv)
wave GetLBTextualKeys(string device)

Return a wave reference to the text labnotebook keys.

Rows:

  • 0: Parameter Name

  • 1: Parameter Unit

  • 2: Parameter Tolerance

Columns:

  • 0: Sweep Number

  • 1: Time Stamp in local time zone

  • 2: Time Stamp in UTC

  • 3: Source entry type, one of DataAcqModes

  • 4: Acquisition state, one of AcquisitionStates

  • other columns are filled at runtime

wave GetLBNumericalKeys(string device)

Return a wave reference to the numeric labnotebook keys.

Rows:

  • 0: Name

  • 1: Units

  • 2: Tolerance

  • 3: Description

  • 4: Headstage Contingency

  • 5: ClampMode

Columns:

  • 0: Sweep Number

  • 1: Time Stamp in local time zone

  • 2: Time Stamp in UTC

  • 3: Source entry type, one of DataAcqModes

  • 4: Acquisition state, one of AcquisitionStates

  • other columns are filled at runtime

wave GetLBNumericalDescription(variable forceReload = defaultValue)

Return a wave reference to the static and read-only labnotebook descriptions for the numerical entries.

Requirements for each entry [

  • 0: Parameter Not empty

  • 1: Units Something ParseUnit() can grok or degC, bitMask, % or On/Off

  • 2: Tolerance LABNOTEBOOK_NO_TOLERANCE or a positive number including zero

  • 3: Description Not empty

  • 4: Headstage Contingency One of ALL, DEPEND, INDEP

  • 5: Clamp Mode One of IC, VC, IC;I=0, IC;VC, IC;VC;I=0 or empty

See also

CheckLBNDescriptions()]:

wave GetLBTextualDescription(variable forceReload = defaultValue)
static wave GetLBDescription_Impl(string name, variable forceReload)
variable SaveLBNumericalDescription()
variable SaveLBTextualDescription()
static variable SaveLBDescription_Impl(string name, variable version)
static variable UpgradeResultsNotebook()

Handle upgrades of the numerical/textual results logbooks in one step.

This function is idempotent and must stay that way.

Supported upgrades:

  • Fixing empty column dimension labels in key waves

wave GetLBNumericalValues(string device)

Return a wave reference to the numeric labnotebook keys.

Rows:

  • Filled at runtime

Columns:

  • Filled at runtime

Layers:

  • 0-7: data for a particular headstage using the layer index

  • 8: headstage independent data

wave GetNumericalResultsKeys()

Return a wave reference to the numerical results keys.

Rows:

  • 0: Parameter Name

  • 1: Parameter Unit

  • 2: Parameter Tolerance

Columns:

  • 0: Sweep Number (always NaN)

  • 1: Time Stamp in local time zone

  • 2: Time Stamp in UTC

  • 3: Source entry type, one of DataAcqModes

  • 4: Acquisition state, one of AcquisitionStates

  • other columns are filled at runtime

wave GetNumericalResultsValues()

Return a wave reference to the numerical results values.

Rows:

  • Filled at runtime

Columns:

  • Filled at runtime

Layers:

  • 0-7: data for a particular headstage using the layer index

  • 8: headstage independent data

wave GetTextualResultsKeys()

Return a wave reference to the textual results keys.

One user of the results wave is Sweep Formula. It stores the code and various meta information in it every time it is executed.

Rows:

  • 0: Parameter Name

  • 1: Parameter Unit

  • 2: Parameter Tolerance

Columns:

  • SweepNum: Sweep number (always NaN)

  • TimeStamp: Time stamp in local time zone since igor epoch

  • TimeStampSinceIgorEpochUTC: time stamp in UTC since igor epoch

  • EntrySourceType: One of DataAcqModes

  • AcquisitionState: One of AcquisitionStates

  • Sweep Formula code: Executed code from SweepFormula

  • Sweep Formula sweeps/channels: Displayed sweeps and channels as 2D array in the form $sweep0;$channelType0;$channelNumber0;,$sweep1;$channelType1;$channelNumber1;,...

  • Sweep Formula displayed sweeps: Displayed sweeps (deprecated)

  • Sweep Formula active channels: Active channels (deprecated)

  • Sweep Formula experiment: Name of the experiment

  • Sweep Formula device: Device

  • Sweep Formula cursor X: Information about each available cursor, see GetCursorInfos() for the exact format.

  • Sweep Formula store [X]: Stored data from SweepFormula store operation. The X is dynamic and the first argument passed.

  • Other columns are created and filled at runtime

wave GetTextualResultsValues()

Return a wave reference to the numerical results values.

Rows:

  • Filled at runtime

Columns:

  • Filled at runtime

Layers:

  • 0-7: data for a particular headstage using the layer index

  • 8: headstage independent data

wave GetLBRowCache(wave values)

Return the labnotebook cache wave holding the first and last rows into values of each sweep number.

Uses the values wave modification count to reset itself upon a change.

The stored information is the returned first/last parameter from GetLastSettingNoCache().

Rows:

  • Sweep numbers (only existing sweeps)

Columns:

  • 0: First row

  • 1: Last row

Layers:

wave GetLBIndexCache(wave values)

Index wave which serves as a labnotebook cache.

Rows:

  • Sweep numbers

Columns:

  • One for each LBN key

Layers:

The wave can be indexed with sweepNumber, settings column and entrySourceType to return the row index of the labnotebok wave where the desired value can be found.

Contents:

wave GetLBNidCache(wave numericalValues)

Free wave to cache the sweeps of one RAC/SCI ID.

Type of content:

  • valid wave

  • invalid wave reference (uncached entry)

  • wave of size zero (non-existant entry)

Rows:

  • One for each sweep number

Columns:

  • RAC (repeated acquisition cycle IDs) sweeps

  • SCI (simset cycle IDs) sweeps

static variable SetSweepSettingsDimLabels(wave dest, WaveText sourceKey)

Uses the parameter names from the sourceKey columns and write them as dimension into the columns of dest.

wave GetSweepSettingsWave(string device)

Returns a wave reference to the sweepSettingsWave.

sweepSettingsWave is used to save stimulus settings for each data sweep and create waveNotes for tagging data sweeps

Additional columns, necessary for unassociated channels, are created on runtime.

Rows:

  • One row

Columns:

Layers:

  • 0-7: data for a particular headstage using the layer index

  • 8: headstage independent data

wave GetSweepSettingsKeyWave(string device)

Returns a wave reference to the sweepSettingsKeyWave.

sweepSettingsKeyWave is used to index save stimulus settings for each data sweep and create waveNotes for tagging data sweeps

Rows:

  • 0: Parameter

  • 1: Units

  • 2: Tolerance Factor

Columns:

  • 0: Stim Scale Factor

  • 1: DAC

  • 2: ADC

  • 3: DA Gain

  • 4: AD Gain

  • 5: Set sweep count

  • 6: Insert TP on/off

  • 7: Inter-trial interval (used after the sweep it is documented for)

  • 8: TTL rack zero bits (ITC hardware), bit sum in INDEP_HEADSTAGE layer of the active DAEphys TTL channels (called TTLBit)

  • 9: TTL rack one bits, same for the second rack

  • 10: TTL rack zero channel (ITC hardware), device type dependent hardware channel used for acquisition in INDEP_HEADSTAGE layer

  • 11: TTL rack one channel (ITC hardware), same for the second rack

  • 12: Delay onset user

  • 13: Delay onset auto

  • 14: Delay termination

  • 15: Delay distributed DAQ

  • 16: Distributed DAQ

  • 17: Repeat Sets

  • 18: Scaling zero

  • 19: Indexing

  • 20: Locked indexing

  • 21: Repeated Acquisition

  • 22: Random Repeated Acquisition

  • 23: Sampling interval DA

  • 24: Sampling interval AD

  • 25: Sampling interval TTL

  • 26: Sampling interval multiplier

  • 27: Stim set length

  • 28: oodDAQ Pre Feature

  • 29: oodDAQ Post Feature

  • 30: oodDAQ Resolution

  • 31: Optimized Overlap dDAQ

  • 32: Delay onset oodDAQ

  • 33: Repeated Acquisition Cycle ID

  • 34: Stim Wave Checksum (can be used to disambiguate cases where two stimsets are named the same but have different contents)

  • 35: Multi Device mode

  • 36: Background Testpulse

  • 37: Background DAQ

  • 38: Sampling interval multiplier

  • 39: TP during ITI

  • 40: Amplifier change via I=0

  • 41: Skip analysis functions

  • 42: Repeat sweep on async alarm

  • 43: Set Cycle Count

  • 44: Stimset cycle ID

  • 45: Digitizer Hardware Type, one of HardwareDACTypeConstants

  • 46: Fixed frequency acquisition

  • 47: Headstage Active, binary flag that indicates the enabled headstage(s), the index is the headstage number

  • 48: Clamp Mode

  • 49: Igor Pro bitness

  • 50: DA ChannelType, one of DaqChannelTypeConstants

  • 51: AD ChannelType, one of DaqChannelTypeConstants

  • 52: oodDAQ member, true if headstage takes part in oodDAQ mode, false otherwise

  • 53: Autobias % (DAEphys->Settings->Amplifier)

  • 54: Autobias Interval (DAEphys->Settings->Amplifier)

  • 55: TP after DAQ

  • 56: Epochs version

  • 57: Get/Set Inter-trial interval

  • 58: Double precision data

  • 59: Save amplifier settings

  • 60: Require amplifier

  • 61: Skip Ahead

wave GetSweepSettingsTextWave(string device)

Returns a wave reference to SweepSettingsTxtData.

SweepSettingsTxtData is passed to ED_AddEntriesToLabnotebook to add entries to the labnotebook.

Rows:

  • Only one

Columns:

Layers:

  • 0-7: data for a particular headstage using the layer index

  • 8: headstage independent data

wave GetSweepSettingsTextKeyWave(string device)

Returns a wave reference to the SweepSettingsKeyTxtData.

SweepSettingsKeyTxtData is used to index SweepSettingsTxtData.

Rows:

  • Only one

Columns:

  • 0: Stim set

  • 1: DA unit

  • 2: AD unit

  • 3: TTL rack zero stim sets (ITC hardware), string list in INDEP_HEADSTAGE layer with empty entries indexed by [0, NUM_DA_TTL_CHANNELS[

  • 4: TTL rack one stim sets (ITC hardware), same for the second rack

  • 5: Analysis function pre daq

  • 6: Analysis function mid sweep

  • 7: Analysis function post sweep

  • 8: Analysis function post set

  • 9: Analysis function post daq

  • 10: Analysis function pre sweep

  • 11: Analysis function generic

  • 12: Analysis function pre set

  • 13: Analysis function parameters

  • 14: oodDAQ regions list

    • Format: $begin1-$end1;$begin2-$end2;....

    • Unit: stimset build ms.

  • 15: Electrode

  • 16: High precision sweep start timestamp in ISO8601 format

  • 17: Stimset wave note

  • 18: TTL rack zero set sweep counts (ITC hardware)

  • 19: TTL rack one set sweep counts (ITC hardware)

  • 20: TTL set sweep counts (NI hardware), string list in INDEP_HEADSTAGE layer with empty entries indexed by [0, NUM_DA_TTL_CHANNELS[

  • 21: TTL stim sets (NI hardware), string list in INDEP_HEADSTAGE layer with empty entries indexed by [0, NUM_DA_TTL_CHANNELS[

  • 22: TTL channels (NI hardware), string list in INDEP_HEADSTAGE layer with empty entries indexed by [0, NUM_DA_TTL_CHANNELS[

  • 23: Follower Device, list of follower devices (not supported anymore and therefore always empty)

  • 24: MIES version, multi line mies version string

  • 25: Igor Pro version

  • 26: Digitizer Hardware Name

  • 27: Digitizer Serial Numbers

  • 28: Epochs

  • 29: JSON config file [path] (| separated list of full file paths)

  • 30: JSON config file [SHA-256 hash] (| separated list of hashes)

  • 31: JSON config file [stimset nwb file path]

  • 32: Igor Pro build

  • 33: Indexing End Stimset

  • 34: TTL Indexing End Stimset (hardware agnostic), string list in INDEP_HEADSTAGE layer with empty entries indexed by [0, NUM_DA_TTL_CHANNELS[

  • 35: TTL Stimset wave note (hardware agnostic), same string list formatting

  • 36: TTL Stim Wave Checksum (hardware agnostic) URL-encoded payload, see URL-encoding for background information, same string list formatting

  • 37: TTL Stim set length (hardware agnostic), same string list formatting

  • 38: TTL rack zero set cycle counts (ITC hardware)

  • 39: TTL rack one set cycle counts (ITC hardware)

  • 40: TTL set cycle counts (NI hardware), string list in INDEP_HEADSTAGE layer with empty entries indexed by [0, NUM_DA_TTL_CHANNELS[

  • 41: Device (aka DAEphys panel name)

Wavebuilder

static const double WP_WAVE_LAYOUT_VERSION = 13
static const double WPT_WAVE_LAYOUT_VERSION = 11
static const double SEGWVTYPE_WAVE_LAYOUT_VERSION = 7
dfref GetWaveBuilderPath()

Returns a data folder reference to the base.

UTF_NOINSTRUMENTATION

string GetWaveBuilderPathAsString()

Returns the full path to the base path, e.g. root:MIES:WaveBuilder.

UTF_NOINSTRUMENTATION

dfref GetWaveBuilderDataPath()

Returns a data folder reference to the data.

UTF_NOINSTRUMENTATION

string GetWaveBuilderDataPathAsString()

Returns the full path to the data folder, e.g root:MIES:WaveBuilder:Data.

UTF_NOINSTRUMENTATION

dfref GetWaveBuilderDataDAPath()

Returns a data folder reference to the data.

UTF_NOINSTRUMENTATION

string GetWaveBuilderDataDAPathAsString()

Returns the full path to the data folder, e.g root:MIES:WaveBuilder:Data:DA.

UTF_NOINSTRUMENTATION

dfref GetWaveBuilderDataTTLPath()

Returns a data folder reference to the data.

UTF_NOINSTRUMENTATION

string GetWaveBuilderDataTTLPathAsString()

Returns the full path to the data folder, e.g root:MIES:WaveBuilder:Data:TTL.

UTF_NOINSTRUMENTATION

dfref GetWBSvdStimSetParamPath()

Returns a data folder reference to the stimulus set parameter.

UTF_NOINSTRUMENTATION

string GetWBSvdStimSetParamPathAS()

Returns the full path to the stimulus set parameter folder, e.g. root:MIES:WaveBuilder:SavedStimulusSetParameters.

UTF_NOINSTRUMENTATION

dfref GetWBSvdStimSetPath()

Returns a data folder reference to the stimulus set.

UTF_NOINSTRUMENTATION

string GetWBSvdStimSetPathAsString()

Returns the full path to the stimulus set, e.g. root:MIES:WaveBuilder:SavedStimulusSets.

UTF_NOINSTRUMENTATION

dfref GetWBSvdStimSetParamDAPath()

Returns a data folder reference to the stimulus set parameters of DA type.

UTF_NOINSTRUMENTATION

string GetWBSvdStimSetParamDAPathAS()

Returns the full path to the stimulus set parameters of DA type, e.g. root:MIES:WaveBuilder:SavedStimulusSetParameters:DA.

UTF_NOINSTRUMENTATION

dfref GetWBSvdStimSetParamTTLPath()

Returns a data folder reference to the stimulus set parameters of TTL type.

UTF_NOINSTRUMENTATION

string GetWBSvdStimSetParamTTLAsString()

Returns the full path to the stimulus set parameters of TTL type, e.g. root:MIES:WaveBuilder:SavedStimulusSetParameters:TTL.

UTF_NOINSTRUMENTATION

dfref GetWBSvdStimSetDAPath()

Returns a data folder reference to the stimulus set of DA type.

UTF_NOINSTRUMENTATION

string GetWBSvdStimSetDAPathAsString()

Returns the full path to the stimulus set of DA type, e.g. root:MIES:WaveBuilder:SavedStimulusSet:DA.

UTF_NOINSTRUMENTATION

dfref GetWBSvdStimSetTTLPath()

Returns a data folder reference to the stimulus set of TTL type.

UTF_NOINSTRUMENTATION

string GetWBSvdStimSetTTLPathAsString()

Returns the full path to the stimulus set of TTL type, e.g. root:MIES:WaveBuilder:SavedStimulusSet:TTL.

UTF_NOINSTRUMENTATION

wave GetTestPulse()

Return the testpulse wave.

This wave will be written in TP_CreateTestPulseWave() and will use the real sampling interval.

wave GetTestPulseAsFree()
static variable GetWPVersion()

Automated testing helper.

variable UpgradeWaveParam(wave wv)

Upgrade the wave layout of WP to the most recent one as defined in WP_WAVE_LAYOUT_VERSION

static variable AddDimLabelsToWP(wave wv)
wave GetWaveBuilderWaveParam()

Return the parameter wave for the wave builder panel.

Rows:

  • Variables synced to GUI controls, see e.g. WB_MakeWaveBuilderWave in MIES_WaveBuilder for an up to date list

Columns:

  • Segment/Epoch

Layers hold different stimulus wave form types:

  • Square pulse

  • Ramp

  • Noise

  • Sin

  • Saw tooth

  • Pulse train

  • PSC

  • Load custom wave

  • Combine

wave GetWaveBuilderWaveParamAsFree()

Return a free wave version of GetWaveBuilderWaveParam()

static variable GetWPTVersion()

Automated testing helper.

variable UpgradeWaveTextParam(WaveText wv)

Upgrade the wave layout of WPT to the most recent one as defined in WPT_WAVE_LAYOUT_VERSION

static variable AddDimLabelsToWPT(wave wv)

Add dimension labels to the WaveBuilder WPT wave.

wave GetWaveBuilderWaveTextParam()

Return the parameter text wave for the wave builder panel.

Rows:

  • 0: Name of the custom wave for EPOCH_TYPE_CUSTOM (legacy format: wave name only, current format: absolute path including the wave name)

  • 1: Analysis function, pre daq (deprecated)

  • 2: Analysis function, mid sweep (deprecated)

  • 3: Analysis function, post sweep (deprecated)

  • 4: Analysis function, post set (deprecated)

  • 5: Analysis function, post daq (deprecated)

  • 6: Formula

  • 7: Formula version: “[[:digit:]]+”

  • 8: Analysis function, pre sweep (deprecated)

  • 9: Analysis function, generic

  • 10: Unused

  • 11-26: Explicit delta values. ; separated list as long as the number of sweeps.

  • 27: Analysis function, pre set (deprecated)

  • 28: Explicit delta value for “Inter trial interval”

  • 29: Analysis function parameters. See below for a detailed explanation.

  • 30-50: unused

Formula and Formula Version are in the EPOCH_TYPE_COMBINE layer, the custom wave name is in the EPOCH_TYPE_CUSTOM layer. 11 to 26 are for all epoch types. The rest is layer independent (aka a setting for the full set) in INDEP_EPOCH_TYPE.

Columns:

  • Segment/Epoch, the very last index is reserved for textual settings for the complete set

Layers hold different stimulus wave form types:

  • Square pulse/Set specific settings

  • Ramp

  • Noise

  • Sin

  • Saw tooth

  • Pulse train

  • PSC

  • Load custom wave

  • Combine

Analysis function parameters

Format of a single parameter:

  • name:(variable|string|wave|textwave)=value

For these building blocks the following restrictions hold

Multiple entries are separated by comma (,).

wave GetWaveBuilderWaveTextParamAsFree()

Return a free wave version of GetWaveBuilderWaveTextParam()

static variable GetSegWvTypeVersion()

Automated testing helper.

variable UpgradeSegWvType(wave wv)

Upgrade the wave layout of SegWvType to the most recent one as defined in SEGWVTYPE_WAVE_LAYOUT_VERSION

static variable AddDimLabelsToSegWvType(wave wv)

Add dimension labels to the WaveBuilder SegWvType wave.

wave GetSegmentTypeWave()

Returns the segment type wave used by the wave builder panel Remember to change WB_TOTAL_NUMBER_OF_EPOCHS if changing the wave layout.

Rows:

  • 0 - 93: epoch types using one of WaveBuilderEpochTypes

  • 94: Inter trial interval delta operation, one of WaveBuilderDeltaOperationModes

  • 95: Inter trial interval delta multiplier/exponent [a. u.]

  • 96: Inter trial interval delta [s]

  • 97: Stimset global RNG seed

  • 98: Data flipping (1 or 0)

  • 99: Inter trial interval [s]

  • 100: total number of segments/epochs

  • 101: total number of steps

wave GetSegmentTypeWaveAsFree()

Return a free wave version of GetSegmentTypeWave()

wave GetEpochID()

Return the wave identifiying the begin and end times of the current epoch.

wave GetWaveBuilderDispWave()

Return the wave for visualization of the stim set in the wavebuilder panel.

wave GetWBEpochCombineList(variable channelType)
wave GetSegmentWave(variable duration = defaultValue)

Returns the segment wave which stores the stimulus set of one segment/epoch.

Parameters:

duration – time of the stimulus in ms

wave GetEpochParameterNames()

SweepFormula PSX

static const double PSX_WAVE_VERSION = 2
static const double PSX_EVENT_WAVE_COLUMNS = 14
variable UpgradePSXEventWave(wave psxEvent)
wave GetPSXEventWaveAsFree()

Return a 2D events wave as free wave.

Rows:

  • count

Cols:

  • 0/index: Event index

  • 1/peak_t: Event time [ms]

  • 2/peak: Event amplitude in deconvoluted data [y unit of data]

  • 3/post_min: Minimum of filtered and offsetted data in the range [time, time + 2ms]

  • 4/post_min_t: X location of [2]

  • 5/pre_max: Maximum of filtered and offsetted data in the range [time - 2ms, time], averaged over +/- 0.1 ms

  • 6/pre_max_t: X location of [5]

  • 7/rel_peak: Relative amplitude: [2] - [4]

  • 8/isi: Time difference to previous event [ms]

  • 9/tau: Decay constant tau of exponential fit

  • 10/Fit manual QC call: One of PSXStates

  • 11/Fit result: 1 for success, everything smaller than 0 is failure:

  • 12/Event manual QC call: One of PSXStates

  • 13/Rise Time: rise time as calculated by PSX_CalculateRiseTime()

variable SetPSXEventDimensionLabels(wave wv)
wave GetPSXSingleEventFitWaveFromDFR(dfref dfr)
wave GetPSXEventFitWaveAsFree()
wave GetPSXEventColorsWaveAsFree(variable numEvents)
wave GetPSXEventMarkerWaveAsFree(variable numEvents)
static wave GetWaveFromFolder(dfref dfr, string name)
wave GetPSXEventWaveFromDFR(dfref dfr)
wave GetPSXPeakXWaveFromDFR(dfref dfr)
wave GetPSXPeakYWaveFromDFR(dfref dfr)
wave GetPSXPeakYAtFiltWaveFromDFR(dfref dfr)
wave GetPSXEventColorsWaveFromDFR(dfref dfr)
wave GetPSXEventMarkerWaveFromDFR(dfref dfr)
wave GetPSXEventFitWaveFromDFR(dfref dfr)
wave GetPSXSweepDataWaveFromDFR(dfref dfr)
wave GetPSXSweepDataFiltOffWaveFromDFR(dfref dfr)
wave GetPSXSweepDataFiltOffDeconvWaveFromDFR(dfref dfr)
wave GetPSXEventLocationLabels(dfref dfr)
wave GetPSXEventLocationTicks(dfref dfr)
string GetPSXFolderForComboAsString(dfref dfr, variable index)
dfref GetPSXFolderForCombo(dfref dfr, variable index)
wave GetPSXComboListBox(dfref dfr)
string GetPSXSingleEventFolderAsString(dfref comboDFR)
dfref GetPSXSingleEventFolder(dfref comboDFR)
wave GetPSXAverageWave(dfref dfr, variable state)

Return the average wave of the given state for the PSX event plot.

dfr can be either singleEventDFR for the per-combo averages or workDFR for the average over all events disregarding the combo.

wave GetPSXAcceptedAverageFitWaveFromDFR(dfref dfr)

Test Pulse

wave GetTPStorage(string device)

Return a wave reference for TPStorage.

Stores properties of the testpulse during TP

ROWS:

  • One entry per step

COLS:

  • NUM_HEADSTAGES

LAYERS:

  • 0: Amplifier holding command (Voltage Clamp)

  • 1: Amplifier bias current (Current Clamp)

  • 2: (Peak/Instantaneous) Resistance

  • 3: (Steady State) Resistance

  • 4: Time in s (arbitrary zero)

  • 5: Delta time in s relative to the entry in the first row of layer 3

  • 6: (Steady State) Resistance slope

  • 7: Pressure in psi

  • 8: Timestamp since igor epoch (with timezone offsets)

  • 9: Timestamp in UTC since igor epoch

  • 10: Pressure changed

  • 11: Holding current (pA, Voltage Clamp)

  • 12: Vrest (mV, Current Clamp)

  • 13: AD channel

  • 14: DA channel

  • 15: Headstage

  • 16: ClampMode

  • 17: UserPressure

  • 18: PressureMethod (see PressureModeConstants)

  • 19: ValidState (true if the entry is considered valid, false otherwise)

  • 20: UserPressureType (see PressureTypeConstants)

  • 21: UserPressureTimeStampUTC timestamp since Igor Pro epoch in UTC where the user pressure was acquired

  • 22: TPMarker unique number identifying this set of TPs

  • 23: Cell state: Pressure control values defining the cell state, one of CellStateValues

  • 24: Testpulse Cycle Id (changes whenever TP is started, allows to group TPs together)

  • 25: Auto TP Amplitude: success/fail state

  • 26: Auto TP Baseline: success/fail state

  • 27: Auto TP Baseline Range Exceeded: True/False

  • 28: Auto TP Cycle ID: Unique number which is constant until the “Auto TP” state is switched (aka on->off or off->on)

  • 29: Auto TP Baseline Fit result: One of TPBaselineFitResults

  • 30: Auto TP Delta V [mV]

wave GetAcqTPStorage()

Return a free wave reference for AcqTPStorage wave for passing to ACQ4.

The wave stores PeakResistance, SteadyStateResistance, and TimeStamp in rows and headstages in cols

dfref GetDeviceTestPulse(string device)

Return a datafolder reference to the test pulse folder.

UTF_NOINSTRUMENTATION

string GetDeviceTestPulseAsString(string device)

Return the path to the test pulse folder, e.g. root:mies:HardwareDevices:ITC1600:Device0:TestPulse.

UTF_NOINSTRUMENTATION

wave GetScaledDataWave(string device)

Return a wave which holds undecimated and scaled data.

ScaledDataWave is initialized in

For ITC on initialization the channels are filled with NaN and the headstages data unit is set. In

Unversioned Wave:

See also

DC_InitScaledDataWave Each channel contains scaled data that takes the gain from the headstage into account. In the channel wave the voltage output to the DAC and read from the ADC is translated back to the headstages input/output signal (e.g. mV / pA). The x-time interval is milliseconds.

See also

SCOPE_ITC_UpdateOscilloscope all channels are copied from the DAQDataWave to the scaledDataWave and properly scaled. For NI on initialization the non-ADC channels are copied from the DAQDataWave to the scaledDataWave and properly scaled. The ADC channels are scaled by a gain factor that is applied in hardware (or the device XOP). Thus, in

See also

SCOPE_SU_UpdateOscilloscope the ADC channel data is simply copied from the DAQDataWave to the scaledDataWave.

Rows:

  • StopCollectionPoint

Columns:

  • Number of active channels

Type:

Version 1: WAVEREF wave, initially with size 0 sized in

See also

DC_MakeHelperWaves to number of hardware channels as in config wave

wave GetOscilloscopeWave(string device)

Return a wave for displaying scaled data in the oscilloscope window.

Contents can be decimated for faster display.

wave GetScaledTPTempWave(string device)

Return a wave for temporary storing scaled data for PowerSpectrum input.

wave GetTPOscilloscopeWave(string device)

Return a wave for displaying scaled TP data in the oscilloscope window for the “TP during DAQ” channels or for TP power spectrum during Test Pulse.

Rows:

  • Holds exactly one TP

Columns:

wave GetStoredTestPulseWave(string device)

Return a wave reference wave for storing the full test pulses.

wave GetTPResults(string device)

Return the testpulse results wave.

Rows:

  • 0: Resistance Instantaneous: [MΩ]

  • 1: Baseline Steady State: [mV] for IC, [pA] for VC

  • 2: Resistance Steady State: [MΩ]

  • 3: Elevated Steady State: [mV] for IC, [pA] for VC

  • 4: Elevated Instantaneous: [mV] for IC, [pA] for VC

  • 5: Auto TP Amplitude: Pass/Fail

  • 6: Auto TP Baseline: Pass/Fail

  • 7: Auto TP Baseline range exceeded: True/False

  • 8: Auto TP Baseline fit result: One of TPBaselineFitResults

  • 9: Auto TP Delta V: [mV]

Columns:

  • NUM_HEADSTAGES

wave GetTPResultsBuffer(string device)

Return the testpulse results buffer wave.

Same layout as GetTPResults() but as many layers as the buffer size.

Amplifier

dfref GetAmplifierFolder()

Return the datafolder reference to the amplifier.

UTF_NOINSTRUMENTATION

string GetAmplifierFolderAsString()

Return the path to the amplifierm e.g. root:mies:Amplifiers”.

UTF_NOINSTRUMENTATION

wave GetAmplifierParamStorageWave(string device)

Return a wave reference to the amplifier parameter storage wave.

Rows:

  • 0-31: Amplifier settings identified by dimension labels

Columns:

  • Only one

Layers:

  • 0-7: Headstage identifier

Contents:

  • numerical amplifier settings

wave GetAmplifierSettingsWave()

Return a free wave reference for the amplifier settings, data wave.

Rows:

  • Only one

Columns:

  • Amplifier parameters as described in the amplifier settings key wave

Layers:

  • 0-7: data for a particular headstage using the layer index

  • 8: headstage independent data

wave GetAmplifierSettingsKeyWave()

Return a free wave reference for the amplifier settings, key wave.

Rows:

  • 0: Parameter

  • 1: Units

  • 2: Tolerance factor

Columns:

  • Various settings

wave GetAmplifierSettingsTextWave()

Return a free wave for the amplifier text settings, data wave.

Rows:

  • Only one

Columns:

  • Amplifier parameters as described in the amplifier settings text key wave

Layers:

  • 0-7: data for a particular headstage using the layer index

  • 8: headstage independent data

wave GetAmplifierSettingsTextKeyWave()

Return a free wave for the amplifier text settings, key wave.

Rows:

  • 0: Parameter

  • 1: Units

  • 2: Tolerance factor

Columns:

  • Various settings

wave GetAmplifierTelegraphServers()

Return wave reference to the W_TelegraphServers wave.

Call AI_FindConnectedAmps() to create that wave, otherwise an empty wave is returned.

wave GetAmplifierMultiClamps()

Return wave reference to the W_MultiClamps wave.

Call AI_FindConnectedAmps() to create that wave, if that was not done an empty wave is returned.

Asynchronous Measurements

wave GetAsyncSettingsWave()

Return a free wave for the asyncSettingsWave, data wave.

asyncSettingsWave is used to save async settings for each data sweep and create waveNotes for tagging data sweeps

Rows:

  • One row

Columns:

  • Same as GetAsyncSettingsKeyWave

Layers:

wave GetAsyncSettingsKeyWave(wave settingsWave, variable channel, string title, string unit)

Return a free wave for the asyncSettingsKeyWave.

asyncSettingsKeyWave is used to index async settings for each data sweep and create waveNotes for tagging data sweeps

Rows:

  • 0: Parameter

  • 1: Units

  • 2: Tolerance Factor

Columns:

  • 0: Async AD $Channel OnOff

  • 1: Async AD $Channel Gain

  • 2: Async Alarm $Channel OnOff

  • 3: Async Alarm $Channel Min

  • 4: Async Alarm $Channel Max

  • 5: Async AD $Channel [$Title]

wave GetAsyncSettingsTextWave()

Return a free wave for the AsyncSettingsTxtWave.

AsyncSettingsTxtData is used to store the async text settings used on a particular headstage and then create waveNotes for the sweep data

Rows:

  • Only one

Columns:

  • Same as GetAsyncSettingsTextKeyWave

Layers:

wave GetAsyncSettingsTextKeyWave(WaveText settingsWave, variable channel)

Return a free wave for the AsyncSettingsKeyTxtData.

AsyncSettingsKeyTxtData is used to index Txt Key Wave

Rows:

  • Just one

Columns:

  • 0: Async $Channel Title

  • 1: Async $Channel Unit

Pressure Control

string P_GetDevicePressureFolderAS(string device)

Returns device specific pressure folder as string.

dfref P_DeviceSpecificPressureDFRef(string device)

Creates device specific pressure folder - used to store data for pressure regulators.

UTF_NOINSTRUMENTATION

string P_GetPressureFolderAS(string device)

Returns pressure folder as string.

UTF_NOINSTRUMENTATION

dfref P_PressureFolderReference(string device)

Returns the data folder reference for the main pressure folder “root:MIES:Pressure”.

UTF_NOINSTRUMENTATION

wave P_GetITCData(string device)

Returns a wave reference to the DAQ data wave used for pressure pulses.

Rows:

Columns:

  • 0: DA data

  • 1: AD data

  • 2: TTL data rack 0

  • 3: TTL data rack 1 (available if supported by the device)

wave P_GetITCChanConfig(string device)

Returns a wave reference to the DAQ config wave used for pressure pulses.

Rows:

  • 0: DA channel specifications

  • 1: AD channel specifications

  • 2: TTL rack 0 specifications

  • 3: TTL rack 1 specifications (available if supported by the device)

Columns:

  • 0: Channel Type

  • 1: Channel number

  • 2: Sampling interval

  • 3: Decimation

static variable SetPressureWaveDimLabels(wave wv)

Set the dimension labels for the numeric pressure wave.

wave P_GetPressureDataWaveRef(string device)

Returns wave reference of wave used to store data used in functions that run pressure regulators creates the wave if it does not exist.

Rows:

  • 0 - 7: Headstage 0 through 7

Columns:

  • 0: Pressure method. -1 = none, 0 = Approach, 1 = Seal, 2 = Break In, 3 = Clear

  • 1: List position of DAC (used for presssure control) selected for headstage

  • 2: Type of DAC, index into HARDWARE_DAC_TYPES

  • 3: Device ID used by Instrutech DACs or index into HW_NI_ListDevices depending on column 2

  • 4: DA channel used for pressure regulation.

  • 5: Gain of DA channel used for presssure regulation.

  • 6: AD channel used for pressure regulation.

  • 7: Gain of AD channel used for pressure regulation.

  • 8: TTL channel A used for pressure regulation.

  • 9: Pipette pressure setting while pipette is positioned in air/outside of bath.

  • 10: Pipette pressure setting for pipette positioned in the bath.

  • 11: Pipette pressure setting for pipette positioned in the slice.

  • 12: Pipette pressure setting for pipette positioned near the target cell.

  • 13: Pipette pressure setting for pipette at the initialization of seal formation.

  • 14: Maximum Pipette pressure setting for seal formation.

  • 15: Distance between the bottom of the recording chamber to the surface of the bath solution.

  • 16: Distance between the bottom of the recording chamber and the top of the tissue slice.

  • 17: Distance between the bottom of the recording chamber and the soma of the target cell.

  • 18: X position (in the stage frame) of the soma of the target cell.

  • 19: Y position (in the stage frame) of the soma of the target cell.

  • 20: Place holder for future data.

  • 21: Realtime pressure

  • 22: Last steady state resistance value.

  • 23: Slope of the peak TP resistance over the last 5 seconds.

  • 24: State of the TP (0 = OFF, 1 = ON).

  • 25: Slope threshold. Used to determine if pressure should be incremented during sealing.

  • 26: Time of last slope check

  • 27: Last pressure command.

  • 28: State of pressure pulse (0 = OFF, 1 = ON).

  • 29: Last amplifier voltage command.

  • 30: Manual pressure command amplitude in psi.

  • 31: Manual pressure pulse command amplitude in psi.

  • 32: Manual pressure pulse duation in ms.

  • 33: Peak resistance on previous method cycle.

  • 34: Peak resistance on active method cycle.

  • 35: Time of last peak resistance check.

  • 36: Calibration constant for positive pulse.

  • 37: Calibration constant for negative pulse.

  • 38: Checkbox state of “Approach Near”.

  • 39: Checkbox state of “Seal Atmosphere”.

  • 40: Selected headstage by the slider.

  • 41: User pressure offset in psi.

  • 42: Total sum of user pressure offsets in psi.

  • 43: Total sum of user pressure offsets since last pulse in psi.

  • 44: TTL channel B used for pressure regulation.

  • 45: User pressure deviceID

  • 46: User pressure device hardware type

  • 47: User pressure ADC

wave P_PressureDataTxtWaveRef(string device)

Returns wave reference for wave used to store text used in pressure control.

Rows:

  • 0 - 7: Headstage 0 through 7

Columns:

  • 0: Digitial to analog converter device type string.

  • 1: DA unit.

  • 2: AD unit.

Analysis Browser

dfref GetAnalysisFolder()

Return the datafolder reference to the root folder for the analysis browser.

UTF_NOINSTRUMENTATION

string GetAnalysisFolderAS()

Return the full path to the root analysis folder, e.g. root:MIES:analysis.

UTF_NOINSTRUMENTATION

dfref GetAnalysisExpFolder(string expFolder)

Return the datafolder reference to the per experiment folder.

UTF_NOINSTRUMENTATION

string GetAnalysisExpFolderAS(string expFolder)

Return the full path to the per experiment folder, e.g. root:MIES:Analysis:my_experiment.

UTF_NOINSTRUMENTATION

dfref GetAnalysisDeviceFolder(string expFolder, string device)

Return the datafolder reference to the per device folder of an experiment.

UTF_NOINSTRUMENTATION

string GetAnalysisDeviceFolderAS(string expFolder, string device)

Return the full path to the per device folder of an experiment, e.g. root:MIES:Analysis:my_experiment:ITC18USB_Dev_0.

UTF_NOINSTRUMENTATION

dfref GetAnalysisDevChannelFolder(string expFolder, string device)

Return the datafolder reference to the sweep to channel relation of a device and experiment pair.

UTF_NOINSTRUMENTATION

string GetAnalysisDevChannelFolderAS(string expFolder, string device)

Return the full path to the sweep to channel relation folder of a device and experiment pair, e.g. root:MIES:Analysis:my_experiment:ITC18USB_Dev_0:channel.

UTF_NOINSTRUMENTATION

dfref GetAnalysisDeviceConfigFolder(string expFolder, string device)

Return the datafolder reference to the sweep config folder of a device and experiment pair.

UTF_NOINSTRUMENTATION

string GetAnalysisDeviceConfigFolderAS(string expFolder, string device)

Return the full path to the sweep config folder of a device and experiment pair, e.g. root:MIES:Analysis:my_experiment:ITC18USB_Dev_0:config.

UTF_NOINSTRUMENTATION

dfref GetAnalysisDeviceTestpulse(string expFolder, string device)

Return the datafolder reference to the testpulse folder of a device and experiment pair.

UTF_NOINSTRUMENTATION

string GetAnalysisDeviceTestpulseAS(string expFolder, string device)

Return the full path to the testpulse folder of a device and experiment pair, e.g. root:MIES:Analysis:my_experiment:ITC18USB_Dev_0:testpulse.

UTF_NOINSTRUMENTATION

dfref GetAnalysisLabNBFolder(string expFolder, string device)

Return the datafolder reference to the labnotebook folder of a device and experiment pair.

UTF_NOINSTRUMENTATION

string GetAnalysisLabNBFolderAS(string expFolder, string device)

Return the full path to the labnotebook folder of a device and experiment pair, e.g. root:MIES:Analysis:my_experiment:ITC18USB_Dev_0:labnotebook.

UTF_NOINSTRUMENTATION

dfref GetAnalysisSweepPath(string expFolder, string device)

Return the datafolder reference to the sweep folder of a device and experiment pair.

UTF_NOINSTRUMENTATION

string GetAnalysisSweepPathAsString(string expFolder, string device)

Return the full path to the sweep folder of a device and experiment pair, e.g. root:MIES:Analysis:my_experiment:ITC18USB_Dev_0:sweep.

UTF_NOINSTRUMENTATION

dfref GetAnalysisSweepDataPath(string expFolder, string device, variable sweep)

Return the datafolder reference to the per sweep folder.

UTF_NOINSTRUMENTATION

string GetAnalysisSweepDataPathAS(string expFolder, string device, variable sweep)

Return the full path to the the per sweep folder, e.g. root:MIES:Analysis:my_experiment:ITC18USB_Dev_0:sweep:X_$sweep.

UTF_NOINSTRUMENTATION

dfref GetAnalysisStimSetPath(string expFolder, string device)

Return the datafolder reference to the stim set folder.

UTF_NOINSTRUMENTATION

string GetAnalysisStimSetPathAS(string expFolder, string device)

Return the full path to the stim set folder, e.g. root:MIES:Analysis:my_experiment::stimset.

UTF_NOINSTRUMENTATION

dfref GetAnalysisResultsFolder(string expFolder)

Return the datafolder reference to results folder of an experiment.

UTF_NOINSTRUMENTATION

string GetAnalysisResultsFolderAsString(string expFolder)

Return the datafolder reference to results folder of an experiment, e.g. root:MIES:Analysis:my_experiment:results.

UTF_NOINSTRUMENTATION

wave GetAnalysisResultsWave(string expFolder, variable type)

Return one of the four results waves.

Parameters:
wave GetAnalysisChannelStorage(string dataFolder, string device)

wave is used to relate it’s index to sweepWave and deviceWave.

wave GetAnalysisChannelStimWave(string dataFolder, string device)

Return a wave containing all stimulus channels in the NWB file as a “;”-separated List wave is used to relate it’s index to sweepWave and deviceWave.

wave GetAnalysisChannelAcqWave(string dataFolder, string device)

Return a wave containing all acquisition channels in the NWB file as a “;”-separated List wave is used to relate it’s index to sweepWave and deviceWave.

wave GetAnalysisChannelSweepWave(string dataFolder, string device)

Return a wave containing all sweeps in a unique fashion. wave is used to relate it’s index to channelWave and deviceWave.

wave GetAnalysisDeviceWave(string dataFolder)

Return a wave containing all devices wave is used to relate it’s index to sweepWave and channelWave.

wave GetAnalysisStoredTestPulses(string dataFolder, string device)

Return wave with all stored test pulses.

wave GetAnalysisBrowserMap()

Return AnalysisBrowser indexing storage wave.

Rows:

  • Experiments found in current Directory

Columns:

  • 0: DiscLocation: Path to Experiment on Disc

  • 1: FileName: Name of File in experiment column in ExperimentBrowser

  • 2: DataFolder Data folder inside current Igor experiment

  • 3: FileType File Type identifier for routing to loader functions, one of AnalysisBrowserFileTypes

wave GetAnalysisBrowserGUIFolderList()

Return the text wave used in the folder listbox of the analysis browser.

wave GetAnalysisBrowserGUIFolderSelection()

Return the selection wave used in the folder listbox of the analysis browser.

wave GetAnalysisBrowserGUIFolderColors()

Return the color wave used in the folder listbox of the analysis browser.

wave GetExperimentBrowserGUIList()

Return the text wave used in the listbox of the experiment browser.

The “experiment” column in the second layer maps to the corresponding row in the experimentMap.

wave GetExperimentBrowserGUISel()

Return the selection wave used in the listbox of the experiment browser.

wave GetAnalysisConfigWave(string dataFolder, string device, variable sweep)

Return the configSweep wave of a given sweep from the analysis subfolder.

wave ANALYSIS_LBN_GETTER_PROTO(string expFolder, string device)

UTF_NOINSTRUMENTATION.

wave GetAnalysLBNumericalValues(string expFolder, string device)

Return the numerical labnotebook values in the analysis browser of a device and experiment pair.

wave GetAnalysLBTextualValues(string expFolder, string device)

Return the textual labnotebook keys in the analysis browser of a device and experiment pair.

wave GetAnalysLBNumericalKeys(string expFolder, string device)

Return the numerical labnotebook keys in the analysis browser of a device and experiment pair.

wave GetAnalysLBTextualKeys(string expFolder, string device)

Return the textual labnotebook keys in the analysis browser of a device and experiment pair.

Getters relating to caching

Return the datafolder reference to the wave cache UTF_NOINSTRUMENTATION

dfref GetCacheFolder()
string GetCacheFolderAS()

Return the full path to the wave cache datafolder, e.g. root:MIES:Cache UTF_NOINSTRUMENTATION.

wave GetCacheValueWave()

Return the wave reference wave holding the cached data.

Dimension sizes and NOTE_INDEX value must coincide with other two cache waves. UTF_NOINSTRUMENTATION

wave GetCacheKeyWave()

Return the wave reference wave holding the cache keys.

Dimension sizes and NOTE_INDEX value must coincide with other two cache waves. UTF_NOINSTRUMENTATION

wave GetCacheStatsWave()

Return the wave reference wave holding the cache stats.

Rows:

  • One for each cache entry

Columns:

  • 0: Number of cache hits (Incremented for every read)

  • 1: Number of cache misses (Increment for every failed lookup)

  • 2: Modification timestamp (Updated on write)

  • 3: Size in bytes (Updated on write)

Dimension sizes and NOTE_INDEX value must coincide with other two cache waves. UTF_NOINSTRUMENTATION

Return the datafolder reference to the debug folder

UTF_NOINSTRUMENTATION

dfref GetDebugPanelFolder()
string GetDebugPanelFolderAS()

Return the full path to the debug datafolder, e.g. root:MIES:Debug.

UTF_NOINSTRUMENTATION

wave GetDebugPanelListWave()

Return the list wave for the debug panel.

wave GetDebugPanelListSelWave()

Return the list selection wave for the debugging panel.

AnalysisFunctionGetters Getters used by analysis functions

wave GetAnalysisFuncIndexingHelper(string device)

Return a wave reference which holds an headstage-dependent index.

Can be used by analysis function to count the number of invocations.

wave GetAnalysisFuncDAScaleDeltaV(string device)

Return a wave reference which holds the “Delta V” values of all sweeps from one repeated acquisition cycle.

Used by PSQ_AdjustDAScale().

Rows:

  • Sweeps

Columns:

  • Headstages

wave GetAnalysisFuncDAScaleDeltaI(string device)

Return a wave reference which holds the “Delta I” values of all sweeps from one repeated acquisition cycle.

Used by PSQ_AdjustDAScale().

Rows:

  • Sweeps

Columns:

  • Headstages

wave GetAnalysisFuncDAScaleRes(string device)

Return a wave reference to the fitted resistance values and its error.

Used by PSQ_AdjustDAScale().

Rows:

  • Headstages

Columns:

  • Value

  • Error (standard deviation)

wave GetAnalysisFuncDAScaleResFit(string device, variable headstage)

Return a wave reference to the fitted resistance wave created by CurveFit

Used by PSQ_AdjustDAScale().

wave GetAnalysisFuncDAScaleSpikeFreq(string device, variable headstage)

Return a wave reference to the spikes frequency wave.

Used by PSQ_AdjustDAScale().

wave GetAnalysisFuncDAScaleFreqFit(string device, variable headstage)

Return a wave reference to the spikes frequency wave.

Used by PSQ_AdjustDAScale().

wave GetAnalysisFuncDAScales(string device, variable headstage)

Return a wave reference to the DAScale wave.

Used by PSQ_AdjustDAScale().

Async Framework

wave GetDFREFbuffer(dfref dfr)

Return wave reference to wave with data folder reference buffer for delayed readouts 1d wave for data folder references, starts with size 0 when jobs should be read out in order, the waiting data folders are buffered in this wave e.g. if the next read out would be job 2, but a data folder from job 3 is returned the data folder is buffered until the one from job 2 appears from the output queue.

wave GetWorkloadTracking(dfref dfr)

Returns wave ref for workload tracking 2d wave row stores work load classes named through dimension label column 0 stores how many work loads were pushed to Async column 1 stores how many work loads were read out from Async.

wave GetSerialExecutionBuffer(dfref dfr)

Returns wave ref for buffering results when THREADING_DISABLED is defined 1D wave using NOTE_INDEX logic.

string GetAsyncHomeStr()

Returns string path to async framework home data folder.

UTF_NOINSTRUMENTATION

dfref GetAsyncHomeDF()

Returns reference to async framework home data folder.

UTF_NOINSTRUMENTATION

Functions

wave GetLogbookValuesFromKeys(wave keyWave)

Return a wave reference to the corresponding Logbook keys wave from an values wave input.

wave GetLogbookKeysFromValues(wave valuesWave)

Return a wave reference to the corresponding Logbook values wave from an keys wave input.

wave GetChanAmpAssign(string device)

Return a wave reference to the channel <-> amplifier relation wave (numeric part)

Rows:

  • 0-3: V-Clamp: DA channel, DA gain, AD channel, AD gain

  • 4-7: I-Clamp: DA channel, DA gain, AD channel, AD gain

  • 8: Amplifier Serial number as returned by AxonTelegraphFindServers. This differs compared to the ones returned by MCC_FindServers, as the latter are strings with leading zeros. E.g.: “00000123” vs 123 E.g.: “Demo” vs 0

  • 9: Amplifier Channel ID

Columns:

  • Head stage number

wave GetChanAmpAssignUnit(string device)

Return a wave reference to the channel <-> amplifier relation wave (textual part)

Rows:

  • 0: DA unit (V-Clamp mode)

  • 1: AD unit (V-Clamp mode)

  • 2: DA unit (I-Clamp mode)

  • 3: AD unit (I-Clamp mode)

Columns:

  • Head stage number

static variable ExistsWithCorrectLayoutVersion(WaveOrNull wv, variable versionOfNewWave)

Check if wv exists and has the correct version UTF_NOINSTRUMENTATION.

static variable WaveVersionIsAtLeast(WaveOrNull wv, variable existingVersion)

Check if the given wave’s version is equal or larger than the given version, if version is not set false is returned.

static variable IsWaveVersioned(wave wv)

Returns 1 if the wave has a valid version information attached, 0 otherwise.

static variable WaveVersionIsSmaller(WaveOrNull wv, variable existingVersion)

Check if the given wave’s version is smaller than the given version, if version is not set true is returned.

variable GetWaveVersion(WaveOrNull wv)

return the Version of the Wave, returns NaN if no version was set UTF_NOINSTRUMENTATION

static variable SetWaveVersion(wave wv, variable val)

Set the wave layout version of wave.

static variable IsValidWaveVersion(variable value)

A valid wave version is a positive non-zero integer.

variable ClearWaveNoteExceptWaveVersion(wave wv)

Clear the wave note but keep any valid wave version.

dfref UpgradeDataFolderLocation(string oldFolder, string newFolder)

Move/Rename a datafolder across different locations.

Both parameters must be absolute datafolder locations. Cases where both exist are also handled gracefully.

Function/DF GetMyFolder()
    return UpgradeDataFolderLocation("root:old", "root:new")
End

Returns:

DFREF to the newFolder with the contents of oldFolder

wave UpgradeWaveLocationAndGetIt(WaveLocationMod *p)

Rename/Move a wave to a new location.

Valid transformations (and all combinations of them):

  • Moving into a new datafolder

  • Renaming to a new name

  • Nothing

The function is idempotent (i.e. it can be called also on already relocated waves). Cases where new == old are also handled gracefully.

Function/WAVE GetMyWave(device)
    string device

    variable versionOfNewWave = 1
    string newName = "newAndNiceName"
    DFREF newDFR = GetNewAndFancyFolder(device)

    STRUCT WaveLocationMod p
    p.dfr     = $(GetSomeFolder(device) + ":oldSubFolder")
    p.newDFR  = newDFR
    p.name    = "oldAndUglyName"
    p.newName = newName

    WAVE/Z wv = UpgradeWaveLocationAndGetIt(p)

    if(ExistsWithCorrectLayoutVersion(wv, versionOfNewWave))
        return wv
    elseif(WaveExists(wv))
        // handle upgrade
    else
        Make/R/N=(10, 2) newDFR:newName/Wave=wv
    end

    SetWaveVersion(wv, versionOfNewWave)

    return wv
End

Returns:

wave reference to the wave in the new location, an invalid one if the wave does not exist at the specified former location

wave GetTPResultAsyncBuffer(string device)

Return a wave reference to the tp result async buffer wave.

Rows:

  • buffered partial result entries

Column 0 (ASYNCDATA):

  • Layers:

    • 0: marker

    • 1: received channels

    • 2: now Column 1: baseline level Column 2: steady state res Column 3: instantaneous res Column 4: baseline position Column 5: steady state res position Column 6: instantaneous res position Column 7: average elevated level (steady state) Column 8: average elevated level (instantaneous)

Layers:

  • NUM_HEADSTAGES positions with value entries at hsIndex

wave GetChannelClampMode(string device)

Return a wave reference to the channel clamp mode wave.

Only specialized code which does not have a headstage, or needs to know the clamp mode for unassociated channels, should use this function.

Rows:

  • Channel numbers

Columns:

  • 0: DAC

  • 1: ADC

Layers:

  • 0: Clamp Mode

  • 1: Headstage

wave GetHSProperties(string device)

Return properties for the headstages during TP/DAQ.

dfref GetDAQDevicesFolder()

Return the DAQ devices folder “root:mies:HardwareDevices”.

string GetDAQDevicesFolderAsString()

Return a data folder reference to the DAQ devices folder.

UTF_NOINSTRUMENTATION

dfref GetActiveDAQDevicesTimerFolder()

Return the active DAQ devices timer folder “root:mies:HardwareDevices:ActiveDAQDevices:Timer”.

string GetActiveDAQDevicesTimerAS()

Return a data folder reference to the active DAQ devices timer folder.

dfref GetActiveDAQDevicesFolder()

Return the active DAQ devices folder “root:mies:HardwareDevices:ActiveDAQDevices”.

string GetActiveDAQDevicesFolderAS()

Return a data folder reference to the active DAQ devices folder.

dfref GetDeviceTypePath(string deviceType)

Return a datafolder reference to the device type folder.

string GetDeviceTypePathAsString(string deviceType)

Return the path to the device type folder, e.g. root:mies:HardwareDevices:ITC1600.

UTF_NOINSTRUMENTATION

dfref GetDevicePath(string device)

Return a datafolder reference to the device folder.

UTF_NOINSTRUMENTATION

string GetDeviceInfoPathAsString()

Return the path to the device info folder, e.g. root:mies:HardwareDevices:DeviceInfo.

UTF_NOINSTRUMENTATION

dfref GetDeviceInfoPath()

Return a datafolder reference to the device info folder.

string GetDevicePathAsString(string device)

Return the path to the device folder, e.g. root:mies:HardwareDevices:ITC1600:Device0.

UTF_NOINSTRUMENTATION

dfref GetDeviceDataPath(string device)

Return a datafolder reference to the device data folder.

string GetDeviceDataPathAsString(string device)

Return the path to the device folder, e.g. root:mies:HardwareDevices:ITC1600:Device0:Data.

UTF_NOINSTRUMENTATION

dfref GetMiesPath()

Returns a data folder reference to the mies base folder.

UTF_NOINSTRUMENTATION

string GetMiesPathAsString()

Returns the base folder for all MIES functionality, e.g. root:MIES UTF_NOINSTRUMENTATION.

dfref GetSweepFormulaPath()

Returns a data folder reference to the sweep formula folder.

string GetSweepFormulaPathAsString()

Returns the temporary folder for Sweep formula, e.g. root:MIES:SweepFormula.

UTF_NOINSTRUMENTATION

dfref GetCalledOncePath()

Returns a data folder reference to the call once folder.

string GetCalledOncePathAsString()

Returns a name of the data folder for the call once folder, e.g. root:MIES:CalledOnce.

UTF_NOINSTRUMENTATION

dfref GetSingleSweepFolder(dfref dfr, variable sweepNo)

Return a datafolder reference to a subfolder below dfr for splitted sweep specific data, e.g. dfr:X_5.

UTF_NOINSTRUMENTATION

string GetSingleSweepFolderAsString(dfref dfr, variable sweepNo)

Return the path to a subfolder below dfr for splitted sweep specific data.

wave GetDAQDataWave(string device, variable mode)

Return the DAQ data wave.

ITC hardware:

  • 2D signed 16bit integer wave, the colums are for the channel

NI/SU hardware:

  • Wave reference wave, one referencing each channel

Rows:

  • data

Columns:

  • one for each active DA, AD, TTL channel (in that order)

For scaling and gain information see SWS_GetChannelGains().

Note: TP_PROPERTIES_HASH: Unique hash for a combination of all properties which influence the test pulse.

Parameters:
wave GetSUCompositeTTLWave(string device)
wave GetNIDAQChannelWave(string device, variable channel, variable mode)

Get the single NI/Sutter channel waves.

Special use function, normal callers should use GetDAQDataWave() instead.

wave GetSutterSingleSampleDACOutputWave(string device)

Get a single point output wave for Sutter device.

wave GetSutterSingleSampleADCInputWave(string device)

Get a single point input wave for Sutter device.

wave GetEpochsWave(string device)

Return the epochs text wave.

Rows:

  • epochs

Column numbers must use global column number constants

Columns:

  • 0: Start time in sec

  • 1: End time in sec

  • 2: Tags

  • 3: Tree Level

See also

epochColumnNumber.

Layers: index the GUI channel numbers

  • NUM_DA_TTL_CHANNELS

Chunks: index the XOP channel types

  • XOP_CHANNEL_TYPE_COUNT

Version History

Wave

  • 1: Initial version

  • 2: Renamed column Name to Tags

  • 3: Added chunks dimension indexing over channel types

Tags format

Initial version in a2172f03 (Added generations of epoch information wave, 2019-05-22), parsed in PA plot since 4e534e29 (Pulse Averaging: Pulse starting times are now read from the lab notebook, 2020-10-07).

In d150d896 (DC_AddEpochsFromStimSetNote: Add sub sub epoch information, 2021-02-02) tree level 3 info for pulse train pulses was added, which is read out since ba209bbd (PA plot: Gather more pulse infos, 2021-02-02).

And in 2371cfb0 (Epochs: Revise naming, 2021-09-22) we changed the naming of the tags and also adapted PA_RetrievePulseStartTimesFromEpochs.

For these three formats we have tests in RPI_WorksWithOldData(). When changing the tags format this test needs to be updated.

wave GetEpochsWaveAsFree()
static variable SetEpochsDimensionLabelAndVersion(wave wv)
variable SetEpochsDimensionLabelsSingleChannel(wave wv)
dfref GetEpochsVisualizationFolder(dfref dfr)

Return the folder for the epoch visualization waves below the sweepfolder/databrowser specific folder.

wave GetDAQConfigWave(string device)

Return the DAQ config wave.

Rows:

  • One for each channel, the order is DA, AD, TTL (same as in the DAQDataWave)

Columns:

  • channel type, one of XopChannelConstants

  • channel number (0-based)

  • sampling interval in microseconds (1e-6)

  • decimation mode (always zero)

  • data offset

  • headstage number

  • clamp mode

The wave note holds a list of channel units. The order is the same as the rows. TTL channels don’t have units. Querying the channel unit should always be done via AFH_GetChannelUnit() or AFH_GetChannelUnits().

This wave is also used for NI devices as configuration template. There is one difference though: While for ITC devices there is one TTL row for each rack, for NI devices there is one TTL row for each channel (up to 8 currently) The channel number column holds the hardware channel number for the NI device

ITC hardware: The number of TTL bits which are stored in each TTL channel is hardware dependent and can be queried with HW_ITC_GetRackRange().

Version 1 changes:

  • Columns now have dimension labels

  • One more column with the channel data offset

  • Due to the wave versioning the channel unit is now stored with the CHANNEL_UNIT_KEY as key and it is now separated not with semicolon anymore but a comma.

Version 2 changes:

  • DAQChannelType column added

Version 3 changes:

  • Change wave to double precision

  • Headstage column added

  • ClampMode column added

wave GetDQMActiveDeviceList()

Returns a reference to the wave of active devices for data acquisition in multi device mode.

The wave is used in data acquisition in multiple device mode to keep track of active devices.

Columns:

  • DeviceID id of an active device

  • ADChannelToMonitor index of first active AD channel in DAQDataWave

  • HardwareType type of hardware of the device

  • ActiveChunk if a channel of the device is used for TP while DAQ this column saves the number of the last evaluated test pulse

Version changes:

  • 1: Added column activeChunk

  • 2: Changed precision to double

  • 3: Removed column 2 with StopCollectionPoint as it is no longer used

wave GetTTLWave(string device)

Return the intermediate storage wave for the TTL data.

wave GetStimsetAcqIDHelperWave(string device)

Return the stimset acquistion cycle ID helper wave.

Only valid during DAQ.

Rows:

  • NUM_DA_TTL_CHANNELS

Columns:

  • 0: Stimset fingerprint of the previous sweep

  • 1: Current stimset acquisition cycle ID

dfref GetDevSpecLabNBTempFolder(string device)

Return the data folder reference to the device specific lab notebook folder for temporary waves.

UTF_NOINSTRUMENTATION

string GetDevSpecLabNBTempFolderAS(string device)

Return the full path to the device specific lab notebook temp folder, e.g. root:MIES:LabNoteBook:ITC18USB:Device0:Temp.

UTF_NOINSTRUMENTATION

string GetResultsFolderAsString()

Return the full path to the results folder, e.g. root:MIES:Results.

UTF_NOINSTRUMENTATION

dfref GetResultsFolder()

Return the data folder reference to the results folder.

UTF_NOINSTRUMENTATION

wave GetIndexingStorageWave(string device)

Return the indexing storage wave.

Rows:

Columns:

  • 0: Popup menu index of Wave (stimset)

  • 1: Popup menu index of Indexing end wave (stimset)

All zero-based as returned by GetPopupMenuIndex().

Layers:

  • Channels

dfref GetTempPath()

Return the temporary folder below the MIES hierarchy, e.g. root:mies:trash.

UTF_NOINSTRUMENTATION

dfref GetUniqueTempPath()

Return a unique temporary folder below the MIES hierarchy, e.g. root:mies:trash$digit.

As soon as you discard the latest reference to the folder it will be slated for removal at some point in the future.

UTF_NOINSTRUMENTATION

dfref GetStaticDataFolder()

Return the datafolder reference to the static data location, e.g. root:mies:StaticData:

UTF_NOINSTRUMENTATION

string GetStaticDataFolderAS()

Return the full path to the static data location.

UTF_NOINSTRUMENTATION

dfref GetActDAQDevicesTestPulseFolder()

Return the datafolder reference to the active DAQ devices folder, e.g. root:MIES:HardwareDevices:ActiveDAQDevices:TestPulse.

UTF_NOINSTRUMENTATION

string GetActiveDAQDevicesTestPulseFolderAsString()

Return the full path to the active DAQ devices location for the test pulse.

UTF_NOINSTRUMENTATION

wave GetActiveDevicesTPMD()

Return the active devices wave for TP MD.

Rows:

  • Devices taking part in TP MD Columns:

  • 0: DeviceID

  • 1: ActiveChunk

The $NOTE_INDEX wave note entry holds the number of active devices. In addition it is also the next free row index.

wave GetDA_EphysGuiStateNum(string device)

Returns wave (DA_EphysGuiState) that stores the DA_Ephys GUI state DA_EphysGuiState is stored in the device specific folder e.g. root:MIES:HardwareDevices:ITC18USB:Device0.

Rows:

  • Column specific GUI control settings usually associated with control name number

Columns:

  • 0: State of control Check_DataAcqHS_RowNum. 0 = UnChecked, 1 = Checked

  • 1: Clamp mode of HS number that matches Row number. 0 = VC, 1 = IC, 2 = NC.

  • 2: State of control Check_DA_RowNum. 0 = UnChecked, 1 = Checked

  • 3: Internal number stored in control Gain_DA_RowNum. Gain is user/hardware defined.

  • 4: Internal number stored in setvar:Scale_DA_RowNum. Scalar is user defined.

  • 5: PopupMenu Index of popupMenu:Wave_DA_RowNum. Stores index of active DA stimulus set during data acquisition. Stores index of next DA stimulus set when data acquistion is not active.

  • 6: PopupMenu Index of popupMenu:IndexEnd_DA_RowNum. Stores the index of the last DA stimulus set used in indexed aquisition mode.

  • 7: State of checkbox control Check_AD_RowNum. 0 = UnChecked, 1 = Checked

  • 8: Internal number stored in Gain_AD_RowNum. Gain is user/hardware defined.

  • 9: State of checkbox control Check_TTL_RowNum. 0 = UnChecked, 1 = Checked

  • 10: PopupMenu Index of popupMenu:Wave_TTL_RowNum. Stores index of active TTL stimulus set during data acquisition. Stores index of next TTL stimulus set when data acquistion is not active.

  • 11: PopupMenu Index of popupMenu:IndexEnd_TTL_RowNum. Stores the index of the last TTL stimulus set used in indexed aquisition mode.

  • 12: State of control Check_AsyncAD_RowNum. 0 = UnChecked, 1 = Checked

  • 13: Internal number stored in control SetVar_AsyncAD_Gain_RowNum. Gain is user/hardware defined.

  • 14: State of control check_AsyncAlarm_RowNum. 0 = UnChecked, 1 = Checked

  • 15: Internal number stored in control min_AsyncAD__RowNum. The minium value alarm trigger.

  • 16: Internal number stored in control max_AsyncAD_RowNum. The max value alarm trigger.

  • 17+: Unique controls

UTF_NOINSTRUMENTATION

wave GetDA_EphysGuiStateTxT(string device)

Return a wave reference to the textual GUI state wave.

Rows:

  • Column specific GUI control settings usually associated with control name number

Columns:

  • 0: (DA) First stimset name

  • 1: (DA) Last stimset name

  • 2: (DA) Unit

  • 3: (DA) Search string

  • 4: (AD) Unit

  • 5: (TTL) First stimset name

  • 6: (TTL) Last stimset name

  • 7: (TTL) Search string

  • 8: (Async) Title

  • 9: (Async) Unit

  • 10+: Unique controls (SetVariable and PopupMenu only)

UTF_NOINSTRUMENTATION

dfref GetNWBFolder()

Return the datafolder reference to the NeuroDataWithoutBorders folder, e.g. root:MIES:NWB.

UTF_NOINSTRUMENTATION

string GetNWBFolderAS()

Return the full path to the NeuroDataWithoutBorders folder.

UTF_NOINSTRUMENTATION

wave GetDeviceMapping()

Return a wave mapping the deviceIDs (numeric) to the device name(NI HW only) and user visible device name.

Rows:

  • DeviceIDs, supports 32 as the ITC XOP does

COLS:

  • One column for each supported HW type

LAYERS:

  • 0: Main device (aka device of a DA_Ephys panel), used for deriving datafolders for storage

  • 1: Name of the device used for pressure control (maybe empty)

wave GetCellElectrodeNames(string device)

Returns the names of the electrodes.

The electrodes represents the physically connected part to the cell whereas the headstage refers to the logical entity inside MIES.

Will be written into the labnotebook and used for the NWB export.

wave GetPressureTypeWv(string device)

Returns a 1D wave with the same number of rows as headstages used to store the pressure type.

Available pressure types are one of PressureTypeConstants

ROWS:

  • One row for each headstage

dfref GetDevicePulseAverageFolder(dfref dfr)

Return the pulse averaging folder.

UTF_NOINSTRUMENTATION

string GetDevicePulseAverageFolderAS(dfref dfr)

Return the full path to the pulse averaging folder, e.g. dfr:PulseAveraging.

UTF_NOINSTRUMENTATION

dfref GetDevicePulseAverageHelperFolder(dfref dfr)

Return the pulse averaging helper folder.

This holds various helper waves for the graph generation.

UTF_NOINSTRUMENTATION

string GetDevicePulseAverageHelperFolderAS(dfref dfr)

Return the full path to the pulse averaging helper folder, e.g. dfr:Helper.

UTF_NOINSTRUMENTATION

wave GetPulseAverageWave(dfref dfr, variable length, variable channelType, variable channelNumber, variable region, variable pulseIndex)

Return a wave reference to the single pulse defined by the given parameters.

Parameters:
  • dfr – datafolder reference where to create the empty wave if it does not exist

  • length – Length in points of the new wave

  • channelType – channel type, one of XopChannelConstants

  • channelNumber – channel number

  • region – region index (a region is the range with data in a dDAQ/oodDAQ measurement)

  • pulseIndex – pulse number, 0-based

wave GetPulseAverageWaveNoteWave(dfref dfr, variable length, variable channelType, variable channelNumber, variable region, variable pulseIndex)

Return a wave reference to the single pulse defined by the given parameters.

Parameters:
  • dfr – datafolder reference where to create the empty wave if it does not exist

  • length – Length in points of the new wave

  • channelType – channel type, one of XopChannelConstants

  • channelNumber – channel number

  • region – region index (a region is the range with data in a dDAQ/oodDAQ measurement)

  • pulseIndex – pulse number, 0-based

wave GetPulseAverageSetIndizes(dfref dfr, variable channelNumber, variable region)

Returns the pulse average set properties wave.

These are row indizes into GetPulseAverageProperties()/GetPulseAveragePropertiesWaves() for the pulses which belong to the given set.

wave GetPulseAverageSetImageWave(dfref dfr, variable channelNumber, variable region)

Returns the pulse average image wave.

This is used for the image display mode.

NOTE_INDEX is used for marking the length of the used columns as there is one pulse per column.

wave GetPulseAverageProperties(dfref dfr)

Return the pulse average properties wave.

It is filled by PA_GenerateAllPulseWaves() and consumed by others.

wave GetPulseAveragePropertiesWaves(dfref dfr)

Return the pulse average properties wave with wave references.

Belongs to GetPulseAverageProperties() and also has the same NOTE_INDEX count stored there.

wave GetPulseAverageDisplayMapping(dfref dfr)

Return the mapping wave for pulse averaging between region/channel to activeRegion/activeChannel.

Belongs to GetPulseAverageProperties() and also has the same NOTE_INDEX count stored there.

wave GetArtefactRemovalListWave(dfref dfr)

Return the artefact removal listbox wave for the databrowser or the sweepbrowser.

wave GetArtefactRemovalDataWave(dfref dfr)

Return the artefact removal wave databrowser or the sweepbrowser.

wave GetOverlaySweepsListWave(dfref dfr)

Return the overlay sweeps listbox wave for the databrowser or the sweepbrowser.

wave GetOverlaySweepsListSelWave(dfref dfr)

Return the overlay sweeps listbox selection wave for the databrowser or the sweepbrowser.

wave GetOverlaySweepHeadstageRemoval(dfref dfr)

Return the overlay sweeps wave with the parsed headstage removal info.

Rows:

Columns:

wave GetOverlaySweepSelectionChoices(string win, dfref dfr, variable skipUpdate = defaultValue)

Return the overlay sweeps wave with all sweep selection choices for the databrowser or the sweepbrowser.

wave GetChannelSelectionWave(dfref dfr)

Return the channel selection wave for the databrowser or sweep browser.

wave GetAxisLabelCacheWave()

Return a free wave used for the axis label cache.

wave GetSweepBrowserMap(dfref dfr)

Return the sweepBrowser map wave from the given DFR.

wave GetAnalysisFunctionStorage(string device)

Return the storage wave for the analysis functions.

Only contains valid functions. An analysis function is valid if it has a compatible signature and can be found within the locations searched by AFH_GetAnalysisFunctions().

Rows:

  • Head stage number

Columns:

wave GetSetEventFlag(string device)

Used for storing a true/false state that the pre and/or post set event should be fired after the sweep which is currently prepared in DC_PlaceDataInDAQDataWave().

Rows:

  • NUM_DA_TTL_CHANNELS

Columns:

  • PRE_SET_EVENT

  • POST_SET_EVENT

wave GetRAPerfWave(string device)

Return the wave for storing timestamps for perf testing repeated acquisition.

wave WBP_GetAnalysisParamGUIListWave()

Return the list wave for the analysis parameter GUI.

wave WBP_GetAnalysisParamGUISelWave()

Return the selection wave for the analysis parameter GUI.

wave WBP_GetAnalysisParamGUIHelpWave()

Return the help wave for the analysis parameter GUI.

wave GetAnaFuncDashboardListWave(dfref dfr)

Return the analysis function dashboard listbox wave for the databrowser or the sweepbrowser.

wave GetAnaFuncDashboardInfoWave(dfref dfr)

Return the analysis function dashboard info wave for the databrowser or the sweepbrowser.

wave GetAnaFuncDashboardSelWave(dfref dfr)

Return the analysis function dashboard listbox selection wave for the databrowser or the sweepbrowser.

wave GetAnaFuncDashboardColorWave(dfref dfr)

Return the analysis function dashboard listbox color wave for the databrowser or the sweepbrowser.

wave GetAnaFuncDashboardHelpWave(dfref dfr)

Return the analysis function dashboard help wave for the databrowser or the sweepbrowser.

wave GetDeviceInfoWave(string device)

Return a wave with device information.

   Entries:
AD: - For devices that have mixed channels for HS, Unassoc AD the number of the channels combined
  • For devices that have separate channels for HS and Unassoc AD the number of the headstages DA: - For devices that have mixed channels for HS, Unassoc DA the number of the channels combined

  • For devices that have separate channels for HS and Unassoc DA the number of the headstages TTL: - Number of TTL channels Rack: - Number of Racks for ITC, NaN for other HW HardwareType: - One of

    See also

    HardwareDACTypeConstants like HARDWARE_SUTTER_DAC AuxAD: - For devices with HS independent AD channels the number of the separate AD channels, NaN for devices with mixed channels AuxDA: - For devices with HS independent DA channels the number of the separate DA channels, NaN for devices with mixed channels

wave GetElapsedTimeWave()

Return a wave suitable for storing elapsed time.

Helper function for DEBUGPRINT_ELAPSED_WAVE() and StoreElapsedTime().

wave GetSweepFormulaX(dfref dfr, variable graphNr)

Return the X wave for the sweep formula.

wave GetSweepFormulaY(dfref dfr, variable graphNr)

Return the Y wave for the sweep formula.

wave GetPopupExtMenuWave()

Return the global temporary wave for extended popup menu.

string GetGraphUserDataFolderAsString()

Return the reference to the graph user data datafolder as string.

UTF_NOINSTRUMENTATION

dfref GetGraphUserDataFolderDFR()

Return the reference to the graph user data datafolder.

UTF_NOINSTRUMENTATION

static string BuildGraphName(string graph)

UTF_NOINSTRUMENTATION.

string GetGraphUserDataAsString(string graph)

Return the path to the text wave for the graph user data as string.

UTF_NOINSTRUMENTATION

wave GetGraphUserData(string graph)

Return the text wave for the graph user data.

Parameters:

graph – existing graph

wave GetPAGraphData()

Return the wave for trace counts per graph for pulse averaging plot rows one per graph, dimlabel is graph name.

Columns:

  • 0: trace names of all average traces

  • 1: trace names of all deconvolution traces

  • 2: list of used image names

std::tuple<WAVE, string> GetPAPermanentAverageWave(dfref dfr, variable channel, variable region)

Return permanent average wave for PA plot for a given channel/region as well as its base name Returns a null wave if the permanent wave does not exist.

wave GetPulseInfoWave()

Return a free wave for storing timing information of single pulses.

Rows:

  • Pulses

Columns:

  • Length [ms]: Total length including baseline

  • PulseStart [ms]: Start of the pulse (aka begin of active)

  • PulseEnd [ms]: End of the pulse (aka end of active)

wave GetOverrideResults()

Return the wave used for storing mock data for tests.

This wave is created by MSQ_CreateOverrideResults(), PSQ_CreateOverrideResults() or TP_CreateOverrideResults() and does also not follow our usual rules so it might not exist.

wave GetAcqStateTracking()

Return the wave used for storing acquisition state transitions during testing.

wave GetValidAcqStateTransitions()

Return a wave with all valid acquisition state transitions.

It is AS_NUM_STATES x AS_NUM_STATES matrix were the old states are in the rows and the new states in the columns. Every valid transition has a 1 in it.

string GetDANDIFolderAsString()

UTF_NOINSTRUMENTATION.

dfref GetDANDIFolder()

Return the data folder reference to the DANDI folder.

UTF_NOINSTRUMENTATION

wave GetDandiSetProperties()

Return a free wave with the DANDI set properties.

Rows:

  • one row for each asset

Columns:

  • ID

  • created timestamp (ISO8601)

  • modified timestamp (ISO8601)

  • file path of the asset inside the DANDI set

wave GetDandiDialogWave(wave props)
wave GetDACAmplitudes(variable numDACEntries)

Return a free wave with the DAC amplitudes.

Rows:

  • One for each active DAC

Columns:

  • DASCALE: DA Scale from the DAEphys GUI

  • TPAMP: Testpulse amplitude (clamp mode dependent)

wave GetYvsXFormulas()

Return a free text wave to store single y vs x formula combinations from sweepformula code.

Rows:

  • One for each y vs x formula combination

wave GetYandXFormulas()

Return a free text wave to store y and x formula combinations from sweepformula code.

Rows:

  • One for each formula Columns:

  • FORMULA_X: formula for x wave

  • FORMULA_Y: formula for y wave

wave GetTPSettingsFree()

Free wave version of GetTPSettingsFree()

wave GetTPSettings(string device)

Return the testpulse GUI settings.

Rows:

  • Buffer size: Number of elements to average

  • Resistance tolerance: Tolerance for labnotebook change reporting of resistance values, see GetTPResults()

  • Baseline percentage: Fraction which the baseline occupies relative to the total testpulse length, before and after the pulse itself.

  • Pulse duration [ms]

  • Amplitude VC

  • Amplitude IC

  • Auto TP: On/Off (Requires to also call TP_AutoTPGenerateNewCycleID() when writing)

  • Auto TP: Maximum current [pA]

  • Auto TP: Voltage [mV]

  • Auto TP: +/- Voltage [mV]

  • Auto TP: Percentage [%]

  • Auto TP: Interval [s]

  • Auto TP: Cycle ID

Columns:

  • LABNOTEBOOK_LAYER_COUNT

wave GetTPSettingsCalculated(string device)

Return the calculated/derived TP settings.

The entries in this wave are only valid during DAQ/TP and are updated via DC_UpdateGlobals().

wave GetTPSettingsCalculatedAsFree()
static variable SetTPSettingsCalculatedProperties(wave wv)
wave GetTPSettingsLabnotebookKeyWave(string device)

Returns a wave reference to the TP settings key wave.

Rows:

  • 0: Parameter

  • 1: Units

  • 2: Tolerance Factor

Columns (all entries headstage dependent except otherwise noted):

  • 0: TP Baseline Fraction (INDEP_HEADSTAGE)

  • 1: TP Amplitude VC

  • 2: TP Amplitude IC

  • 3: TP Pulse Duration (INDEP_HEADSTAGE)

  • 4: TP Auto On/Off

  • 5: TP Auto max current

  • 6: TP Auto voltage

  • 7: TP Auto voltage range

  • 8: TP buffer size (INDEP_HEADSTAGE)

  • 9: Minimum TP resistance for tolerance (INDEP_HEADSTAGE)

  • 10: Send TP settings to all headstages (INDEP_HEADSTAGE)

  • 11: TP Auto percentage (INDEP_HEADSTAGE)

  • 12: TP Auto interval (INDEP_HEADSTAGE)

  • 13: TP Auto QC

  • 14: TP Cycle ID

wave GetTPSettingsLabnotebook(string device)

Get TP settings wave for the labnotebook.

See GetTPSettingsLabnotebookKeyWave() for the dimension label description.

wave GetFormulaGatherWave()

Returns a free wave for gathering formula results.

The wave stores the wave reference waves returned from SF_ExecuteFormula for the X and Y formulas. In SF_GatherFormulaResults() all formula pairs for on graph subwindow are gathered.

wave GetSFVarStorage(string graph)

Returns variable storage of data browser referenced by dfr.

wave GetSFVarAssignments()

Returns a wave where variable assignments are collected into.

wave GetActiveChannelMapTTLGUIToHW()

Returns a wave where GetActiveChannels fills in the mapping between GUI and hardware TTL channels The wave is initialized here with no active channels.

wave GetActiveChannelMapTTLHWToGUI()

Returns a wave where GetActiveChannels fills in the mapping between hardware and GUI TTL channels The wave is initialized here with no active channels.

wave GetLogFileNames()

Returns a wave with the names of all log files.

wave GetNewSamplingIntervalsAsFree()

Used as temporary wave to store various sampling intervals in ms.

wave GetSUDeviceInfo()

Return wave with Sutter device info.

ROWS:

  • NUMBEROFDACS: number of IPA devices

  • MASTERDEVICE: Serial of master device

  • LISTOFDEVICES: Serials of SubDevices

  • LISTOFHEADSTAGES: Number of Headstages per Device

  • SUMHEADSTAGES: Sum of Headstages

  • AI: Number of analog ins

  • AO: Number of analog outs

  • DIOPortWidth: Number of digital outs

wave GetSUDeviceInput(string device)

Return wave with Sutter input list wave.

ROWS:

  • entries

COLS:

  • INPUTWAVE: full path to input wave

  • CHANNEL: sutter hardware channel number

  • ENCODEINFO: additional information for multi-device configuration

wave GetSUDeviceOutput(string device)

Return wave with Sutter output list wave.

ROWS:

  • entries

COLS:

  • OUTPUTWAVE: full path to output wave

  • CHANNEL: sutter hardware channel number

  • ENCODEINFO: additional information for multi-device configuration

wave GetSUDeviceInputGains(string device)

Return wave with Sutter gains for input.

ROWS:

  • entries

COLS:

  • GAINFACTOR: gain factor

  • OFFSET: offset

wave GetSutterDACTTLSampleInterval()

Returns valid TTL channel sample intervals of sutter IPA hardware in microseconds.

wave GetSutterADCSampleInterval()

Returns valid ADC channel sample intervals of sutter IPA hardware in microseconds.

std::tuple<WaveText, WaveDouble> GetLogbookSortedKeys(wave values)

Gets from a Logbook values wave the wave with sortedKeys and associated indices in a separate wave.

dfref GetSetFolder(variable channelType)

Return the stimset folder from the numeric channelType, CHANNEL_TYPE_DAC or CHANNEL_TYPE_TTL.

Returns:

Data Folder reference to Stimset dataFolder

string GetSetFolderAsString(variable channelType)

Return the stimset folder from the numeric channelType, CHANNEL_TYPE_DAC or CHANNEL_TYPE_TTL.

Returns:

String with full path to Stimset dataFolder

dfref GetSetParamFolder(variable channelType)

Get the stimset parameter folder.

Parameters:

channelTypeCHANNEL_TYPE_DAC or CHANNEL_TYPE_TTL

Returns:

dataFolder as DFREF

string GetSetParamFolderAsString(variable channelType)

Get the stimset parameter folder.

Parameters:

channelTypeCHANNEL_TYPE_DAC or CHANNEL_TYPE_TTL

Returns:

dataFolder as String

Variables

static const double ANALYSIS_BROWSER_LISTBOX_WAVE_VERSION = 1
static const double ANALYSIS_BROWSER_FOLDER_LISTBOX_WAVE_VERSION = 1
static const double ANALYSIS_BROWSER_FOLDERCOL_LISTBOX_WAVE_VERSION = 1
static const double ANALYSIS_BROWSER_FOLDERSEL_LISTBOX_WAVE_VERSION = 1
static const double NUM_COLUMNS_LIST_WAVE = 12
static const string WAVE_NOTE_LAYOUT_KEY = "WAVE_LAYOUT_VERSION"
static const double WAVE_TYPE_NUMERICAL = 0x1
static const double WAVE_TYPE_TEXTUAL = 0x2
static const double PULSE_WAVE_VERSION = 4
static const string TP_SETTINGS_LABELS = "bufferSize;resistanceTol;sendToAllHS;baselinePerc;durationMS;amplitudeVC;amplitudeIC;autoTPEnable;autoAmpMaxCurrent;autoAmpVoltage;autoAmpVoltageRange;autoTPPercentage;autoTPInterval;autoTPCycleID"
static const string LOGBOOK_SUFFIX_SORTEDKEYS = "_sorted"
static const string LOGBOOK_SUFFIX_SORTEDKEYSINDICES = "_indices"
static const double EPOCHS_WAVE_VERSION = 3
static const double DQM_ACTIVE_DEV_WAVE_VERSION = 3
static const double TP_SETTINGSCALCULATED_WAVE_VERSION = 3
static const double TP_SETTINGS_WAVE_VERSION = 2