Suggested Pipelines
Master Pipeline
{{#mermaid:graph LR
DoStuff --> DoMoreStuff; DoMoreStuff --> DoEvenMoreStuff; DoEvenMoreStuff --> PublishNaturePaper;
}}
Basic MRI Pre-Processing Workflow
For any experiment where you wish to localize data to the brain, the first step is MRI pre-processing. First, MEG data must be co-registered to the space of the MRI, either by manually placing fiducial points on the MRI, or through a semi-automated method where a digital head shape is aligned with a head surface. (Other algorithmic techniques are possible, these will be discussed later). For the purpose of source space reconstruction, the head can be modeled either as a collection of spheres, one per channel, (MultiSphere) or in a realistic fashion using the Nolte model.
{{#mermaid:graph LR
MRI["Structural MRI"] --> fids["Place Fiducials"]; MRI["Structural MRI"] --> shape["Register point clouds"];
subgraph MRI Preprocessing
fids --> hull["Process with orthohull"]; shape --> hull;
style hull fill:#fcf click hull "https://megcore.nih.gov/index.php/Head_Localization_and_MRI_Coregistration" "orthohull documentation"
end
subgraph MultiSphere
hull --> localSpheres; localSpheres --> MultiSphere["default.hdm"];
end
subgraph Nolte
hull --> Nolte["hull.shape"];
end }}
Basic Resting State MEG processing
Basic preprocessing of resting state MEG data includes filtering, and possibly artifact removal. Removing artifacts could consist of eliminating bad segments, or a more comprehensive process like ICA. When examining resting state data, the end goals is usually to examine either static measures of power, or connectivity. For connectivity, the output of SAM is a continuous time series, usually the Hilbert envelope of a band limited signal. Following calculation of this time series, other routines (such as ICA, seed based correlation, etc.) can be used to derive connectivity between regions.
{{#mermaid:graph LR
MEG["MEG Data"] --> Filtering;
subgraph PreProcessing
Filtering --> Art["Artifact Removal"];
end
subgraph SAM PreProcessing
Art --> sam_cov sam_cov --> sam_wts style sam_cov fill:#fcf style sam_wts fill:#fcf click sam_cov "https://megcore.nih.gov/index.php/Sam_cov" "sam_cov documentation" click sam_wts "https://megcore.nih.gov/index.php/Sam_wts" "sam_wts documentation"
end
subgraph Power
sam_wts --> sam["sam_3d/sam_3dc"];
style sam fill:#fcf click sam "https://megcore.nih.gov/index.php/Sam_3d_and_sam_3dc" "sam_3d/sam_3dc documentation"
end subgraph Connectivity
sam_wts --> sam_power; style sam_power fill:#fcf click sam_power "https://megcore.nih.gov/index.php/Sam_power" "sam_power documentation"
end }}
Basic Task Based MEG Pipeline
In a task based analysis, you start with raw MEG data, as wells as data from the ADC channels - triggers, stimuli, and responses. Both of these must be pre-processed. Once your MEG data is marked appropriately, you can begin a SAM analysis. If you are interested in time-locked (evoked or event-related) signals, you can use either sam_4d or sam_4dc or sam_ers or sam_ersc, depending on exactly what you want as output. Alternatively, if you do not expect your signals to be time-locked, you can examine changes in induced power using sam_3d or sam_3dc.
{{#mermaid:graph LR
MEG["MEG Data"] --> Filtering;
subgraph MEG PreProcessing
Filtering --> Art["Artifact Removal"];
end
ADC["ADC/Trigger Channels"] --> thresholdDetect;
subgraph ADC PreProcessing
thresholdDetect --> add_markers;
end
subgraph SAM PreProcessing
add_markers--> sam_cov; Art --> sam_cov; sam_cov --> sam_wts; style sam_cov fill:#fcf style sam_wts fill:#fcf click sam_cov "https://megcore.nih.gov/index.php/Sam_cov" "sam_cov documentation" click sam_wts "https://megcore.nih.gov/index.php/Sam_wts" "sam_wts documentation"
end
subgraph Induced Power
sam_wts --> sam_3d["sam_3d/sam_3dc"]; style sam_3d fill:#fcf click sam_3d "https://megcore.nih.gov/index.php/sam_3d_and_sam_3dc" "sam_3d/sam_3dc documentation"
end
subgraph Evoked/Event Related
sam_wts --> sam_ers["sam_ers/sam_ersc"]; sam_wts --> sam_4d["sam_4d/sam_4dc"]; style sam_ers fill:#fcf click sam_ers "https://megcore.nih.gov/index.php/sam_ers_and_sam_ersc" "sam_ers/sam_ersc documentation" style sam_4d fill:#fcf click sam_4d "https://megcore.nih.gov/index.php/sam_4d_and_sam_4dc" "sam_4d/sam_4dc documentation"
end }}
Localizing Epileptiform Activity
{{#mermaid:graph LR
MEG
MEG["MEG Data"] --> sam_cov;
subgraph Phase I: Filter 20-70Hz
sam_cov --> sam_wts; sam_wts --> sam_epi;
end
sam_epi --> NIFTIPeak["NIFTIPeak
Target
Identification"]
NIFTIPeak --> sam_cov2
subgraph Phase II: Filter 1-150Hz
sam_cov2 --> sam_wts2 sam_wts2 --> DataEditor
end
DataEditor --> Spike["Spike Identification"]
}}
{{#mermaid:graph LR
marks --> Covariance;
subgraph MEG Preprocessing
raw[Raw MEG data] --> filter[Basic Filtering]; adc[Raw ADC/PPT
data] --> ThresholdDetect; ThresholdDetect --> marks[Create Markers]; filter --> meg[MEG Data];
end
subgraph MEG Data Statistics
meg --> Filter[Band-pass
filter]; Filter --> Covariance;
end
}}
{{#mermaid:graph LR subgraph Synthetic Aperture Magnetometry
Covariance --> Beamformer; head[Head Model] --> Beamformer; Beamformer --> image["3D Images"];
end }}
{{#mermaid:graph LR subgraph SAM Workflow
sam_cov --> sam_wts; sam_wts --> sam_3d; sam_3d --> AFNI; AFNI --> sam_wts; AFNI --> sam_cov;
style sam_cov fill:#fcf click sam_cov "https://megcore.nih.gov/index.php/Sam_cov" "sam documentation" style sam_wts fill:#fcf click sam_wts "https://megcore.nih.gov/index.php/Sam_wts" "sam documentation" style sam_3d fill:#fcf click sam_3d "https://megcore.nih.gov/index.php/Sam_3d" "sam documentation" style AFNI fill:#fcf click AFNI "https://afni.nimh.nih.gov/" "The AFNI website"
end }}
- Create covariance matrices using sam_cov.
- Compute beamformer weights with sam_wts.
- sam_3d uses the weights to compute volumetric images of activity estimates.
- View them with AFNI.
- It didn't work, go back and try again.
- Nope, still didn't work, try this instead.