MNE-BIDS-Pipeline overview¶
MNE-BIDS-Pipeline processes your data in a sequential manner, i.e., one step at a time. The next step is only run after the previous steps have been successfully completed. There are, of course, exceptions; for example, if you chose not to apply ICA or SSP, the spatial filtering steps will simply be omitted and we'll directly move to the subsequent steps. See the flowchart below for a visualization of the steps, or check out the list of processing steps for more information.
All intermediate results are saved to disk for later inspection, and an extensive report is generated. Analyses are conducted on individual (per-subject) as well as group level.
Caching¶
MNE-BIDS-Pipeline offers automated caching of intermediate results. This means that
running mne_bids_pipeline config.py
once will generate all outputs, and running it
again will only re-run the steps that need rerunning based on:
- Changes to files on disk (e.g., updates to
bids_root
files), and - Changes to
config.py
This is particularly useful when you are developing your pipeline, as you can quickly iterate over changes to your pipeline without having to re-run the entire pipeline every time -- only the steps that need to be re-run will be executed.
Flowchart¶
For more detailed information on each step, please refer to the detailed list of processing steps.
1. Filesystem initialization and dataset inspection¶
Click to expand
flowchart TD
A01["Initialize derivatives_dir"] --> A02["Find empty-room data matches"]
2. Preprocessing¶
Click to expand
flowchart TD
B01["Assess data quality and find bad (and flat) channels"] --> B02["Estimate head positions"]
B02 --> B03["Maxwell-filter MEG data"]
B03 --> B04["Apply low- and high-pass filters"]
B04 --> B05["Temporal regression for artifact removal"]
B05 --> B06a1["Fit ICA"]
B06a1 --> B06a2["Find ICA artifacts"]
B05 --> B06b["Compute SSP"]
B05 --> B07["Extract epochs"]
B06a2 --> B08a["Apply ICA"]
subgraph Z[" "]
direction LR
B06a1
B07
B06b
end
style Z fill:#0000,stroke-width:0px
B06b --> B08b["Apply SSP"]
B07 --> B08a
B07 --> B08b
B08a --> B09["Remove epochs based on PTP amplitudes"]
B08b --> B09
3. Sensor-space analysis¶
Click to expand
flowchart TD
C01["Extract evoked data for each condition"] --> C02["Decode pairs of conditions based on entire epochs"]
C02 --> C03["Decode time-by-time using a 'sliding' estimator"]
C03 --> C04["Time-frequency decomposition"]
C04 --> C05["Decoding based on common spatial patterns (CSP)"]
C05 --> C06["Noise covariance estimation"]
C06 --> C99["Group average at the sensor level"]
4. Source-space analysis¶
Click to expand
flowchart TD
D01["Create BEM surfaces"] --> D02["Compute BEM solution"]
D02 --> D03["Setup source space"]
D03 --> D04["Forward solution"]
D04 --> D05["Inverse solution"]
D05 --> D99["Group average at the source level"]
5. FreeSurfer-related processing¶
Click to expand
flowchart TD
E01["Run FreeSurfer's recon-all"] --> E02["Generate coregistration surfaces"]