Repository navigation
PipeCompare 0.9.0
-
Use this pipeline (and
adopt) no longer fits ICA again: the decomposition computed during
the comparison is reused, so adopting a pipeline with ICA no longer waits for a whole ICA. The result is the same (runica already started from a fixed state, and the replay
check still compares the scores); the dataset history keeps thepop_runicacommand. -
ICLabel classifies each dataset once: pipelines that differ only in the ICLabel threshold share
the classification. Standard for ERPs runs ICLabel 36 times instead of 108; the results are
unchanged. -
Signal check: the injected ERP is at least 50 ms wide at half maximum. For N170 (40 ms window)
it was 10 ms wide in sigma, half a real N170, so a 20 Hz low-pass rang beyond the artifact limit
and was always excluded, although it changes a realistic N170 by about 0.1 %. The other ERP CORE
components are unaffected. -
N2pc and LRP are scored contralateral minus ipsilateral, as ERP CORE measures them: the
dialog takes the event types of each side (pop_pipecompare(..., 'left', {...}, 'right', {...})), each trial is scored as the electrode contralateral to its side minus the other, and
the signal check uses a lateralized field. Before, the mean of the two electrodes was scored,
which cancels the lateralized component and keeps the noise common to both hemispheres. -
Band power, Standard: one high-pass and one low-pass edge (the catalog values nearest the
band outside it) instead of every combination, so 9 pipelines instead of 108 (ICLabel runs 3
times instead of 36). Outside the band a filter does not change its power. Filters only
still compares the filters. -
Band power: the signal check tested only the band centre, so a filter that cut into the band
(a 40 Hz low-pass for a 30-45 Hz band) passed. It now also tests one frequency step inside each
band edge. The simple mode no longer compares filter edges inside the band (e.g. a 20 Hz
low-pass for beta, 13-30 Hz), and says so under Left out. -
Simple mode on epoched data: the ERP CORE epoch (-200 to 800 ms) was required, so data epoched
otherwise (e.g. -100 to 600 ms) were refused although they hold the measurement window. Epoched
data now keep their own epochs; the baseline starts at the epoch start when the epochs start
later, and a window or baseline the epochs do not hold is named in the message. -
pop_pipecompare: when the search stopped with an error, its log was lost (only the error was
shown); the log is now written topipecompare_last_run.logfirst.'recipe'defaults to
'standard', as in the dialog (it was an error to leave it out); numeric event types are
accepted; several selected datasets give a clear message. -
Simple dialog: switching between your own window and your own band clears the numbers, so
milliseconds are not read as hertz. -
A single epoch (one event of the conditions, or rejection leaving one) stopped with a MATLAB
formatting error; it now says that each condition needs at least two trials. Three error
messages with time or frequency ranges failed the same way and now print their numbers. -
Simple mode: Reference (as recorded, or average reference) as a fixed step of every pipeline,
after the bad channels and before ICA (pop_pipecompare(..., 'reference', 'average')).
Previously re-referencing had to be done before PipeCompare, which spread bad channels into
the average. -
Simple mode, Standard: bad channels are detected on a 1 Hz high-passed copy (slow drifts
distorted the kurtosis of unfiltered data) and interpolated in the data as they are
(badchannelsparameterdetectHighpass, 0 by default in the panel). EOG, ECG and EMG channels
are no longer tested as bad channels or counted by the epoch-rejection threshold, where blinks
removed many epochs; they are recognised by type or, when the type is not set, by name. -
Save script... for band power wrote the default ERP contract, so the script did not cut the
data into segments and failed at its epoch step; it now keeps the band-power contract. -
A
pop_clean_rawdatastep added as an EEGLAB command is refused at plan time when ASR has no
filter for the rate (no Signal Processing Toolbox), as the catalog ASR step is; it silently did
nothing. An EEGLAB command with no argument afterEEGno longer fails with a syntax error. -
Simple mode reads the data unit from the amplitude scale, as the panel does: on data stored in
volts the epoch-rejection thresholds previously removed nothing. -
Simple mode no longer compares filter edges the data already have (from the history): they left
the data unchanged but filtered the known signal, which favoured the lower high-pass edges. -
The result window names pipelines by the settings compared (high-pass 0.5 Hz, low-pass
30 Hz, …) instead of the full step key, with one line for the steps all pipelines share; with
no feasible pipeline it gives one pipeline's reason with its numbers. -
The time left is estimated from the pipelines after the first (which alone runs ICA), shown as
hours and minutes; Stop says it stops after the current step. -
Simple mode:
boundarymarkers are not offered as events; on epoched data the time-locking
types are preselected; selected types can be scored as one condition ('pool'); a condition
with fewer than 10 events is flagged before Run instead of excluding every pipeline after it. -
Simple-mode dialog: one Measure list with what the data support (the data-type menu and the
segment field are gone; segments stay settable from scripts), Standard preselected, and Run
off when fewer than two pipelines would be compared. The list adds your own window and
electrodes (ERP) and your own band and electrodes;pop_pipecomparetakes them as
'measure', 'custom'with'window'and'channels', or'measure', 'band'with'band'. -
Save script… /
writeScriptwrites a function that runs the pipeline's steps on any
recording (pipecompare.PipeCompare.apply): bad channels, ICLabel components and rejected
epochs are decided from that recording's data. Previously the file replayed this dataset's
channel, component and epoch numbers, which gave wrong results on other recordings without an
error. The exact commands follow as comments. -
Advanced… in the simple dialog no longer leaves an empty panel and an error when the choices
cannot be handed over (e.g. a missing electrode): it says why and the dialog stays open. It is
off for band power, which the panel does not define. -
Result window: Use this pipeline shows that it is building the pipeline again (ICA too) and
then says the new dataset is not saved yet; Show all pipelines lists every pipeline with the
reason it was excluded, in place of Details… (the panel remains in the menu). -
pop_pipecompareprints a two-line summary instead of about 900 lines; the full log goes to
pipecompare_last_run.logintempdir. The menu item Show dataset state and history is
removed (it only printed to the Command Window);pipecompare.PipeCompare.state()remains. -
A plan with ASR or ICLabel IC removal is now illegal when the clean_rawdata or ICLabel plugin is
missing, with that reason, before the search starts; previously every candidate failed during it. -
ASR is also illegal when its filter cannot be built: without the Signal Processing Toolbox,
clean_rawdata has it only for 100, 128, 200, 256, 300, 500 and 512 Hz, and at other rates it
returned the data unchanged, so ASR candidates silently did nothing. -
Simple mode, Standard: bad channels are detected once (kurtosis, z = 5) and ICA is fitted once,
before the filters, so all filter choices share one decomposition: 108 pipelines and 1 ICA
instead of 432 pipelines and 48 ICAs. Full is removed from the simple mode (it was always above
the search limit); ASR stays available in the panel and from scripts. -
Simple mode shows a progress window (pipelines done, time left) with Stop; stopping keeps the
pipelines already run and the result covers those. Scripts get the same through the new
progressoption ofoptimize. -
The simple-mode result window says in one sentence which pipeline to use and why; columns and
buttons use plain words (Use this pipeline, Details…).