This is a Matlab / Octave toolbox to perform MRI data analysis on a BIDS data set using SPM12.
docker pull cpplab/bidspm:latest
In a terminal or a git bash prompt, type:
git clone --recurse-submodules https://github.com/cpp-lln-lab/bidspm.git
To start using bidspm, you just need to initialize it for the current MATLAB / Octave session with:
bidspm()
Please see our documentation for more info.
For some of its functionality bidspm has a BIDS app like API.
See this page for more information.
But in brief they are of the form:
bidspm(bids_dir, output_dir, ...
'analysis_level', ...
'action', 'what_to_do')
Use a MATLAB / Octave script with:
% path to your raw BIDS dataset
bids_dir = path_of_raw_bids_dataset;
% where you want to save the model
output_dir = path_where_the_output_should_go;
tasks_to_include_in_model = {'task1', 'task2', 'task3'};
% for example 'MNI152NLin2009cAsym'
space_to_include_in_model = {'spaceName'};
bidspm(bids_dir, output_dir, 'dataset', ...
'action', 'default_model', ...
'task', tasks_to_include_in_model, ...
'space', space_to_include_in_model)
Use a MATLAB / Octave script with:
% path to your raw BIDS dataset
bids_dir = path_of_raw_bids_dataset;
% where you want to save the model
output_dir = path_where_the_output_should_go;
preproc_dir = path_to_preprocessed_dataset; % for example fmriprep output
model_file = path_to_bids_stats_model_json_file;
subject_label = '01';
bidspm(bids_dir, output_dir, 'subject', ...
'participant_label', {subject_label}, ...
'action', 'stats', ...
'preproc_dir', preproc_dir, ...
'model_file', model_file)
bids_dir = path_to_raw_bids_dataset;
output_dir = path_to_where_the_output_should_go;
subject_label = '01';
bidspm(bids_dir, output_dir, 'subject', ...
'participant_label', {subject_label}, ...
'action', 'preprocess', ...
'task', {'yourTask'})
The model specification are set up using the BIDS stats model and can be used to perform:
If your data is fairly "typical" (for example whole brain coverage functional data with one associated anatomical scan for each subject), you might be better off running fmriprep on your data.
If you have more exotic data that cannot be handled well by fmriprep then bidspm has some automated workflows to perform amongst other things:
remove dummies
slice timing correction
spatial preprocessing:
func
to anat
,anat
segmentation and skull strippingsmoothing
All (well almost all) preprocessed outputs are saved as BIDS derivatives with BIDS compliant filenames.
Please see our documentation for more info.
@software{bidspm,
author = {Gau, Rémi and Barilari, Marco and Battal, Ceren and Rezk, Mohamed and Collignon, Olivier and Gurtubay, Ane and Falagiarda, Federica and MacLean, Michèle and Cerpelloni, Filippo and Shahzad, Iqra and Nunes, Márcia and Caron-Guyon, Jeanne and Chouinard-Leclaire, Christine and Yang, Ying and Mattioni, Stefania and Van Audenhaege, Alice and Matuszewski, Jacek},
license = {GPL-3.0},
title = {{bidspm}},
url = {https://github.com/cpp-lln-lab/bidspm},
version = {3.1.0dev}
}
Thanks goes to these wonderful people.
(emoji key):
This project follows the all-contributors specification. Contributions of any kind welcome!