AllenInstitute / MIES

Multichannel Igor Electrophysiology Suite
https://alleninstitute.github.io/MIES/user.html
Other
21 stars 6 forks source link

SweepFormula does not expand variables in arrays #2142

Closed t-b closed 2 weeks ago

t-b commented 3 weeks ago

Reported by Tim:

The following SF code

selDA=select(channels(DA0), sweeps())
start=max(epochs(E1, $selDA))
end=max(epochs(E1, $selDA))+500
startEnd=[$start,$end]

$startEnd

gives "Cannot plot a single text wave".

Reproduced with 5c9352e66 (Merge pull request #2136 from AllenInstitute/bugfix/2136-use-more-ip9-features, 2024-06-10) and, if I remove the + 500 also with d57ec82ca (Merge pull request #2070 from AllenInstitute/bugfix/2070-fix_sort_epochs-backport, 2024-03-17).

I thought this is a fallout from ab54d19bb (Merge pull request #2133 from AllenInstitute/feature/2133-sf_support_operation_results_in_arrays, 2024-06-10) but it is not.

t-b commented 3 weeks ago

Relevant comment as well:

It's also possible to get start or end to return as text if I wrap them in square brackets. e.g., start= [(max(epochs(E1, $selDA)))]

t-b commented 3 weeks ago

Related

selDA=select(channels(DA0), sweeps())
selAD=select(channels(AD0), sweeps())

data([min(epochs(E1, $selDA)), max(epochs(E1, $selDA))], $selAD)

does give an empty plot 5c9352e66 (Merge pull request #2136 from AllenInstitute/bugfix/2136-use-more-ip9-features, 2024-06-10) and bugs out with 5d40b87de (Merge pull request #2139 from AllenInstitute/feature/2139-add_IPA_control_code, 2024-06-08).

The reason for the empty plot is that SFH_GetRangeFromEpoch does think that a range of type textwave holds epoch names but it does hold WREF style entries.

MichaelHuth commented 3 weeks ago

For SFH_EvaluateRange add a generic function that does the following:

FormulaPlotter before:

            numData = DimSize(formulaResults, ROWS)
            for(k = 0; k < numData; k += 1)

Also attempt the upper method and clone X FormulaResults accordingly.