diff --git a/.gitignore b/.gitignore index 8b35793f78c80b7019d5f57e733bc829e89c7fea..299779dbcc852c60e1a02c4f5689f1b4bff8a25a 100644 --- a/.gitignore +++ b/.gitignore @@ -53,7 +53,6 @@ coverage.xml # Jupyter Notebook .ipynb_checkpoints -*.ipynb # IPython profile_default/ @@ -115,5 +114,4 @@ dmypy.json # test_data related files saved_file.nii.gz -features75.npy -tests/test_data/models/tmp_model.pth \ No newline at end of file +features75.npy \ No newline at end of file diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index a4953b00fa5f0ddbc7b6f35c775422aa94280da9..386c3c21a396d3d643587b89698eb2e87820719d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -3,6 +3,21 @@ image: python:3.9 stages: - build - test + - docs + +pages: + stage: docs + script: + - pip install sphinx + - pip install sphinx_rtd_theme + - cd docs + - make html + - mv build/html ../public + artifacts: + paths: + - public + tags: + - docker variables: PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" @@ -23,8 +38,12 @@ build: stage: build script: - python setup.py install + tags: + - docker test: stage: test script: - python -m pytest + tags: + - docker diff --git a/README.md b/README.md index 8a1a2d3f97516cb96a62592612db2f3b67fb4a41..dd9e80553abbdcf99a8e8a7c2c49c263851d05f9 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,180 @@ -# python-localise +# localise -python-localise is a Python package developed to ... +This library implements LOCALISE. ## Installation ```bash -pip install python-localise +git clone https://git.fmrib.ox.ac.uk/yqzheng1/python-localise.git +cd python-localise +pip install . +``` + +## Usage + +### 1. **Preparation step**: generate connectivity features using tractography (either on high- or low-quality data) + +If you haven't done so, you may want to create anatomical masks and run tractography to generate connectivity features. If you have your own tract density maps, please skip to [2. Localise a target](#2-localise-a-target). + +#### 1.1 Create anatomical masks + +To create anatomical masks, you can either run the shell scripts under `/scripts` by + +```bash +create_masks --ref=/path/to/t1.nii.gz --warp=/path/to/warp.nii.gz --out=/path/to/roi --aparc=/path/to/aparc.a2009s+aseg.nii.gz +``` + +where `--ref=t1.nii.gz` and `--warp=warp.nii.gz` are required arguments, specifying the reference image and the warp field that maps MNI 1mm space to the reference space. It is recommended to have your own cortical parcellation file `--aparc=aparc.a2009s+aseg.nii.gz`, otherwise standard ROIs will be employed. If the output directory is unspecified, it will create a folder called `roi` under the same directory as the reference image. More instructions can be found by typing `/path/to/HQAugmentation.jl/scripts/create_masks.sh --help`. + +#### 1.2 Create tract density maps (connectivity features) + +To create tract density maps, you can either run the following in command line + +```bash +create_tract --samples=/path/to/data.bedpostX --inputdir=/path/to/roi/left --seed=/path/to/seed.nii.gz --out=/path/to/my_output_dir +``` + +where `--samples` and `--inputdir` are required arguments. You must specify the folder containing `merged_*samples.nii.gz` samples, e.g., the output directory from FSL's BedpostX. `--inputdir` is the directory that stores anatomical masks. If you don't specify the seed, it will use `tha.nii.gz` under the `inputdir`. More info can be found by typing `/path/to/HQAugmentation.jl/scripts/create_tract.sh --help`. + +You can also run this in julia by executing the following function: + +#### 1.3 Create connectivity-driven Vim + +If you have high-quality data, you may create "ground truth" location using the following connectivity-driven approach. + +```shell +connectivity_driven --target1=seeds_to_m1.nii.gz --thr1=50 --target2=seeds_to_cerebellum.nii.gz --thr2=15 --out=label.nii.gz +``` + +will create connectivity-driven Vim. + +Subjects must be organised in the same file structure. Suppose your data is organised in this way: + +### 2. Localise a target + +#### 2.1 Command-line interface + +```bash +subject001/ +├── streamlines +│ ├── left +│ ├── seeds_to_target1.nii.gz +│ ├── seeds_to_target2.nii.gz +│ ├── right +│ ├── seeds_to_target1.nii.gz +│ ├── seeds_to_target2.nii.gz +├── roi +│ ├── left +│ ├── tha.nii.gz +│ ├── atlas.nii.gz +│ ├── right +│ ├── tha.nii.gz +│ ├── atlas.nii.gz +├── high-quality-labels +│ ├── left +│ ├── labels.nii.gz +│ ├── right +│ ├── labels.nii.gz +└── otherfiles +subject002/ +subject003/ +``` + +For a comprehensive list of available commands and options, enter: + +```bash +localise --help +``` + +##### Prediction mode + +Use the prediction mode when you want to apply a pre-trained model to localise a particular target, such as the ventral intermediate nucleus of the thalamus (Vim). Ensure you've generated the required tract-density maps before starting. + +###### Example with Default Naming + +This example assumes your tract-density maps follow the naming convention of the default target list the model was trained with. Default target lists are available under `resources/data`. For Vim models, refer to `resources/data/vim_default_targets.txt`. + +```bash +localise --predict --structure=vim --subject=subj1001 --mask=roi/left/tha_small.nii.gz --target_path=streamlines/left --data_type=single32 --spatial --out=predictions.nii.gz +``` + +###### Example with Custom Naming + +If your tract-density maps use a different naming scheme, you can provide your own target list. Additionally, you can input a text file containing paths to multiple subjects. Make sure they are in the same order as the `resources/data/vim_default_targets.txt`. + +```bash +localise --predict --structure=vim --subject=subjs.txt --mask=roi/left/tha_small.nii.gz --target_path=streamlines/left --target_list=your_target_list.txt --data_type=single32 --spatial --out=predictions.nii.gz +``` + +###### Using a Custom Model + +If you don't want to use the pre-trained default model, and you've trained your own model `your_trained_model.pth` using a specific target list `your_target_list.txt` (see [Train mode](#train-mode) for custom training), you can use the following: + +```bash +localise --predict --subject=subjs.txt --mask=roi/left/tha_small.nii.gz --model=your_trained_model.pth --target_path=streamlines/left --target_list=your_target_list.txt --spatial --out=predictions.nii.gz +``` + +##### Train mode + +Use the training mode when you want to train a custom model with a specific target list. Ensure you possess the required labels that serve as ground truth during the training process. + +To train a model using subjects listed in `training_subjs.txt`, and targets in `your_target_list.txt`, and subsequently save the trained model as `your_trained_model.pth`, use the following: + +```bash +localise --train --subject=training_subjs.txt --mask=roi/left/tha_small.nii.gz --label=high-quality-labels/left/labels.nii.gz --target_path=streamlines/left --target_list=your_target_list.txt --out_model=your_trained_model.pth --spatial +``` + +Once trained, your custom model (your_trained_model.pth) can be applied to new, unseen subjects, as showcased in the [Prediction mode](#prediction-mode) section. + +#### 2.2 Python interface + +You can also train a model or localise for unseen subjects using the python interface. + +```python +import numpy as np +from localise.load import load_data, load_features, ShuffledDataloader +from localise.train import train +from localise.predict import apply_model + +with open('train_subjs.txt', 'r') as f: + train_list = [line.strip() for line in f] + +with open('test_subjs.txt', 'r') as f: + test_list = [line.strip() for line in f] + +mask_name = 'roi/left/tha_small.nii.gz' +label_name = 'high-quality-labels/left/labels.nii.gz' +target_path = 'streamlines/left' +target_list = 'target_list.txt' +atlas = 'roi/left/atlas.nii.gz' +output_fname = 'streamlines/left/data.npy' + +# load training data +train_data = load_data(subject=train_list, mask_name=mask_name, + target_path=target_path, target_list=target_list, + atlas=atlas, label_name=label_name, + output_fname=output_fname) +# ShuffedDataloader shuffles the order of training subjects in each epoch +train_dataloarder = ShuffledDataloader(train_data) + +# load test data +test_data = load_data(subject=test_list, mask_name=mask_name, + target_path=target_path, target_list=target_list, + atlas=atlas, label_name=label_name, + output_fname=output_fname) + +test_dataloarder = ShuffledDataloader(test_data) +#### training +# the trained model is saved in out_model +model_save_path = 'your_trained_model.pth' + +# train a model and store in m +m = train(train_dataloarder, test_dataloader, model_save_path=model_save_path) + +# make predictions +predictions = apply_model(test_data, m) + +# save to nii +for prediction, subject in zip(predictions, test_list): + save_nifti_4D(prediction, os.path.join(subject, mask_name), os.path.join(subject, 'predictions')) ``` diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..d0c3cbf1020d5c292abdedf27627c6abe25e2293 --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = source +BUILDDIR = build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000000000000000000000000000000000000..747ffb7b3033659bdd2d1e6eae41ecb00358a45e --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=source +set BUILDDIR=build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/source/conf.py b/docs/source/conf.py new file mode 100644 index 0000000000000000000000000000000000000000..1861c7730dfbb697d83aaa8d4d974f4e545e156a --- /dev/null +++ b/docs/source/conf.py @@ -0,0 +1,33 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'Localise' +copyright = '2023, Ying-Qiu Zheng' +author = 'Ying-Qiu Zheng' +version = '0.1' +release = '0.1.0' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = [ + 'sphinx.ext.duration', + 'sphinx.ext.autodoc', + 'sphinx.ext.autosummary', +] + +templates_path = ['_templates'] +exclude_patterns = [] + + + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_theme = 'sphinx_rtd_theme' +html_static_path = ['_static'] diff --git a/docs/source/index.rst b/docs/source/index.rst new file mode 100644 index 0000000000000000000000000000000000000000..cbc5e58488c6937e7ce1b754e67f4abedc186eed --- /dev/null +++ b/docs/source/index.rst @@ -0,0 +1,29 @@ +.. Localise documentation master file, created by + sphinx-quickstart on Sun Oct 8 17:56:04 2023. + You can adapt this file completely to your liking, but it should at least + contain the root `toctree` directive. + +Welcome to Localise's documentation! +==================================== +**Localise** is a Python library for segmentating prevalent surgical targets using multimodal MRI. +Check out the :ref:`Usage <usage>` section for further information, including how to +:ref:`install <installation>` the project. + +.. note:: + + This project is under active development. + +.. toctree:: + :maxdepth: 2 + :caption: Contents: + + sections/usage + sections/api + + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/docs/source/sections/api.rst b/docs/source/sections/api.rst new file mode 100644 index 0000000000000000000000000000000000000000..16f6e9eaed1ac6d5491596ff4f4f6bb196049460 --- /dev/null +++ b/docs/source/sections/api.rst @@ -0,0 +1,7 @@ +API +=== + +.. autosummary:: + :toctree: generated + + localise \ No newline at end of file diff --git a/docs/source/sections/generated/localise.rst b/docs/source/sections/generated/localise.rst new file mode 100644 index 0000000000000000000000000000000000000000..d36fdf31177e678337e5e27041b2098ae23ced30 --- /dev/null +++ b/docs/source/sections/generated/localise.rst @@ -0,0 +1,23 @@ +localise +======== + +.. automodule:: localise + + + + + + + + + + + + + + + + + + + diff --git a/docs/source/sections/usage.rst b/docs/source/sections/usage.rst new file mode 100644 index 0000000000000000000000000000000000000000..40256011d4c2fab270c9e0f8d7821898abd08a63 --- /dev/null +++ b/docs/source/sections/usage.rst @@ -0,0 +1,19 @@ +.. _usage: + +Usage +===== + +.. _installation: + +Installation +------------ + +To use Localise, first install it using pip: + +.. code-block:: console + + (.venv) $ pip install localise + +Preparing +---------------- + diff --git a/localise/scripts/localise.py b/localise/args.py similarity index 60% rename from localise/scripts/localise.py rename to localise/args.py index c20eab206e29c6364d7cb88bd915f5ce6e72b408..16235f17cf0246887ee561532e378aeec6f85073 100644 --- a/localise/scripts/localise.py +++ b/localise/args.py @@ -1,17 +1,7 @@ -#!/usr/bin/env python import os -import argparse, textwrap, logging -import pkg_resources -from pathlib import Path -from localise.load import load_data, load_features, ShuffledDataLoader -from localise.train import train, train_with_val, train_without_val -from localise.predict import apply_pretrained_model -from localise.utils import save_nifti, get_subjects +import argparse, textwrap -#PKG_PATH = pkg_resources.get_distribution('localise').location -PKG_PATH = Path(__file__).parent.parent - def parse_arguments(): p = argparse.ArgumentParser(description="Localise") @@ -74,7 +64,8 @@ def parse_arguments(): ''')) p.add_argument('--spatial', action='store_true', required=False, help='Use conditional random field (recommended).') - p.add_argument('--verbose', '-v', action='store_true', help="Increase output verbosity") + p.add_argument('--verbose', '-v', action='store_true', required=False, + help="Increase output verbosity") # predict group predict_group.add_argument('--structure', '-r', required=False, dest='structure', type=str, @@ -129,111 +120,4 @@ def parse_arguments(): if args.data is None and args.target_path is None: p.error('At least one of --data or --target_path must be provided.') - return args - - -def predict_mode(subject, mask, structure, - target_path, target_list, - data, atlas, out, model, spatial, data_type): - - logging.info('Predict mode on.\n') - subjects = get_subjects(subject) - - if model is None: - # error checking - if structure is None: - raise ValueError('When using the default model, you must specify the structure.') - if data_type is None: - raise ValueError('When using the default model, you must specify the data_type.') - - logging.info(f'Using the default model for {structure} on {data_type}.') - # load the default model. - model_dir = os.path.join(PKG_PATH, 'resources', 'models', structure, data_type) - model_name = f'{structure}_crf_model.pth' if spatial else f'{structure}_model.pth' - model = os.path.join(model_dir, model_name) - - if not os.path.exists(model): - raise ValueError(f'We dont have a pretrained model for {structure} {data_type}.') - - # checking whether or not to use default - if data is None and target_list is None: - # load default target list - logging.info('Using default target list.') - target_list_fname = os.path.join(PKG_PATH, 'resources', 'data', - f'{structure}_default_target_list.txt') - with open(target_list_fname, 'r') as f: - target_list = [line.strip() for line in f] - - else: - logging.info(f'Please make sure your data or target_list matches the order of the default target list {target_list_fname}.') - - else: - logging.info(f'Using the model stored in {model}.') - - # load connectivity features - data = [ - load_features( - subject=subject, - mask=mask, - target_path=target_path, - target_list=target_list, - data=data, - atlas=atlas - ) - for subject in subjects - ] - - predictions = apply_pretrained_model(data, model, spatial=spatial) - - # save to nii files - for subject, prediction in zip(subjects, predictions): - save_nifti(prediction, os.path.join(subject, mask), os.path.join(subject, out)) - - return predictions - - -def train_mode(subject, mask, label, target_path, - target_list, data, atlas, out_model, - spatial, epochs): - - logging.info('Training mode on.\n') - subjects = get_subjects(subject) - - if data is None and target_list is None: - raise ValueError('Please specify --target_list or --data.') - - data = [ - load_data( - subject=subject, - mask=mask, - label_name=label, - target_path=target_path, - target_list=target_list, - data=data, - atlas=atlas - ) - for subject in subjects - ] - - dataloader = ShuffledDataLoader(data) - model = train_without_val(dataloader, n_epochs=epochs, - spatial_model=spatial, - model_save_path=out_model) - - return model - - -if __name__ == "__main__": - args = parse_arguments() - if args.predict: - predict_mode(args.subject, args.mask, args.structure, - args.target_path, args.target_list, - args.data, args.atlas, args.out, - args.model, args.spatial, args.data_type) - elif args.train: - train_mode(args.subject, args.mask, args.label, - args.target_path, args.target_list, - args.data, args.atlas, args.out_model, - args.spatial, args.epochs) - else: - raise ValueError("Exactly one of --train or --predict must be specified.") \ No newline at end of file + return args \ No newline at end of file diff --git a/localise/flatten_forward.py b/localise/flatten_forward.py index 8954c7c8437d5bba80d6cc4163da88598abbd868..bb3b127d935080085d22cb87fea39d9ed3029e60 100644 --- a/localise/flatten_forward.py +++ b/localise/flatten_forward.py @@ -23,7 +23,7 @@ class FlexibleClassifier(Module): self.n_kernels = n_kernels if self.is_crf: - self.smooth_weight = Parameter(torch.rand(n_kernels)) + self.smooth_weight = Parameter(torch.full((n_kernels,), 0.5)) self.compatibility = Parameter((torch.ones(n_classes, n_classes) - torch.eye(n_classes)).float(), requires_grad=False) #@property diff --git a/localise/load.py b/localise/load.py index 271e7f005dccb12527252a422470d1f9a521d77a..d39b8b8bb3db64944c26b50d70d484d034fd0534 100644 --- a/localise/load.py +++ b/localise/load.py @@ -18,7 +18,7 @@ def load_features(subject, mask_name, target_path=None, data=None, atlas=None, Parameters ---------- - subject : str + subject : str or list of str The name of the subject. mask_name : str The name of the mask file. @@ -28,8 +28,8 @@ def load_features(subject, mask_name, target_path=None, data=None, atlas=None, The path to the data. atlas : str, optional. Defaults to None. The path to the atlas. If not None, will include this as an additional features - target_list : list, optional - A list of targets. Defaults to `DEFAULT_TARGET_LIST`. + target_list : list or str, optional + A list of targets, or the txt file listing the names of the targets. demean : bool, optional If True, demean the feature matrix. Defaults to True. normalise : bool, optional @@ -52,7 +52,16 @@ def load_features(subject, mask_name, target_path=None, data=None, atlas=None, If both `data` and `target_path` are not set. If the loaded data matrix and mask dimensions do not match. - """ + """ + if isinstance(subject, list): + results = [load_features(subject=s, mask_name=mask_name, + target_path=target_path, data=data, atlas=atlas, + target_list=target_list, demean=demean, + normalise=normalise, gamma=gamma, + power=power, output_fname=output_fname) + for s in subject] + return results + if data is None and target_path is None: raise ValueError("Please specify either target_path or data.") @@ -71,6 +80,11 @@ def load_features(subject, mask_name, target_path=None, data=None, atlas=None, # load data into X if data is None: + # if target_list is a file containing target names + if isinstance(target_list, str): + with open(target_list, 'r') as f: + target_list = [line.strip() for line in f] + n_targets = len(target_list) X = np.zeros((n_targets, n), dtype=np.float32) for k in range(n_targets): @@ -99,9 +113,9 @@ def load_features(subject, mask_name, target_path=None, data=None, atlas=None, # maximum tract density normalised to 1 if normalise: - maxX = np.max(X, axis=1) + maxX = np.max(X, axis=1, keepdims=True) maxX[ maxX==0 ] = 1 - X /= maxX[:, None] + X /= maxX # replace np.nan and np.inf with 0 X = np.nan_to_num(X) @@ -122,7 +136,7 @@ def load_labels(subject, mask_name, label_name): Parameters ---------- - subject : str + subject : str or list of str Path to the subject directory. mask_name : str Filename of the mask data file. @@ -137,6 +151,11 @@ def load_labels(subject, mask_name, label_name): The second row is the inverse of the first row. """ + if isinstance(subject, list): + results = [load_labels(subject=s, mask_name=mask_name, label_name=label_name) + for s in subject] + return results + mask = nib.load(os.path.join(subject, mask_name)).get_fdata() index = np.where(mask > 0) @@ -157,7 +176,7 @@ def load_data(subject, mask_name, label_name, target_path=None, data=None, Parameters ---------- - subject : str + subject : str or list of str The name of the subject. mask_name : str The name of the mask file. @@ -169,8 +188,8 @@ def load_data(subject, mask_name, label_name, target_path=None, data=None, The path to the data. atlas : str, optional. Defaults to None. The path to the atlas. If not None, will include this as an additional feature - target_list : list, optional - A list of targets. Defaults to `DEFAULT_TARGET_LIST`. + target_list : list or str, optional + A list of targets, or the txt file listing the names of the targets. demean : bool, optional If True, demean the feature matrix. Defaults to True. normalise : bool, optional @@ -195,6 +214,15 @@ def load_data(subject, mask_name, label_name, target_path=None, data=None, If the loaded data matrix and mask dimensions do not match. """ + if isinstance(subject, list): + results = [load_data(subject=s, mask_name=mask_name, label_name=label_name, + target_path=target_path, data=data, atlas=atlas, + target_list=target_list, demean=demean, + normalise=normalise, gamma=gamma, + power=power, output_fname=output_fname) + for s in subject] + return results + features = load_features(subject=subject, mask_name=mask_name, target_path=target_path, data=data, atlas=atlas, target_list=target_list, demean=demean, normalise=normalise, diff --git a/localise/predict.py b/localise/predict.py index 20434d1d8d35527aae3ed212ddf2a4cebf907aab..e59227935148e65daed730fb4eae89bccce7b714 100644 --- a/localise/predict.py +++ b/localise/predict.py @@ -49,6 +49,7 @@ def apply_pretrained_model(data, model_save_path, model="Linear", spatial_model= return predictions + def apply_model(data, model): """_summary_ diff --git a/localise/train.py b/localise/train.py index 2dddd79ccb5758030b3332b749b006590637932d..44e9071f9b8c588de73cea117690dced010e84b8 100644 --- a/localise/train.py +++ b/localise/train.py @@ -29,8 +29,17 @@ def train_loop(data, model, loss_fn, optimizer, lambda_l1, lambda_l2, print_freq loss = loss_fn(pred, y) # add L1 and L2 penalty - layer_weights = torch.stack([x for x in model.layer.parameters() if x.dim() > 1]) - loss += lambda_l1 * torch.norm(layer_weights, 1) + lambda_l2 * torch.norm(layer_weights, 2) + l1 = 0 + l2 = 0 + for x in model.layer.parameters(): + if x.dim() > 1: + l1 += torch.norm(x, 1) + l2 += torch.norm(x, 2) + + #layer_weights = torch.stack([x for x in model.layer.parameters() if x.dim() > 1]) + #loss += lambda_l1 * torch.norm(layer_weights, 1) + lambda_l2 * torch.norm(layer_weights, 2) + loss += lambda_l1 * l1 + lambda_l2 * l2 + loss.backward() optimizer.step() optimizer.zero_grad() @@ -58,6 +67,18 @@ def val_loop(data, model, loss_fn): logging.info(f"Test Error: \n Avg loss: {test_loss / len(data):>8f} \n") +def initialize_model(model, n_features, n_classes, n_kernels, spatial_model): + if model == "Linear": + return FlexibleClassifier(Linear(n_features, n_classes), n_classes=n_classes, + n_kernels=n_kernels, is_crf=spatial_model) + elif model == "MLP": + return FlexibleClassifier(MLP(n_features, 2, n_classes), n_classes=n_classes, + n_kernels=n_kernels, is_crf=spatial_model) + else: + return FlexibleClassifier(model, n_classes=n_classes, + n_kernels=n_kernels, is_crf=spatial_model) + + def train(training_data, test_data, model="Linear", loss_fn=nn.CrossEntropyLoss(), @@ -102,23 +123,31 @@ def train(training_data, test_data, n_kernels = X.f.shape[0] # Define a model - if model == "Linear": - m = FlexibleClassifier(Linear(n_features, n_classes), n_classes=n_classes, - n_kernels=n_kernels, is_crf=spatial_model) - elif model == "MLP": - m = FlexibleClassifier(MLP(n_features, 2, n_classes), n_classes=n_classes, - n_kernels=n_kernels, is_crf=spatial_model) - else: - m = FlexibleClassifier(model, n_classes=n_classes, - n_kernels=n_kernels, is_crf=spatial_model) - + m = initialize_model(model, n_features, n_classes, n_kernels, spatial_model=spatial_model) + + # if requires a spatial model, first train a non-spatial one to initialise + if spatial_model: + m_init = initialize_model(model, n_features, n_classes, n_kernels, spatial_model=False) + + optimizer_init = optimizer(m_init.parameters(), lr=lr) + for t in range(10): + logging.info(f"Epoch {t+1}\n-------------------------------") + train_loop(training_data, m_init, loss_fn, optimizer_init, l1_lambda, l2_lambda, print_freq) + val_loop(test_data, m_init, loss_fn) + + logging.info("Initialisation Done.") + params_init = m_init.state_dict() + + # copy m_init params into m + m.load_state_dict(params_init, strict=False) + optimizer = optimizer(m.parameters(), lr=lr) for t in range(n_epochs): logging.info(f"Epoch {t+1}\n-------------------------------") train_loop(training_data, m, loss_fn, optimizer, l1_lambda, l2_lambda, print_freq) val_loop(test_data, m, loss_fn) - logging.info("Training Done!") + logging.info("Training Done.") # save the model if requested if model_save_path is not None: @@ -170,22 +199,29 @@ def train_without_val(training_data, n_kernels = X.f.shape[0] # Define a model - if model == "Linear": - m = FlexibleClassifier(Linear(n_features, n_classes), n_classes=n_classes, - n_kernels=n_kernels, is_crf=spatial_model) - elif model == "MLP": - m = FlexibleClassifier(MLP(n_features, 2, n_classes), n_classes=n_classes, - n_kernels=n_kernels, is_crf=spatial_model) - else: - m = FlexibleClassifier(model, n_classes=n_classes, - n_kernels=n_kernels, is_crf=spatial_model) + m = initialize_model(model, n_features, n_classes, n_kernels, spatial_model=spatial_model) + + # if requires a spatial model, first train a non-spatial one to initialise + if spatial_model: + m_init = initialize_model(model, n_features, n_classes, n_kernels, spatial_model=False) + optimizer_init = optimizer(m_init.parameters(), lr=lr) + for t in range(10): + logging.info(f"Epoch {t+1}\n-------------------------------") + train_loop(training_data, m_init, loss_fn, optimizer_init, l1_lambda, l2_lambda, print_freq) + + logging.info("Initialisation Done.") + params_init = m_init.state_dict() + + # copy m_init params into m + m.load_state_dict(params_init, strict=False) + optimizer = optimizer(m.parameters(), lr=lr) for t in range(n_epochs): logging.info(f"Epoch {t+1}\n-------------------------------") train_loop(training_data, m, loss_fn, optimizer, l1_lambda, l2_lambda, print_freq) - logging.info("Training Done!") + logging.info("Training Done.") # save the model if requested if model_save_path is not None: @@ -195,6 +231,7 @@ def train_without_val(training_data, return m +# this is useless for now def train_with_val(training_data, model="Linear", loss_fn=nn.CrossEntropyLoss(), diff --git a/localise/utils.py b/localise/utils.py index 0abff4d25b993cfd7bded0a95083fcbe61b68458..c40b0fa10ee3bd563016441e879faeed5b7cbdb7 100644 --- a/localise/utils.py +++ b/localise/utils.py @@ -1,10 +1,19 @@ -import os +import os, logging, subprocess import numpy as np import nibabel as nib +import subprocess +from pathlib import Path +from localise.load import load_data, load_features, ShuffledDataLoader +from localise.train import train, train_with_val, train_without_val +from localise.predict import apply_pretrained_model + + +PKG_PATH = Path(__file__).parent.parent + def save_nifti(data, mask_file, output_file): """ - Function to save a 1D numpy array into a NIfTI file using a specified binary NIfTI mask. + Function to save a 1D numpy array into a 3D NIfTI file using a specified binary NIfTI mask. Parameters: data (np.array): 1D numpy array to be saved. @@ -38,6 +47,48 @@ def save_nifti(data, mask_file, output_file): # output_file = 'output.nii.gz' # Output NIfTI file # save_nifti(data, mask_file, output_file) + +def save_nifti_4D(data, mask_file, output_file): + """ + Function to save a 2D numpy array into a 4D NIfTI file using a specified binary NIfTI mask. + + Parameters: + data (np.array): 2D numpy array to be saved. + mask_file (str): Path to the binary NIfTI mask file. + output_file (str): Output path where the NIfTI file will be saved. + """ + + # Load the mask NIfTI file + mask_nifti = nib.load(mask_file) + mask_data = mask_nifti.get_fdata() + + # number of classes + k = data.shape[1] + + # size in x, y, z dim + x, y, z = mask_data.shape + + # Check if the number of non-zero entries in the mask matches the length of the data + if np.count_nonzero(mask_data) != len(data): + raise ValueError('The number of non-zero entries in the mask does not match the length of the data.') + + # Create a 3D numpy array from the mask + output_data = np.zeros((x, y, z, k)) + + # non-zero items + indices = mask_data > 0 + + # Distribute the data into the 4D space defined by the mask + for kk in range(k): + output_data[indices, kk] = data[:, kk] + + # Create a NIfTI image from the output data + output_nifti = nib.Nifti1Image(output_data, mask_nifti.affine, mask_nifti.header) + + # Save the NIfTI image + nib.save(output_nifti, output_file) + + def get_subjects(subject_path): """Load subjects from file or directory.""" if os.path.isfile(subject_path): @@ -48,3 +99,224 @@ def get_subjects(subject_path): else: raise ValueError(f'Invalid subject path: {subject_path}. Please specify a correct subject dir or txt file.') + +def predict_mode(subject, mask, structure=None, target_path=None, target_list=None, + data=None, atlas=None, out=None, model=None, spatial=True, data_type=None): + + logging.info('Predict mode on.\n') + subjects = get_subjects(subject) + + if model is None: + # error checking + if structure is None: + raise ValueError('When using the default model, you must specify the structure.') + if data_type is None: + raise ValueError('When using the default model, you must specify the data_type.') + + logging.info(f'Using the default model for {structure} on {data_type}.') + # load the default model. + model_dir = os.path.join(PKG_PATH, 'resources', 'models', structure, data_type) + model_name = f'{structure}_spatial_model.pth' if spatial else f'{structure}_model.pth' + model = os.path.join(model_dir, model_name) + + if not os.path.exists(model): + raise ValueError(f'We dont have a pretrained model for {structure} {data_type}.') + + target_list_fname = os.path.join(PKG_PATH, 'resources', 'data', + f'{structure}_default_target_list.txt') + # checking whether or not to use default + if data is None and target_list is None: + # load default target list + logging.info('Using default target list.') + + with open(target_list_fname, 'r') as f: + target_list = [line.strip() for line in f] + + else: + logging.info(f'Please make sure your data or target_list matches the order of the default target list {target_list_fname}.') + + else: + logging.info(f'Using the model stored in {model}.') + + # check errors. either specify --data, or specify both --target_path and --target_list + if data is None: + if target_path is None: + raise ValueError("Please specify --target_path if you didn't specify --data") + if target_list is None: + raise ValueError("Please specify --target_list if you didn't specify --data when you are not using the default model.") + + # load connectivity features + data = [ + load_features( + subject=subject, + mask_name=mask, + target_path=target_path, + target_list=target_list, + data=data, + atlas=atlas + ) + for subject in subjects + ] + + predictions = apply_pretrained_model(data, model, spatial_model=spatial) + + # save to nii files + for subject, prediction in zip(subjects, predictions): + save_nifti(prediction.detach().numpy()[:, -1], os.path.join(subject, mask), os.path.join(subject, out)) + + return predictions + + +def train_mode(subject, mask, label, target_path=None, + target_list=None, data=None, atlas=None, out_model=None, + spatial=True, epochs=100): + + logging.info('Training mode on.\n') + subjects = get_subjects(subject) + + if data is None and target_list is None: + raise ValueError("Please specify --target_list if you didn't specify --data.") + + if data is None and target_path is None: + raise ValueError("Please specify --target_path if you didn't specify --data.") + + data = [ + load_data( + subject=subject, + mask_name=mask, + label_name=label, + target_path=target_path, + target_list=target_list, + data=data, + atlas=atlas + ) + for subject in subjects + ] + + dataloader = ShuffledDataLoader(data) + model = train_without_val(dataloader, n_epochs=epochs, + spatial_model=spatial, + model_save_path=out_model) + + return model + + +def create_masks(ref, warp, out=None, aparc=None, brainmask=None): + """ + Create masks based on provided parameters. + + Parameters: + - ref (str): Reference string. + - warp (str): Warp string. + - out (Optional[str]): Output string. Defaults to None. + - aparc (Optional[str]): Aparc string. Defaults to None. + - brainmask (Optional[str]): Brainmask string. Defaults to None. + + Raises: + - ValueError: If required environment variables or files are missing. + """ + if "FSLDIR" not in os.environ: + raise ValueError("FSLDIR environment variable does not exist.") + if not os.path.isfile(ref): + raise ValueError(f"{ref} does not exist.") + if not os.path.isfile(warp): + raise ValueError(f"{warp} does not exist.") + + cmd = os.path.join(PKG_PATH, "scripts", "create_masks") + args = [cmd, f"--ref={ref}", f"--warp={warp}"] + + params = [("out", out), ("aparc", aparc), ("brainmask", brainmask)] + for param, value in params: + if value is not None: + args.append(f"--{param}={value}") + + run_command(args) + + +def create_tracts(samples_dir, input_dir, seed=None, xfm=None, ref=None, + out=None, brainmask=None, nsteps=None, cthr=None, + fibthresh=None, nsamples=None, steplength=None, + sampvox=None, distthresh=None, gpu=True): + """ + Create tracts based on provided parameters. + + Parameters are described in the function signature. + + Raises: + - ValueError: If required environment variables or directories are missing. + """ + + if "FSLDIR" not in os.environ: + raise ValueError("FSLDIR environment variable is missing.") + if not os.path.isdir(samples_dir): + raise ValueError(f"Directory '{samples_dir}' is missing.") + if not os.path.isdir(input_dir): + raise ValueError(f"Directory '{input_dir}' is missing.") + + cmd = os.path.join(PKG_PATH, "scripts", "create_tracts") + args = [cmd, f"--samples={samples_dir}", f"--inputdir={input_dir}"] + + params = [ + ("out", out), + ("seed", seed), + ("xfm", xfm), + ("ref", ref), + ("brainmask", brainmask), + ("nsteps", nsteps), + ("cthr", cthr), + ("fibthresh", fibthresh), + ("nsamples", nsamples), + ("steplength", steplength), + ("sampvox", sampvox), + ("distthresh", distthresh) + ] + for param, value in params: + if value is not None: + args.append(f"--{param}={value}") + + if gpu: + args.append("--gpu") + + run_command(args) + + +def connectivity_driven(target1, target2, out, target3=None, + thr1=None, thr2=None, thr3=None, thr=None): + """ + Perform a connectivity-driven analysis using two or three target images. + + Parameters are described in the function signature. + + Raises: + - ValueError: If required environment variables or directories are missing. + """ + if "FSLDIR" not in os.environ: + raise ValueError("FSLDIR environment variable is missing.") + if not os.path.isfile(target1): + raise ValueError(f"{target1} does not exist.") + if not os.path.isfile(target2): + raise ValueError(f"{target2} does not exist.") + + cmd = os.path.join(PKG_PATH, "scripts", "connectivity_driven") + args = [cmd, f"--target1={target1}", f"--target2={target2}", f"--out={out}"] + + params = [ + ("thr1", thr1), + ("thr2", thr2), + ("thr3", thr3), + ("target3", target3), + ("thr", thr) + ] + for param, value in params: + if value is not None: + args.append(f"--{param}={value}") + + run_command(args) + + +def run_command(cmd): + try: + subprocess.run(cmd, check=True) + print(f"Command {' '.join(cmd)} executed successfully.") + except subprocess.CalledProcessError: + print(f"Error executing command: {' '.join(cmd)}") \ No newline at end of file diff --git a/notebooks/demo.ipynb b/notebooks/demo.ipynb new file mode 100644 index 0000000000000000000000000000000000000000..2ec3fd88d33025454e610862c2ef0f3f500c6a17 --- /dev/null +++ b/notebooks/demo.ipynb @@ -0,0 +1,74 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import os, logging\n", + "import numpy as np\n", + "import torch\n", + "from tqdm import tqdm\n", + "from IPython.display import display" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "# Logging configuration\n", + "class JupyterHandler(logging.StreamHandler):\n", + " def emit(self, record):\n", + " try:\n", + " msg = self.format(record)\n", + " display(msg)\n", + " except Exception:\n", + " self.handleError(record)\n", + "\n", + "logger = logging.getLogger()\n", + "logger.setLevel(logging.INFO)\n", + "\n", + "# Remove existing handlers\n", + "for handler in logger.handlers:\n", + " logger.removeHandler(handler)\n", + "\n", + "handler = JupyterHandler()\n", + "handler.setFormatter(logging.Formatter('%(asctime)s - %(levelname)s - %(message)s'))\n", + "\n", + "logger.addHandler(handler)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "env", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.3" + }, + "orig_nbformat": 4 + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/requirements.txt b/requirements.txt index a52eca96e152b4a7b151654e6da6188e18117aea..3a50b8d209dca7d52a99bb179b6f830890a3da60 100644 --- a/requirements.txt +++ b/requirements.txt @@ -4,7 +4,4 @@ joblib nibabel scipy pytest -argparse -random -textwrap -pkg_resources \ No newline at end of file +argparse \ No newline at end of file diff --git a/resources/MNI_roi/MNI152_T1_1mm_brain_mask.nii.gz b/resources/MNI_roi/MNI152_T1_1mm_brain_mask.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e9e198a118f9072a6e04cd548e6624ef9c52d100 Binary files /dev/null and b/resources/MNI_roi/MNI152_T1_1mm_brain_mask.nii.gz differ diff --git a/resources/MNI_roi/cortex.nii.gz b/resources/MNI_roi/cortex.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ea2e74a7fe866fa89475d5b195adb89a0f33ddd9 Binary files /dev/null and b/resources/MNI_roi/cortex.nii.gz differ diff --git a/resources/MNI_roi/left/1.nii.gz b/resources/MNI_roi/left/1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2308ad8c0c753627c9a155d3d0f381604045f958 Binary files /dev/null and b/resources/MNI_roi/left/1.nii.gz differ diff --git a/resources/MNI_roi/left/10.nii.gz b/resources/MNI_roi/left/10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e24ba781a07b23fc1d93fc01ec5eca8f2ae9fff4 Binary files /dev/null and b/resources/MNI_roi/left/10.nii.gz differ diff --git a/resources/MNI_roi/left/11.nii.gz b/resources/MNI_roi/left/11.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7a84627bcd321839e0ceedfbc3a9b482c232cec3 Binary files /dev/null and b/resources/MNI_roi/left/11.nii.gz differ diff --git a/resources/MNI_roi/left/12.nii.gz b/resources/MNI_roi/left/12.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2a622fb0af7f6319538d06b0244ef10dcd90047d Binary files /dev/null and b/resources/MNI_roi/left/12.nii.gz differ diff --git a/resources/MNI_roi/left/13.nii.gz b/resources/MNI_roi/left/13.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..f9d2ba1d10e59ced26960838586ec9f6891c8580 Binary files /dev/null and b/resources/MNI_roi/left/13.nii.gz differ diff --git a/resources/MNI_roi/left/14.nii.gz b/resources/MNI_roi/left/14.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..66a84cd74fc09c05444916ac669016d8247f5cd0 Binary files /dev/null and b/resources/MNI_roi/left/14.nii.gz differ diff --git a/resources/MNI_roi/left/15.nii.gz b/resources/MNI_roi/left/15.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d5e6a2ef7d7f715b2214d8bb6f7d83371abbfb0c Binary files /dev/null and b/resources/MNI_roi/left/15.nii.gz differ diff --git a/resources/MNI_roi/left/16.nii.gz b/resources/MNI_roi/left/16.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a394fe81283ab57b9e4f8fa48ed5870ead5dba67 Binary files /dev/null and b/resources/MNI_roi/left/16.nii.gz differ diff --git a/resources/MNI_roi/left/17.nii.gz b/resources/MNI_roi/left/17.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..adcd5a15263357c7290fdf5313caf00581acb865 Binary files /dev/null and b/resources/MNI_roi/left/17.nii.gz differ diff --git a/resources/MNI_roi/left/18.nii.gz b/resources/MNI_roi/left/18.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ae5d508c7c28ddd0ad78347f65bcba6692c4de80 Binary files /dev/null and b/resources/MNI_roi/left/18.nii.gz differ diff --git a/resources/MNI_roi/left/19.nii.gz b/resources/MNI_roi/left/19.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..34f6e89b9b1f1e46c5fecdadea8cb1482867cac6 Binary files /dev/null and b/resources/MNI_roi/left/19.nii.gz differ diff --git a/resources/MNI_roi/left/2.nii.gz b/resources/MNI_roi/left/2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..11778cb527b23ceb4572af4fb2bd132ceca676ce Binary files /dev/null and b/resources/MNI_roi/left/2.nii.gz differ diff --git a/resources/MNI_roi/left/20.nii.gz b/resources/MNI_roi/left/20.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..871156026d16f6a002726a673dfd43edfed977e7 Binary files /dev/null and b/resources/MNI_roi/left/20.nii.gz differ diff --git a/resources/MNI_roi/left/21.nii.gz b/resources/MNI_roi/left/21.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..3f448e54eee6eec471bcf7fa51901c0590a8eb63 Binary files /dev/null and b/resources/MNI_roi/left/21.nii.gz differ diff --git a/resources/MNI_roi/left/22.nii.gz b/resources/MNI_roi/left/22.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1a7174da9e44ecae5a2adc55d4ec6b557648b545 Binary files /dev/null and b/resources/MNI_roi/left/22.nii.gz differ diff --git a/resources/MNI_roi/left/23.nii.gz b/resources/MNI_roi/left/23.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..f1c221ea29bd8732404379848c6fc5b42e6974a4 Binary files /dev/null and b/resources/MNI_roi/left/23.nii.gz differ diff --git a/resources/MNI_roi/left/24.nii.gz b/resources/MNI_roi/left/24.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1473409c61b12fb77b259553f92a92b89a54ec0d Binary files /dev/null and b/resources/MNI_roi/left/24.nii.gz differ diff --git a/resources/MNI_roi/left/25.nii.gz b/resources/MNI_roi/left/25.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..6032d2bbfdec38d0c4293523dcbf59900f7f5b2f Binary files /dev/null and b/resources/MNI_roi/left/25.nii.gz differ diff --git a/resources/MNI_roi/left/26.nii.gz b/resources/MNI_roi/left/26.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..16dc426b583940803459c5e3948e3becf8dc7604 Binary files /dev/null and b/resources/MNI_roi/left/26.nii.gz differ diff --git a/resources/MNI_roi/left/27.nii.gz b/resources/MNI_roi/left/27.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..173622c27cd313e45da3f6bac12689a35b7ab933 Binary files /dev/null and b/resources/MNI_roi/left/27.nii.gz differ diff --git a/resources/MNI_roi/left/28.nii.gz b/resources/MNI_roi/left/28.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..16e56b256345f904fa2bc36ed1043bb1d912ec66 Binary files /dev/null and b/resources/MNI_roi/left/28.nii.gz differ diff --git a/resources/MNI_roi/left/29.nii.gz b/resources/MNI_roi/left/29.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..eac0e2a53106897e4351352472850b46b261a05d Binary files /dev/null and b/resources/MNI_roi/left/29.nii.gz differ diff --git a/resources/MNI_roi/left/3.nii.gz b/resources/MNI_roi/left/3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5cef04294a2934de62a2e4cc25c4e83b91cb49e4 Binary files /dev/null and b/resources/MNI_roi/left/3.nii.gz differ diff --git a/resources/MNI_roi/left/30.nii.gz b/resources/MNI_roi/left/30.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5b485cc18139390263f2565f1ee54ae94aca8b4f Binary files /dev/null and b/resources/MNI_roi/left/30.nii.gz differ diff --git a/resources/MNI_roi/left/31.nii.gz b/resources/MNI_roi/left/31.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a1902d792ee91faac803899861004ebdc26c8145 Binary files /dev/null and b/resources/MNI_roi/left/31.nii.gz differ diff --git a/resources/MNI_roi/left/32.nii.gz b/resources/MNI_roi/left/32.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d65b7069ee7d59c70550cb2d64af09a74bb3c212 Binary files /dev/null and b/resources/MNI_roi/left/32.nii.gz differ diff --git a/resources/MNI_roi/left/33.nii.gz b/resources/MNI_roi/left/33.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..646a6a805e8395100343d46327e7b8855d66f1f3 Binary files /dev/null and b/resources/MNI_roi/left/33.nii.gz differ diff --git a/resources/MNI_roi/left/34.nii.gz b/resources/MNI_roi/left/34.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a269c3898951ec7df61ffefc9b104abe004029a5 Binary files /dev/null and b/resources/MNI_roi/left/34.nii.gz differ diff --git a/resources/MNI_roi/left/35.nii.gz b/resources/MNI_roi/left/35.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4ba2a0b217e7489a77172c6a3e0751b14284af98 Binary files /dev/null and b/resources/MNI_roi/left/35.nii.gz differ diff --git a/resources/MNI_roi/left/36.nii.gz b/resources/MNI_roi/left/36.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2d308342eb0f80515531583edd33c75dbc392972 Binary files /dev/null and b/resources/MNI_roi/left/36.nii.gz differ diff --git a/resources/MNI_roi/left/37.nii.gz b/resources/MNI_roi/left/37.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..05aeffb0b5c4f04d1e12fbbd7178fdaed216e703 Binary files /dev/null and b/resources/MNI_roi/left/37.nii.gz differ diff --git a/resources/MNI_roi/left/38.nii.gz b/resources/MNI_roi/left/38.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..72a01f45623d92d405aca8571e15a5bd180c930a Binary files /dev/null and b/resources/MNI_roi/left/38.nii.gz differ diff --git a/resources/MNI_roi/left/39.nii.gz b/resources/MNI_roi/left/39.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..204d2157733d0741a47487e0618b7b319ce96402 Binary files /dev/null and b/resources/MNI_roi/left/39.nii.gz differ diff --git a/resources/MNI_roi/left/4.nii.gz b/resources/MNI_roi/left/4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..87ab90c235694929fe01aa0aefd2edc1ead42dcc Binary files /dev/null and b/resources/MNI_roi/left/4.nii.gz differ diff --git a/resources/MNI_roi/left/40.nii.gz b/resources/MNI_roi/left/40.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5ff8b1c9ca31d9d01e514fc1d9b9f4b88c5f7d8a Binary files /dev/null and b/resources/MNI_roi/left/40.nii.gz differ diff --git a/resources/MNI_roi/left/41.nii.gz b/resources/MNI_roi/left/41.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..cec7ffcc3c578a1467d48be3e34ba7ac07d92dd4 Binary files /dev/null and b/resources/MNI_roi/left/41.nii.gz differ diff --git a/resources/MNI_roi/left/42.nii.gz b/resources/MNI_roi/left/42.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..04230ee70f70e58cb5e81722f85aea6fd68b9719 Binary files /dev/null and b/resources/MNI_roi/left/42.nii.gz differ diff --git a/resources/MNI_roi/left/43.nii.gz b/resources/MNI_roi/left/43.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..41d0f6df05bbf644f94740244fba29ac23f9df25 Binary files /dev/null and b/resources/MNI_roi/left/43.nii.gz differ diff --git a/resources/MNI_roi/left/44.nii.gz b/resources/MNI_roi/left/44.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..9a31302c0476d2217d0adb457b31d7ed5cf844ba Binary files /dev/null and b/resources/MNI_roi/left/44.nii.gz differ diff --git a/resources/MNI_roi/left/45.nii.gz b/resources/MNI_roi/left/45.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..57abb0dc2c7dbd7a6da4c9b7c594e3f7df4a6bba Binary files /dev/null and b/resources/MNI_roi/left/45.nii.gz differ diff --git a/resources/MNI_roi/left/46.nii.gz b/resources/MNI_roi/left/46.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7d40385d508144ae14d3d515994afe6aedb7d1d5 Binary files /dev/null and b/resources/MNI_roi/left/46.nii.gz differ diff --git a/resources/MNI_roi/left/47.nii.gz b/resources/MNI_roi/left/47.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..af6fa1c1f3645f4979e6e7097458980158fc008a Binary files /dev/null and b/resources/MNI_roi/left/47.nii.gz differ diff --git a/resources/MNI_roi/left/48.nii.gz b/resources/MNI_roi/left/48.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ea79ac0bc0c96564737c0c5c05af0be1469b3078 Binary files /dev/null and b/resources/MNI_roi/left/48.nii.gz differ diff --git a/resources/MNI_roi/left/49.nii.gz b/resources/MNI_roi/left/49.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..c866b9510d289f17d4db8f49df85f8fa171b4b54 Binary files /dev/null and b/resources/MNI_roi/left/49.nii.gz differ diff --git a/resources/MNI_roi/left/5.nii.gz b/resources/MNI_roi/left/5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..fce546bd9a493ea0429ab7d9a14e6c56400c271f Binary files /dev/null and b/resources/MNI_roi/left/5.nii.gz differ diff --git a/resources/MNI_roi/left/50.nii.gz b/resources/MNI_roi/left/50.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..c46449ad3f8666f059fddae86da85da7a397af17 Binary files /dev/null and b/resources/MNI_roi/left/50.nii.gz differ diff --git a/resources/MNI_roi/left/51.nii.gz b/resources/MNI_roi/left/51.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..bcb6db0565324908031712e4e5b0f23f41f9b89d Binary files /dev/null and b/resources/MNI_roi/left/51.nii.gz differ diff --git a/resources/MNI_roi/left/52.nii.gz b/resources/MNI_roi/left/52.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4003aa684989b063a2289815a29ca246f57d2e22 Binary files /dev/null and b/resources/MNI_roi/left/52.nii.gz differ diff --git a/resources/MNI_roi/left/53.nii.gz b/resources/MNI_roi/left/53.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..adb66d91f258f1d56a71d5d64efdca5a4ae1d239 Binary files /dev/null and b/resources/MNI_roi/left/53.nii.gz differ diff --git a/resources/MNI_roi/left/54.nii.gz b/resources/MNI_roi/left/54.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e1fc957e732bda9ad579f415551c013605aea87e Binary files /dev/null and b/resources/MNI_roi/left/54.nii.gz differ diff --git a/resources/MNI_roi/left/55.nii.gz b/resources/MNI_roi/left/55.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..715a47c785964fdb091d040114126d2c9054141f Binary files /dev/null and b/resources/MNI_roi/left/55.nii.gz differ diff --git a/resources/MNI_roi/left/56.nii.gz b/resources/MNI_roi/left/56.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..9302096d065d62ec72ff5728b79121c7e55895d2 Binary files /dev/null and b/resources/MNI_roi/left/56.nii.gz differ diff --git a/resources/MNI_roi/left/57.nii.gz b/resources/MNI_roi/left/57.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..93393796a6bde5849da0e91c7b8bd535097741c7 Binary files /dev/null and b/resources/MNI_roi/left/57.nii.gz differ diff --git a/resources/MNI_roi/left/58.nii.gz b/resources/MNI_roi/left/58.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4a23941e9bc8d7a389637a36969e1f3e33d3aea6 Binary files /dev/null and b/resources/MNI_roi/left/58.nii.gz differ diff --git a/resources/MNI_roi/left/59.nii.gz b/resources/MNI_roi/left/59.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..bcb73cd5dafc69c400ddb1613b435759052e7dc5 Binary files /dev/null and b/resources/MNI_roi/left/59.nii.gz differ diff --git a/resources/MNI_roi/left/6.nii.gz b/resources/MNI_roi/left/6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..70f37f862d8990bfdf220c4b27f44ca45a93d5c2 Binary files /dev/null and b/resources/MNI_roi/left/6.nii.gz differ diff --git a/resources/MNI_roi/left/60.nii.gz b/resources/MNI_roi/left/60.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4e6dcf5e118c6d58a0d8821a831407113a49b39c Binary files /dev/null and b/resources/MNI_roi/left/60.nii.gz differ diff --git a/resources/MNI_roi/left/61.nii.gz b/resources/MNI_roi/left/61.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..98a8e322542ebdd26edb671a7f6faf96287e2513 Binary files /dev/null and b/resources/MNI_roi/left/61.nii.gz differ diff --git a/resources/MNI_roi/left/62.nii.gz b/resources/MNI_roi/left/62.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7e688914cff54759cfa1428c2a514a4fe8937e4b Binary files /dev/null and b/resources/MNI_roi/left/62.nii.gz differ diff --git a/resources/MNI_roi/left/63.nii.gz b/resources/MNI_roi/left/63.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..94202d3058223d39672908cda95d2ee318d84558 Binary files /dev/null and b/resources/MNI_roi/left/63.nii.gz differ diff --git a/resources/MNI_roi/left/64.nii.gz b/resources/MNI_roi/left/64.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2612bdb7c0de9c049417cd4c67ead00903f35765 Binary files /dev/null and b/resources/MNI_roi/left/64.nii.gz differ diff --git a/resources/MNI_roi/left/65.nii.gz b/resources/MNI_roi/left/65.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a9b84b481a4ad54ddea47d81772ae0587c2a1c34 Binary files /dev/null and b/resources/MNI_roi/left/65.nii.gz differ diff --git a/resources/MNI_roi/left/66.nii.gz b/resources/MNI_roi/left/66.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..eef9d7d3fd91f150ffb9ceb1b5c222f9baef6155 Binary files /dev/null and b/resources/MNI_roi/left/66.nii.gz differ diff --git a/resources/MNI_roi/left/67.nii.gz b/resources/MNI_roi/left/67.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..76efecae73f046ee16a47e9dd0631f1b82fd9138 Binary files /dev/null and b/resources/MNI_roi/left/67.nii.gz differ diff --git a/resources/MNI_roi/left/68.nii.gz b/resources/MNI_roi/left/68.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4233b29914848bfab3476de0200f9f3390e7f18a Binary files /dev/null and b/resources/MNI_roi/left/68.nii.gz differ diff --git a/resources/MNI_roi/left/69.nii.gz b/resources/MNI_roi/left/69.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d298cc9e85868fc00e5766d7976b2ec3cd30047c Binary files /dev/null and b/resources/MNI_roi/left/69.nii.gz differ diff --git a/resources/MNI_roi/left/7.nii.gz b/resources/MNI_roi/left/7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..cdb3c821be07bcd2a23d9dd6a3e7bb3f7231052a Binary files /dev/null and b/resources/MNI_roi/left/7.nii.gz differ diff --git a/resources/MNI_roi/left/70.nii.gz b/resources/MNI_roi/left/70.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..84d4a6c626130e1ebe5b3e75ac2b4d93d96de1e4 Binary files /dev/null and b/resources/MNI_roi/left/70.nii.gz differ diff --git a/resources/MNI_roi/left/71.nii.gz b/resources/MNI_roi/left/71.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e58ed7b183eed5fac35d7481ae93bece40980286 Binary files /dev/null and b/resources/MNI_roi/left/71.nii.gz differ diff --git a/resources/MNI_roi/left/72.nii.gz b/resources/MNI_roi/left/72.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0bf7bd190845efb440ca5a5c7e81b7f22edca25c Binary files /dev/null and b/resources/MNI_roi/left/72.nii.gz differ diff --git a/resources/MNI_roi/left/73.nii.gz b/resources/MNI_roi/left/73.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d28fa1c298b742dbd3622098b3925a6e1a221004 Binary files /dev/null and b/resources/MNI_roi/left/73.nii.gz differ diff --git a/resources/MNI_roi/left/74.nii.gz b/resources/MNI_roi/left/74.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ca416ecbf660bcf97a4497eabae7e38e80128282 Binary files /dev/null and b/resources/MNI_roi/left/74.nii.gz differ diff --git a/resources/MNI_roi/left/75.nii.gz b/resources/MNI_roi/left/75.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..45027bdd4b9a5bff75bcb3d134914010de09794a Binary files /dev/null and b/resources/MNI_roi/left/75.nii.gz differ diff --git a/resources/MNI_roi/left/8.nii.gz b/resources/MNI_roi/left/8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5add8894a1777d57fb7f29913439c9487d3635fb Binary files /dev/null and b/resources/MNI_roi/left/8.nii.gz differ diff --git a/resources/MNI_roi/left/9.nii.gz b/resources/MNI_roi/left/9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4288ce91b549660215841b56b4857759844f61bd Binary files /dev/null and b/resources/MNI_roi/left/9.nii.gz differ diff --git a/resources/MNI_roi/left/SCPCT.nii.gz b/resources/MNI_roi/left/SCPCT.nii.gz new file mode 100755 index 0000000000000000000000000000000000000000..9297088c127812c6ae2def6c3f761a49d7994694 Binary files /dev/null and b/resources/MNI_roi/left/SCPCT.nii.gz differ diff --git a/resources/MNI_roi/left/ar_mask1.nii.gz b/resources/MNI_roi/left/ar_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..c5729c9e08e3da55db006a2f7fb8e33bbdd1e001 Binary files /dev/null and b/resources/MNI_roi/left/ar_mask1.nii.gz differ diff --git a/resources/MNI_roi/left/ar_mask2.nii.gz b/resources/MNI_roi/left/ar_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2d0e31c61f3478e2bb6093a684fbca662f16020b Binary files /dev/null and b/resources/MNI_roi/left/ar_mask2.nii.gz differ diff --git a/resources/MNI_roi/left/ar_mask3.nii.gz b/resources/MNI_roi/left/ar_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..af23994ede89f7156d8a465c1f8e947078116890 Binary files /dev/null and b/resources/MNI_roi/left/ar_mask3.nii.gz differ diff --git a/resources/MNI_roi/left/ar_mask4.nii.gz b/resources/MNI_roi/left/ar_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..6858efd31405153c62a43c1cea21621296907940 Binary files /dev/null and b/resources/MNI_roi/left/ar_mask4.nii.gz differ diff --git a/resources/MNI_roi/left/ar_mask5.nii.gz b/resources/MNI_roi/left/ar_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..05b179b55c32a16843e7c4ad402b63c45d721511 Binary files /dev/null and b/resources/MNI_roi/left/ar_mask5.nii.gz differ diff --git a/resources/MNI_roi/left/ar_mask6.nii.gz b/resources/MNI_roi/left/ar_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..980c65c23feabd1a01ff70c198e7603721267c75 Binary files /dev/null and b/resources/MNI_roi/left/ar_mask6.nii.gz differ diff --git a/resources/MNI_roi/left/ar_mask7.nii.gz b/resources/MNI_roi/left/ar_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5ad72f5bc59182e9a072f51f2c2aef93201475a3 Binary files /dev/null and b/resources/MNI_roi/left/ar_mask7.nii.gz differ diff --git a/resources/MNI_roi/left/ar_mask8.nii.gz b/resources/MNI_roi/left/ar_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..007b78642d45f494f3e2762aaef0bb40436b5e1c Binary files /dev/null and b/resources/MNI_roi/left/ar_mask8.nii.gz differ diff --git a/resources/MNI_roi/left/atr_mask1.nii.gz b/resources/MNI_roi/left/atr_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..38a42ca743f85b2fdd7b16cb4ade2fb0c6851577 Binary files /dev/null and b/resources/MNI_roi/left/atr_mask1.nii.gz differ diff --git a/resources/MNI_roi/left/atr_mask2.nii.gz b/resources/MNI_roi/left/atr_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..321ba2ea743599c22ea2a6a1f622b2d48d95653b Binary files /dev/null and b/resources/MNI_roi/left/atr_mask2.nii.gz differ diff --git a/resources/MNI_roi/left/atr_mask3.nii.gz b/resources/MNI_roi/left/atr_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..344639ae6082f52f1b3af2c69a3069b7c13dceef Binary files /dev/null and b/resources/MNI_roi/left/atr_mask3.nii.gz differ diff --git a/resources/MNI_roi/left/atr_mask4.nii.gz b/resources/MNI_roi/left/atr_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0f2c8ee8035930344814e83bc3465f54579b21f7 Binary files /dev/null and b/resources/MNI_roi/left/atr_mask4.nii.gz differ diff --git a/resources/MNI_roi/left/atr_mask5.nii.gz b/resources/MNI_roi/left/atr_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a5d95272949eccad5af09047c96cea41f5b9e133 Binary files /dev/null and b/resources/MNI_roi/left/atr_mask5.nii.gz differ diff --git a/resources/MNI_roi/left/atr_mask6.nii.gz b/resources/MNI_roi/left/atr_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2d562ce148eb913c4c908f146bbe01582a752f6b Binary files /dev/null and b/resources/MNI_roi/left/atr_mask6.nii.gz differ diff --git a/resources/MNI_roi/left/atr_mask7.nii.gz b/resources/MNI_roi/left/atr_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..c39d716d28555a01f22be6814ce2ba6b897b7ba6 Binary files /dev/null and b/resources/MNI_roi/left/atr_mask7.nii.gz differ diff --git a/resources/MNI_roi/left/atr_mask8.nii.gz b/resources/MNI_roi/left/atr_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..98c6e234aa5291f4d1a43d68fb9dc80c0346ff89 Binary files /dev/null and b/resources/MNI_roi/left/atr_mask8.nii.gz differ diff --git a/resources/MNI_roi/left/cerebellum.nii.gz b/resources/MNI_roi/left/cerebellum.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2a1b3a33faec636880aba2e0880508a41ae6ce76 Binary files /dev/null and b/resources/MNI_roi/left/cerebellum.nii.gz differ diff --git a/resources/MNI_roi/left/cerebellum_target.nii.gz b/resources/MNI_roi/left/cerebellum_target.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..da34e86a372fe650dfe9fdb6c98c817b6c62c520 Binary files /dev/null and b/resources/MNI_roi/left/cerebellum_target.nii.gz differ diff --git a/resources/MNI_roi/left/cortex.nii.gz b/resources/MNI_roi/left/cortex.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e687745377926b3527ea5dd9ceb2c56e194e826f Binary files /dev/null and b/resources/MNI_roi/left/cortex.nii.gz differ diff --git a/resources/MNI_roi/left/exclusion.nii.gz b/resources/MNI_roi/left/exclusion.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7a9fef4cc74dbf8fb97a5f6476b454068a01a694 Binary files /dev/null and b/resources/MNI_roi/left/exclusion.nii.gz differ diff --git a/resources/MNI_roi/left/fx_mask1.nii.gz b/resources/MNI_roi/left/fx_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e7794f9d2d1a3f842041864a87914e3e79dde572 Binary files /dev/null and b/resources/MNI_roi/left/fx_mask1.nii.gz differ diff --git a/resources/MNI_roi/left/fx_mask10.nii.gz b/resources/MNI_roi/left/fx_mask10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b0841bf52df652c9528f43463a39c8366b8248eb Binary files /dev/null and b/resources/MNI_roi/left/fx_mask10.nii.gz differ diff --git a/resources/MNI_roi/left/fx_mask2.nii.gz b/resources/MNI_roi/left/fx_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2d2a48efec33d012a84a0cd50729e54d3d2d656e Binary files /dev/null and b/resources/MNI_roi/left/fx_mask2.nii.gz differ diff --git a/resources/MNI_roi/left/fx_mask3.nii.gz b/resources/MNI_roi/left/fx_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..bd3f8bdbbb3f287f35a6e4ce6104d04b8facbae5 Binary files /dev/null and b/resources/MNI_roi/left/fx_mask3.nii.gz differ diff --git a/resources/MNI_roi/left/fx_mask4.nii.gz b/resources/MNI_roi/left/fx_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..9817abce6cc70321718da13b428b012583c69b18 Binary files /dev/null and b/resources/MNI_roi/left/fx_mask4.nii.gz differ diff --git a/resources/MNI_roi/left/fx_mask5.nii.gz b/resources/MNI_roi/left/fx_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b2cc7a585872e6176e9458891b2c1fb706317e40 Binary files /dev/null and b/resources/MNI_roi/left/fx_mask5.nii.gz differ diff --git a/resources/MNI_roi/left/fx_mask6.nii.gz b/resources/MNI_roi/left/fx_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..dd2f58593c57fe4dde178af4f6edba0f053e2ddc Binary files /dev/null and b/resources/MNI_roi/left/fx_mask6.nii.gz differ diff --git a/resources/MNI_roi/left/fx_mask7.nii.gz b/resources/MNI_roi/left/fx_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..222ba1484a776106cc214cd4d0561509c2c272d8 Binary files /dev/null and b/resources/MNI_roi/left/fx_mask7.nii.gz differ diff --git a/resources/MNI_roi/left/fx_mask8.nii.gz b/resources/MNI_roi/left/fx_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4db66f7e559f9ed95a719be0dec05d0195ef3b4e Binary files /dev/null and b/resources/MNI_roi/left/fx_mask8.nii.gz differ diff --git a/resources/MNI_roi/left/fx_mask9.nii.gz b/resources/MNI_roi/left/fx_mask9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1dadaa639e83a5c4dbf87abe4bbf4d72440e20ad Binary files /dev/null and b/resources/MNI_roi/left/fx_mask9.nii.gz differ diff --git a/resources/MNI_roi/left/or_mask1.nii.gz b/resources/MNI_roi/left/or_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1bac2acab52c837da9755133e4793618f1f9655e Binary files /dev/null and b/resources/MNI_roi/left/or_mask1.nii.gz differ diff --git a/resources/MNI_roi/left/or_mask10.nii.gz b/resources/MNI_roi/left/or_mask10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5f99e8bc18e1905103e9906464c984ae52b21df2 Binary files /dev/null and b/resources/MNI_roi/left/or_mask10.nii.gz differ diff --git a/resources/MNI_roi/left/or_mask2.nii.gz b/resources/MNI_roi/left/or_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e907bc76f245101fa4a6fa28f33a15692e46c678 Binary files /dev/null and b/resources/MNI_roi/left/or_mask2.nii.gz differ diff --git a/resources/MNI_roi/left/or_mask3.nii.gz b/resources/MNI_roi/left/or_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7a5cd395a4203ccfdf78dac4312fb14f363c4272 Binary files /dev/null and b/resources/MNI_roi/left/or_mask3.nii.gz differ diff --git a/resources/MNI_roi/left/or_mask4.nii.gz b/resources/MNI_roi/left/or_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..29fc3beed218c4311f9b7b36e3aa97052bcf7d40 Binary files /dev/null and b/resources/MNI_roi/left/or_mask4.nii.gz differ diff --git a/resources/MNI_roi/left/or_mask5.nii.gz b/resources/MNI_roi/left/or_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..28ea02904ff615be24202c8e718363283cf23ce7 Binary files /dev/null and b/resources/MNI_roi/left/or_mask5.nii.gz differ diff --git a/resources/MNI_roi/left/or_mask6.nii.gz b/resources/MNI_roi/left/or_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7075951371777c46fbe27e133a3f53586f890dff Binary files /dev/null and b/resources/MNI_roi/left/or_mask6.nii.gz differ diff --git a/resources/MNI_roi/left/or_mask7.nii.gz b/resources/MNI_roi/left/or_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1b05220d23fa4a73e1dcb601e8787bf2cdbf006c Binary files /dev/null and b/resources/MNI_roi/left/or_mask7.nii.gz differ diff --git a/resources/MNI_roi/left/or_mask8.nii.gz b/resources/MNI_roi/left/or_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf4a204cd11bdd4bd513cfabc742e1e6eed88329 Binary files /dev/null and b/resources/MNI_roi/left/or_mask8.nii.gz differ diff --git a/resources/MNI_roi/left/or_mask9.nii.gz b/resources/MNI_roi/left/or_mask9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e8deff404045a097cdde9e7680c5d093fb479750 Binary files /dev/null and b/resources/MNI_roi/left/or_mask9.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask1.nii.gz b/resources/MNI_roi/left/scpct_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..841458d7a12990d07bf93f5edca558676bf9a2d0 Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask1.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask10.nii.gz b/resources/MNI_roi/left/scpct_mask10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8526f1841d8db53576849e63db574d44ede0416d Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask10.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask11.nii.gz b/resources/MNI_roi/left/scpct_mask11.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..9100242270c959714ca425e75341f68d83fd0ea4 Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask11.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask12.nii.gz b/resources/MNI_roi/left/scpct_mask12.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ed1873a37eb6db87817c3e9a85ae10442eb8b49a Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask12.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask13.nii.gz b/resources/MNI_roi/left/scpct_mask13.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..66f478392c20dfe689d6fe26261c3cb04defdd0b Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask13.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask14.nii.gz b/resources/MNI_roi/left/scpct_mask14.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..bef7a4850b9a7d54d2fa701c2e5bb0b17ea2cc11 Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask14.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask15.nii.gz b/resources/MNI_roi/left/scpct_mask15.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1862f607c6de3d3657fcf0d9efa60a99595b0bc5 Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask15.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask2.nii.gz b/resources/MNI_roi/left/scpct_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2347d6a880772849e5dffa5f06c472c99e1911e0 Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask2.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask3.nii.gz b/resources/MNI_roi/left/scpct_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e88ddc7f4a762655d583264bcf478954c137c261 Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask3.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask4.nii.gz b/resources/MNI_roi/left/scpct_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8cc85edbfffd072a849a5bd88ce4f03a5bf56f5d Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask4.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask5.nii.gz b/resources/MNI_roi/left/scpct_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..be691d2f719502c862d2a416e12a10f8dac02928 Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask5.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask6.nii.gz b/resources/MNI_roi/left/scpct_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e8b7747eeda7f2b8021a80119fead10d77843de2 Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask6.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask7.nii.gz b/resources/MNI_roi/left/scpct_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e02018cb63464a7b80d7c21d308c12f47f94a5c9 Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask7.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask8.nii.gz b/resources/MNI_roi/left/scpct_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5981cd3c727e5075780f367223fe99bcca2645d4 Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask8.nii.gz differ diff --git a/resources/MNI_roi/left/scpct_mask9.nii.gz b/resources/MNI_roi/left/scpct_mask9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..bff1765c02df44ffb705f0e9ea81f0ac200224ad Binary files /dev/null and b/resources/MNI_roi/left/scpct_mask9.nii.gz differ diff --git a/resources/MNI_roi/left/str_mask1.nii.gz b/resources/MNI_roi/left/str_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..6c805bb5ee09ff98e2821e80c8f2992a310bb119 Binary files /dev/null and b/resources/MNI_roi/left/str_mask1.nii.gz differ diff --git a/resources/MNI_roi/left/str_mask10.nii.gz b/resources/MNI_roi/left/str_mask10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d755aca03f91409c017495f69efb208e3ee00067 Binary files /dev/null and b/resources/MNI_roi/left/str_mask10.nii.gz differ diff --git a/resources/MNI_roi/left/str_mask2.nii.gz b/resources/MNI_roi/left/str_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4a880499fd3a6f1ad31101bd0378ad0d2bdda688 Binary files /dev/null and b/resources/MNI_roi/left/str_mask2.nii.gz differ diff --git a/resources/MNI_roi/left/str_mask3.nii.gz b/resources/MNI_roi/left/str_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a3cd3402d3184611e75a07bd55fef5fe39f3613a Binary files /dev/null and b/resources/MNI_roi/left/str_mask3.nii.gz differ diff --git a/resources/MNI_roi/left/str_mask4.nii.gz b/resources/MNI_roi/left/str_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..9901a96102b7aec9301616e68e54f41ba1bc52ed Binary files /dev/null and b/resources/MNI_roi/left/str_mask4.nii.gz differ diff --git a/resources/MNI_roi/left/str_mask5.nii.gz b/resources/MNI_roi/left/str_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..525f98141e80e2193a478a855ca3e61ea9894c11 Binary files /dev/null and b/resources/MNI_roi/left/str_mask5.nii.gz differ diff --git a/resources/MNI_roi/left/str_mask6.nii.gz b/resources/MNI_roi/left/str_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a9f3e7ac7ba263a005fa375fb982b59e53775c0f Binary files /dev/null and b/resources/MNI_roi/left/str_mask6.nii.gz differ diff --git a/resources/MNI_roi/left/str_mask7.nii.gz b/resources/MNI_roi/left/str_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..649dd60279c08dc11e282bc071364aaa4ec57543 Binary files /dev/null and b/resources/MNI_roi/left/str_mask7.nii.gz differ diff --git a/resources/MNI_roi/left/str_mask8.nii.gz b/resources/MNI_roi/left/str_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1a2117ed3211a28dc03b7f4b69ffad181f0f31a6 Binary files /dev/null and b/resources/MNI_roi/left/str_mask8.nii.gz differ diff --git a/resources/MNI_roi/left/str_mask9.nii.gz b/resources/MNI_roi/left/str_mask9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..fd4726578fe7b24669bf4c3fc7997adf17b54160 Binary files /dev/null and b/resources/MNI_roi/left/str_mask9.nii.gz differ diff --git a/resources/MNI_roi/left/tha.nii.gz b/resources/MNI_roi/left/tha.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5039420c0a7562de24ff15098fab3d3bbe83d5ac Binary files /dev/null and b/resources/MNI_roi/left/tha.nii.gz differ diff --git a/resources/MNI_roi/left/to_postcentral_mask1.nii.gz b/resources/MNI_roi/left/to_postcentral_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5b29853838f37c54078ccff10bc59424cc4aada9 Binary files /dev/null and b/resources/MNI_roi/left/to_postcentral_mask1.nii.gz differ diff --git a/resources/MNI_roi/left/to_postcentral_mask10.nii.gz b/resources/MNI_roi/left/to_postcentral_mask10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..60abd64c4873a393a02305010fd2e779e3ff0299 Binary files /dev/null and b/resources/MNI_roi/left/to_postcentral_mask10.nii.gz differ diff --git a/resources/MNI_roi/left/to_postcentral_mask11.nii.gz b/resources/MNI_roi/left/to_postcentral_mask11.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..9e941940f8b71f1e0f1d54713e958afeb83b314a Binary files /dev/null and b/resources/MNI_roi/left/to_postcentral_mask11.nii.gz differ diff --git a/resources/MNI_roi/left/to_postcentral_mask12.nii.gz b/resources/MNI_roi/left/to_postcentral_mask12.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..67d278bb4883993beea202332f82f7ba9c8a324c Binary files /dev/null and b/resources/MNI_roi/left/to_postcentral_mask12.nii.gz differ diff --git a/resources/MNI_roi/left/to_postcentral_mask2.nii.gz b/resources/MNI_roi/left/to_postcentral_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..6d6000860f5b1a344c21959b144b6df893fd3de8 Binary files /dev/null and b/resources/MNI_roi/left/to_postcentral_mask2.nii.gz differ diff --git a/resources/MNI_roi/left/to_postcentral_mask3.nii.gz b/resources/MNI_roi/left/to_postcentral_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0175d8198d35c283af1d938ed6bc7f0bc5d779a0 Binary files /dev/null and b/resources/MNI_roi/left/to_postcentral_mask3.nii.gz differ diff --git a/resources/MNI_roi/left/to_postcentral_mask4.nii.gz b/resources/MNI_roi/left/to_postcentral_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2bb27fb7bb9aca9a4cddfe51e4fbf40538540e0f Binary files /dev/null and b/resources/MNI_roi/left/to_postcentral_mask4.nii.gz differ diff --git a/resources/MNI_roi/left/to_postcentral_mask5.nii.gz b/resources/MNI_roi/left/to_postcentral_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..3b02eda9df49a2b701aa06f405bfc56b6fb98fcc Binary files /dev/null and b/resources/MNI_roi/left/to_postcentral_mask5.nii.gz differ diff --git a/resources/MNI_roi/left/to_postcentral_mask6.nii.gz b/resources/MNI_roi/left/to_postcentral_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..6b4b32ff6c0a6d44cc086e83de5921f1a8ec1fbe Binary files /dev/null and b/resources/MNI_roi/left/to_postcentral_mask6.nii.gz differ diff --git a/resources/MNI_roi/left/to_postcentral_mask7.nii.gz b/resources/MNI_roi/left/to_postcentral_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d8dcf1e7a908482532eaab3d7e20890630610e96 Binary files /dev/null and b/resources/MNI_roi/left/to_postcentral_mask7.nii.gz differ diff --git a/resources/MNI_roi/left/to_postcentral_mask8.nii.gz b/resources/MNI_roi/left/to_postcentral_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..944b6b6c30c1d78c10b87204e10a2f26b133cd5e Binary files /dev/null and b/resources/MNI_roi/left/to_postcentral_mask8.nii.gz differ diff --git a/resources/MNI_roi/left/to_postcentral_mask9.nii.gz b/resources/MNI_roi/left/to_postcentral_mask9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4fa145abf6253dfa327094fdce0a22d907e58561 Binary files /dev/null and b/resources/MNI_roi/left/to_postcentral_mask9.nii.gz differ diff --git a/resources/MNI_roi/left/to_precentral_mask1.nii.gz b/resources/MNI_roi/left/to_precentral_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7cef5f8eca727023fc4bd9d5fab5e894eedf2130 Binary files /dev/null and b/resources/MNI_roi/left/to_precentral_mask1.nii.gz differ diff --git a/resources/MNI_roi/left/to_precentral_mask10.nii.gz b/resources/MNI_roi/left/to_precentral_mask10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..34a53633f02f8b27fd6a81f5de1b23fa1d96caad Binary files /dev/null and b/resources/MNI_roi/left/to_precentral_mask10.nii.gz differ diff --git a/resources/MNI_roi/left/to_precentral_mask11.nii.gz b/resources/MNI_roi/left/to_precentral_mask11.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..516d466d268baea2ed88e380a98f5aee7c8b494d Binary files /dev/null and b/resources/MNI_roi/left/to_precentral_mask11.nii.gz differ diff --git a/resources/MNI_roi/left/to_precentral_mask12.nii.gz b/resources/MNI_roi/left/to_precentral_mask12.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8fdc3d3c63789cbe1938954385bd1672b2e4f55f Binary files /dev/null and b/resources/MNI_roi/left/to_precentral_mask12.nii.gz differ diff --git a/resources/MNI_roi/left/to_precentral_mask2.nii.gz b/resources/MNI_roi/left/to_precentral_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..57652e74177b871feb7a4f6c94ce2d4950f0d8a5 Binary files /dev/null and b/resources/MNI_roi/left/to_precentral_mask2.nii.gz differ diff --git a/resources/MNI_roi/left/to_precentral_mask3.nii.gz b/resources/MNI_roi/left/to_precentral_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..09edac70835dd097e22297a89ceb62bd68ef615f Binary files /dev/null and b/resources/MNI_roi/left/to_precentral_mask3.nii.gz differ diff --git a/resources/MNI_roi/left/to_precentral_mask4.nii.gz b/resources/MNI_roi/left/to_precentral_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d8ecbad3f36d2bf2bed8d5d2b4a8eafbcdf5ed73 Binary files /dev/null and b/resources/MNI_roi/left/to_precentral_mask4.nii.gz differ diff --git a/resources/MNI_roi/left/to_precentral_mask5.nii.gz b/resources/MNI_roi/left/to_precentral_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..afd32192b7ffbc22fdf52d62a955ec1a7ecf0ceb Binary files /dev/null and b/resources/MNI_roi/left/to_precentral_mask5.nii.gz differ diff --git a/resources/MNI_roi/left/to_precentral_mask6.nii.gz b/resources/MNI_roi/left/to_precentral_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..10f304cd6705892ada1e0acbfcabe4cbf80601fc Binary files /dev/null and b/resources/MNI_roi/left/to_precentral_mask6.nii.gz differ diff --git a/resources/MNI_roi/left/to_precentral_mask7.nii.gz b/resources/MNI_roi/left/to_precentral_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..73c72eef8b20fd925ad936aa72a659fda703d273 Binary files /dev/null and b/resources/MNI_roi/left/to_precentral_mask7.nii.gz differ diff --git a/resources/MNI_roi/left/to_precentral_mask8.nii.gz b/resources/MNI_roi/left/to_precentral_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..c1057fd3e01a2b375edf469fc10dd45fa76c9133 Binary files /dev/null and b/resources/MNI_roi/left/to_precentral_mask8.nii.gz differ diff --git a/resources/MNI_roi/left/to_precentral_mask9.nii.gz b/resources/MNI_roi/left/to_precentral_mask9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..70415a12f12f1434543908bf41f78a97c6044398 Binary files /dev/null and b/resources/MNI_roi/left/to_precentral_mask9.nii.gz differ diff --git a/resources/MNI_roi/left/vim.nii.gz b/resources/MNI_roi/left/vim.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..13a5c50e650ed5a197bcbccbed475f19510a236e Binary files /dev/null and b/resources/MNI_roi/left/vim.nii.gz differ diff --git a/resources/MNI_roi/right/1.nii.gz b/resources/MNI_roi/right/1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4905c1473524be21334d9d6ef21e9747e8e0dfdf Binary files /dev/null and b/resources/MNI_roi/right/1.nii.gz differ diff --git a/resources/MNI_roi/right/10.nii.gz b/resources/MNI_roi/right/10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e0a53742bcd1b038c5f32906daed63f3fa58e86e Binary files /dev/null and b/resources/MNI_roi/right/10.nii.gz differ diff --git a/resources/MNI_roi/right/11.nii.gz b/resources/MNI_roi/right/11.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..3ded068ac4c5cc9927f0b891d2cd805f2e6508c3 Binary files /dev/null and b/resources/MNI_roi/right/11.nii.gz differ diff --git a/resources/MNI_roi/right/12.nii.gz b/resources/MNI_roi/right/12.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4bd7a3a38dcefc5908f27d7fdbc8344aa59393b3 Binary files /dev/null and b/resources/MNI_roi/right/12.nii.gz differ diff --git a/resources/MNI_roi/right/13.nii.gz b/resources/MNI_roi/right/13.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..01a2af4cede79faee303f2ce4ec97b9483ba903b Binary files /dev/null and b/resources/MNI_roi/right/13.nii.gz differ diff --git a/resources/MNI_roi/right/14.nii.gz b/resources/MNI_roi/right/14.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..51217c46e175c53d94abd9c6d574a52b1a04e81e Binary files /dev/null and b/resources/MNI_roi/right/14.nii.gz differ diff --git a/resources/MNI_roi/right/15.nii.gz b/resources/MNI_roi/right/15.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..43bb579e7b5d8e75c78e0cbcf136b8071c58f2c5 Binary files /dev/null and b/resources/MNI_roi/right/15.nii.gz differ diff --git a/resources/MNI_roi/right/16.nii.gz b/resources/MNI_roi/right/16.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..689c0d05c35ad45fe7dcc6f17827d9a8f2d2f2de Binary files /dev/null and b/resources/MNI_roi/right/16.nii.gz differ diff --git a/resources/MNI_roi/right/17.nii.gz b/resources/MNI_roi/right/17.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..648bf1ec8e4df2e2bd492c2c95c345ebd0bebc1b Binary files /dev/null and b/resources/MNI_roi/right/17.nii.gz differ diff --git a/resources/MNI_roi/right/18.nii.gz b/resources/MNI_roi/right/18.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d5ad9d64194d2a561f9ebd77af9880948d06cf7c Binary files /dev/null and b/resources/MNI_roi/right/18.nii.gz differ diff --git a/resources/MNI_roi/right/19.nii.gz b/resources/MNI_roi/right/19.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..bdf07e3b055d0ee6f2a18df4a11e1ab71f6d294c Binary files /dev/null and b/resources/MNI_roi/right/19.nii.gz differ diff --git a/resources/MNI_roi/right/2.nii.gz b/resources/MNI_roi/right/2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8eaed756dbdf1e201883f6d8299060e6d480bb30 Binary files /dev/null and b/resources/MNI_roi/right/2.nii.gz differ diff --git a/resources/MNI_roi/right/20.nii.gz b/resources/MNI_roi/right/20.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1a8033911c3a2eba2bd5e4d01287d52f0f78fcb7 Binary files /dev/null and b/resources/MNI_roi/right/20.nii.gz differ diff --git a/resources/MNI_roi/right/21.nii.gz b/resources/MNI_roi/right/21.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7214e4726196884ec8fb0aa787ea60748adcb228 Binary files /dev/null and b/resources/MNI_roi/right/21.nii.gz differ diff --git a/resources/MNI_roi/right/22.nii.gz b/resources/MNI_roi/right/22.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..edb2be0755d231f633fd08e3816054263ba04130 Binary files /dev/null and b/resources/MNI_roi/right/22.nii.gz differ diff --git a/resources/MNI_roi/right/23.nii.gz b/resources/MNI_roi/right/23.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..70d32af809c2f5aa164d485c37cadf55bbf66173 Binary files /dev/null and b/resources/MNI_roi/right/23.nii.gz differ diff --git a/resources/MNI_roi/right/24.nii.gz b/resources/MNI_roi/right/24.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1d4621d3b93c87098fd6962c2baa864d1c49a777 Binary files /dev/null and b/resources/MNI_roi/right/24.nii.gz differ diff --git a/resources/MNI_roi/right/25.nii.gz b/resources/MNI_roi/right/25.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..66b892a94a36349769ae40575812369b5b79d52e Binary files /dev/null and b/resources/MNI_roi/right/25.nii.gz differ diff --git a/resources/MNI_roi/right/26.nii.gz b/resources/MNI_roi/right/26.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..bef802aa0c70116670412d1553122cfdc9604e05 Binary files /dev/null and b/resources/MNI_roi/right/26.nii.gz differ diff --git a/resources/MNI_roi/right/27.nii.gz b/resources/MNI_roi/right/27.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2c0b5e5df7fe18cbbf6ba94c8a0f0d7b365f8de9 Binary files /dev/null and b/resources/MNI_roi/right/27.nii.gz differ diff --git a/resources/MNI_roi/right/28.nii.gz b/resources/MNI_roi/right/28.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a33419ae0fc983307f4b6dd32f656917847006d0 Binary files /dev/null and b/resources/MNI_roi/right/28.nii.gz differ diff --git a/resources/MNI_roi/right/29.nii.gz b/resources/MNI_roi/right/29.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8fbfc166977b8188e238df9891404331634e7806 Binary files /dev/null and b/resources/MNI_roi/right/29.nii.gz differ diff --git a/resources/MNI_roi/right/3.nii.gz b/resources/MNI_roi/right/3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8c00febaad573ff8d9367d80e1a16dc3212f1711 Binary files /dev/null and b/resources/MNI_roi/right/3.nii.gz differ diff --git a/resources/MNI_roi/right/30.nii.gz b/resources/MNI_roi/right/30.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8f2d7930b5fa7efd114c3b0c46d850458ac26f6c Binary files /dev/null and b/resources/MNI_roi/right/30.nii.gz differ diff --git a/resources/MNI_roi/right/31.nii.gz b/resources/MNI_roi/right/31.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..f31f24bc270ae51c60ee11f43780fa2c2ab36ad0 Binary files /dev/null and b/resources/MNI_roi/right/31.nii.gz differ diff --git a/resources/MNI_roi/right/32.nii.gz b/resources/MNI_roi/right/32.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..eb3be14b8618b545728e73fde853b879ed00b4f2 Binary files /dev/null and b/resources/MNI_roi/right/32.nii.gz differ diff --git a/resources/MNI_roi/right/33.nii.gz b/resources/MNI_roi/right/33.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..6cdc7a7e9cc04ed4ef6fb6d385ae17eb32986a25 Binary files /dev/null and b/resources/MNI_roi/right/33.nii.gz differ diff --git a/resources/MNI_roi/right/34.nii.gz b/resources/MNI_roi/right/34.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..efabd3c9ea15312ae449ab29abf83161df51c215 Binary files /dev/null and b/resources/MNI_roi/right/34.nii.gz differ diff --git a/resources/MNI_roi/right/35.nii.gz b/resources/MNI_roi/right/35.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0c7f3aabfe5ab096d94b4f83acf8f2ac3c1a8c87 Binary files /dev/null and b/resources/MNI_roi/right/35.nii.gz differ diff --git a/resources/MNI_roi/right/36.nii.gz b/resources/MNI_roi/right/36.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..fd516c7c5170bc0de2e4ffcb9b4ebd4da2f5b566 Binary files /dev/null and b/resources/MNI_roi/right/36.nii.gz differ diff --git a/resources/MNI_roi/right/37.nii.gz b/resources/MNI_roi/right/37.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..dc66062d8e9b16fc9c4a390ab2336eec68aa90fc Binary files /dev/null and b/resources/MNI_roi/right/37.nii.gz differ diff --git a/resources/MNI_roi/right/38.nii.gz b/resources/MNI_roi/right/38.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2acbd62e2e27ad1c1ffc41d539c809ffdfe229b8 Binary files /dev/null and b/resources/MNI_roi/right/38.nii.gz differ diff --git a/resources/MNI_roi/right/39.nii.gz b/resources/MNI_roi/right/39.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d6ce8b473cd387a6177432b612dd8ee6e1a37c62 Binary files /dev/null and b/resources/MNI_roi/right/39.nii.gz differ diff --git a/resources/MNI_roi/right/4.nii.gz b/resources/MNI_roi/right/4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b0c87d05fb72b0c7649f959e38957883af04d301 Binary files /dev/null and b/resources/MNI_roi/right/4.nii.gz differ diff --git a/resources/MNI_roi/right/40.nii.gz b/resources/MNI_roi/right/40.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7ecac3c9cf45f6527ca9ea5e0ff8471d1102c079 Binary files /dev/null and b/resources/MNI_roi/right/40.nii.gz differ diff --git a/resources/MNI_roi/right/41.nii.gz b/resources/MNI_roi/right/41.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..076f3eb5ff1826b00601acfa86b65b17a0f71d30 Binary files /dev/null and b/resources/MNI_roi/right/41.nii.gz differ diff --git a/resources/MNI_roi/right/42.nii.gz b/resources/MNI_roi/right/42.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..04230ee70f70e58cb5e81722f85aea6fd68b9719 Binary files /dev/null and b/resources/MNI_roi/right/42.nii.gz differ diff --git a/resources/MNI_roi/right/43.nii.gz b/resources/MNI_roi/right/43.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1f3952eaf529c516101bf48746ac50465d916680 Binary files /dev/null and b/resources/MNI_roi/right/43.nii.gz differ diff --git a/resources/MNI_roi/right/44.nii.gz b/resources/MNI_roi/right/44.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d43d58038a23c60bff69c88f3b2dd3eaec7a0961 Binary files /dev/null and b/resources/MNI_roi/right/44.nii.gz differ diff --git a/resources/MNI_roi/right/45.nii.gz b/resources/MNI_roi/right/45.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8b755c0e7ab8718d92cb29ccbc6e3924b50fd29c Binary files /dev/null and b/resources/MNI_roi/right/45.nii.gz differ diff --git a/resources/MNI_roi/right/46.nii.gz b/resources/MNI_roi/right/46.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..24bd8ae4f66f1929d6986a3c0768d3052955c3c0 Binary files /dev/null and b/resources/MNI_roi/right/46.nii.gz differ diff --git a/resources/MNI_roi/right/47.nii.gz b/resources/MNI_roi/right/47.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..739957a4d5c4c21cb0fa7d7e4178ba23debd60a2 Binary files /dev/null and b/resources/MNI_roi/right/47.nii.gz differ diff --git a/resources/MNI_roi/right/48.nii.gz b/resources/MNI_roi/right/48.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ea3bfd2e4b1f719bff3a4fca33540902a988b665 Binary files /dev/null and b/resources/MNI_roi/right/48.nii.gz differ diff --git a/resources/MNI_roi/right/49.nii.gz b/resources/MNI_roi/right/49.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b490cb91478f56b2b721486178051557ce8c0fcf Binary files /dev/null and b/resources/MNI_roi/right/49.nii.gz differ diff --git a/resources/MNI_roi/right/5.nii.gz b/resources/MNI_roi/right/5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0b5e8545e9bcaf86732cccac99e06c759ffc5a06 Binary files /dev/null and b/resources/MNI_roi/right/5.nii.gz differ diff --git a/resources/MNI_roi/right/50.nii.gz b/resources/MNI_roi/right/50.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..72dababc46c4b750fca77b9813dece30ef955e45 Binary files /dev/null and b/resources/MNI_roi/right/50.nii.gz differ diff --git a/resources/MNI_roi/right/51.nii.gz b/resources/MNI_roi/right/51.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..baf36b600e19475130e722b005d5b7678d34c71a Binary files /dev/null and b/resources/MNI_roi/right/51.nii.gz differ diff --git a/resources/MNI_roi/right/52.nii.gz b/resources/MNI_roi/right/52.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..3b4665244dcb62b695b911dad9f0ec9874760e07 Binary files /dev/null and b/resources/MNI_roi/right/52.nii.gz differ diff --git a/resources/MNI_roi/right/53.nii.gz b/resources/MNI_roi/right/53.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8c8df0f8df9153558dff51c89ee29b195c1f840a Binary files /dev/null and b/resources/MNI_roi/right/53.nii.gz differ diff --git a/resources/MNI_roi/right/54.nii.gz b/resources/MNI_roi/right/54.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..533d649c9d4c8410ad2b6ab3144a13b99672ff7f Binary files /dev/null and b/resources/MNI_roi/right/54.nii.gz differ diff --git a/resources/MNI_roi/right/55.nii.gz b/resources/MNI_roi/right/55.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..6e767ec8b8898f8289e8d040385158f62d788d34 Binary files /dev/null and b/resources/MNI_roi/right/55.nii.gz differ diff --git a/resources/MNI_roi/right/56.nii.gz b/resources/MNI_roi/right/56.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a4c940324f4ef0d3ecb13d80550e72842dd6ca6c Binary files /dev/null and b/resources/MNI_roi/right/56.nii.gz differ diff --git a/resources/MNI_roi/right/57.nii.gz b/resources/MNI_roi/right/57.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..94b7fd103ad3f2fd9215af2029794d1c0b2139e0 Binary files /dev/null and b/resources/MNI_roi/right/57.nii.gz differ diff --git a/resources/MNI_roi/right/58.nii.gz b/resources/MNI_roi/right/58.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..02395a0d384177f5d701bb7051edbd0a335bb4ac Binary files /dev/null and b/resources/MNI_roi/right/58.nii.gz differ diff --git a/resources/MNI_roi/right/59.nii.gz b/resources/MNI_roi/right/59.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..c1e8dffb35c9f76bf3dac62cc6ff833341d6cf8d Binary files /dev/null and b/resources/MNI_roi/right/59.nii.gz differ diff --git a/resources/MNI_roi/right/6.nii.gz b/resources/MNI_roi/right/6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..725eca0d13e3e99a7322a257f7cbdf8d72489d67 Binary files /dev/null and b/resources/MNI_roi/right/6.nii.gz differ diff --git a/resources/MNI_roi/right/60.nii.gz b/resources/MNI_roi/right/60.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..94426963a63f08d9c4ddda7e9e8bf9d7072db3b6 Binary files /dev/null and b/resources/MNI_roi/right/60.nii.gz differ diff --git a/resources/MNI_roi/right/61.nii.gz b/resources/MNI_roi/right/61.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..cdeb9477f4eb82d99813b77c46b9db60a0d5b1d7 Binary files /dev/null and b/resources/MNI_roi/right/61.nii.gz differ diff --git a/resources/MNI_roi/right/62.nii.gz b/resources/MNI_roi/right/62.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5ec83ebf58d8fef7586655e4ed87c1c63d663da4 Binary files /dev/null and b/resources/MNI_roi/right/62.nii.gz differ diff --git a/resources/MNI_roi/right/63.nii.gz b/resources/MNI_roi/right/63.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e0d09b80a38b3d74c25fe608edad6095c2b2d23 Binary files /dev/null and b/resources/MNI_roi/right/63.nii.gz differ diff --git a/resources/MNI_roi/right/64.nii.gz b/resources/MNI_roi/right/64.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0cc324228961cd26e69de356451ec59a03a9c589 Binary files /dev/null and b/resources/MNI_roi/right/64.nii.gz differ diff --git a/resources/MNI_roi/right/65.nii.gz b/resources/MNI_roi/right/65.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..95e1aaebdfe1707ed40b16fa6dd5815c8003a951 Binary files /dev/null and b/resources/MNI_roi/right/65.nii.gz differ diff --git a/resources/MNI_roi/right/66.nii.gz b/resources/MNI_roi/right/66.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..83a7f61ecf71e0cccced916183172228e9927728 Binary files /dev/null and b/resources/MNI_roi/right/66.nii.gz differ diff --git a/resources/MNI_roi/right/67.nii.gz b/resources/MNI_roi/right/67.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..cd3b475be33a83e17917e9f812ffd96fbd0e4e93 Binary files /dev/null and b/resources/MNI_roi/right/67.nii.gz differ diff --git a/resources/MNI_roi/right/68.nii.gz b/resources/MNI_roi/right/68.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..24f21b7d21211e55af4e8385264708640ba47fdd Binary files /dev/null and b/resources/MNI_roi/right/68.nii.gz differ diff --git a/resources/MNI_roi/right/69.nii.gz b/resources/MNI_roi/right/69.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..f57cbb03fbfbeaca3726e3dea63a8c0fcb95efca Binary files /dev/null and b/resources/MNI_roi/right/69.nii.gz differ diff --git a/resources/MNI_roi/right/7.nii.gz b/resources/MNI_roi/right/7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..85c4b429ae77280583f41e52145359a6faf89fa3 Binary files /dev/null and b/resources/MNI_roi/right/7.nii.gz differ diff --git a/resources/MNI_roi/right/70.nii.gz b/resources/MNI_roi/right/70.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..23579d8ed13c01b52044db3106bf2098be33ee55 Binary files /dev/null and b/resources/MNI_roi/right/70.nii.gz differ diff --git a/resources/MNI_roi/right/71.nii.gz b/resources/MNI_roi/right/71.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7d5e6552524e4adeb7e5c44ea9dc821e62ec2638 Binary files /dev/null and b/resources/MNI_roi/right/71.nii.gz differ diff --git a/resources/MNI_roi/right/72.nii.gz b/resources/MNI_roi/right/72.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..83f567f29a98aaf22f95bd8b2cc4917539c479b3 Binary files /dev/null and b/resources/MNI_roi/right/72.nii.gz differ diff --git a/resources/MNI_roi/right/73.nii.gz b/resources/MNI_roi/right/73.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4d48fd5929da1366b22fea2315813d207acbe698 Binary files /dev/null and b/resources/MNI_roi/right/73.nii.gz differ diff --git a/resources/MNI_roi/right/74.nii.gz b/resources/MNI_roi/right/74.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..113ec333dbf1aa712a2f955f0f743863796bd7eb Binary files /dev/null and b/resources/MNI_roi/right/74.nii.gz differ diff --git a/resources/MNI_roi/right/75.nii.gz b/resources/MNI_roi/right/75.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..31e8bcc10ea669cd3086da034f24d8fd41a6c795 Binary files /dev/null and b/resources/MNI_roi/right/75.nii.gz differ diff --git a/resources/MNI_roi/right/8.nii.gz b/resources/MNI_roi/right/8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8db65bb32f48ef3845bf4e7aed71a6ef828c4628 Binary files /dev/null and b/resources/MNI_roi/right/8.nii.gz differ diff --git a/resources/MNI_roi/right/9.nii.gz b/resources/MNI_roi/right/9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5628f4f6a529e879f881f5407d2478e3a9059c53 Binary files /dev/null and b/resources/MNI_roi/right/9.nii.gz differ diff --git a/resources/MNI_roi/right/SCPCT.nii.gz b/resources/MNI_roi/right/SCPCT.nii.gz new file mode 100755 index 0000000000000000000000000000000000000000..81140f3f08f5dccecc2f11924a992de3f0bb1ec3 Binary files /dev/null and b/resources/MNI_roi/right/SCPCT.nii.gz differ diff --git a/resources/MNI_roi/right/ar_mask1.nii.gz b/resources/MNI_roi/right/ar_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..747925c07889248577da6485e6b5a0f2d046d4f0 Binary files /dev/null and b/resources/MNI_roi/right/ar_mask1.nii.gz differ diff --git a/resources/MNI_roi/right/ar_mask2.nii.gz b/resources/MNI_roi/right/ar_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b66df43b56593dfdaa6fed2cb9f7dcce4369f510 Binary files /dev/null and b/resources/MNI_roi/right/ar_mask2.nii.gz differ diff --git a/resources/MNI_roi/right/ar_mask3.nii.gz b/resources/MNI_roi/right/ar_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7470af279a2fe0fe3210dfbf596fb0003268a3cd Binary files /dev/null and b/resources/MNI_roi/right/ar_mask3.nii.gz differ diff --git a/resources/MNI_roi/right/ar_mask4.nii.gz b/resources/MNI_roi/right/ar_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..04122b5d2a9bb36b69029908d97b2af9febfc5de Binary files /dev/null and b/resources/MNI_roi/right/ar_mask4.nii.gz differ diff --git a/resources/MNI_roi/right/ar_mask5.nii.gz b/resources/MNI_roi/right/ar_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a3f17ee57c7dfd9bfb43d877ead72f87a6fe8b3b Binary files /dev/null and b/resources/MNI_roi/right/ar_mask5.nii.gz differ diff --git a/resources/MNI_roi/right/ar_mask6.nii.gz b/resources/MNI_roi/right/ar_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0332dea3afe9f8527e9b2f86a8ce01d1fd68cec5 Binary files /dev/null and b/resources/MNI_roi/right/ar_mask6.nii.gz differ diff --git a/resources/MNI_roi/right/ar_mask7.nii.gz b/resources/MNI_roi/right/ar_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..61b8933c60e7963948ae7176e14958f12608cdd4 Binary files /dev/null and b/resources/MNI_roi/right/ar_mask7.nii.gz differ diff --git a/resources/MNI_roi/right/ar_mask8.nii.gz b/resources/MNI_roi/right/ar_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..04d686d7e671bdca20c93d6389e0be4be8840511 Binary files /dev/null and b/resources/MNI_roi/right/ar_mask8.nii.gz differ diff --git a/resources/MNI_roi/right/atr_mask1.nii.gz b/resources/MNI_roi/right/atr_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..398b22445aa25177e27c34af0cde5430cf7d0449 Binary files /dev/null and b/resources/MNI_roi/right/atr_mask1.nii.gz differ diff --git a/resources/MNI_roi/right/atr_mask2.nii.gz b/resources/MNI_roi/right/atr_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..9d9e6bdb7ab5b6575ea125d49ee2321d850c6333 Binary files /dev/null and b/resources/MNI_roi/right/atr_mask2.nii.gz differ diff --git a/resources/MNI_roi/right/atr_mask3.nii.gz b/resources/MNI_roi/right/atr_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a6156999cc7867289097e4aa2a631e0d7af7f985 Binary files /dev/null and b/resources/MNI_roi/right/atr_mask3.nii.gz differ diff --git a/resources/MNI_roi/right/atr_mask4.nii.gz b/resources/MNI_roi/right/atr_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..f9a1cf400efe57e30752389c11e97d6f92a46cbb Binary files /dev/null and b/resources/MNI_roi/right/atr_mask4.nii.gz differ diff --git a/resources/MNI_roi/right/atr_mask5.nii.gz b/resources/MNI_roi/right/atr_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..57e30eca129a0356424a46f288cb9ad0346eb678 Binary files /dev/null and b/resources/MNI_roi/right/atr_mask5.nii.gz differ diff --git a/resources/MNI_roi/right/atr_mask6.nii.gz b/resources/MNI_roi/right/atr_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0cd35577ea55c0445b67d2636f010255985e6c76 Binary files /dev/null and b/resources/MNI_roi/right/atr_mask6.nii.gz differ diff --git a/resources/MNI_roi/right/atr_mask7.nii.gz b/resources/MNI_roi/right/atr_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ba80e6d4120ed47687d781aa0e9d48539cb32810 Binary files /dev/null and b/resources/MNI_roi/right/atr_mask7.nii.gz differ diff --git a/resources/MNI_roi/right/atr_mask8.nii.gz b/resources/MNI_roi/right/atr_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..bd235960263cd77691eb573fec10481c0eb43971 Binary files /dev/null and b/resources/MNI_roi/right/atr_mask8.nii.gz differ diff --git a/resources/MNI_roi/right/cerebellum.nii.gz b/resources/MNI_roi/right/cerebellum.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..13356916ed2c57c8388cfee65bf51c5f80cc1684 Binary files /dev/null and b/resources/MNI_roi/right/cerebellum.nii.gz differ diff --git a/resources/MNI_roi/right/cerebellum_target.nii.gz b/resources/MNI_roi/right/cerebellum_target.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..29b3defe05272e2e779ff2bdc5192f5d0dcc6a59 Binary files /dev/null and b/resources/MNI_roi/right/cerebellum_target.nii.gz differ diff --git a/resources/MNI_roi/right/cortex.nii.gz b/resources/MNI_roi/right/cortex.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b975c2b286d52f40c123f8357e6ea1e5da872e65 Binary files /dev/null and b/resources/MNI_roi/right/cortex.nii.gz differ diff --git a/resources/MNI_roi/right/exclusion.nii.gz b/resources/MNI_roi/right/exclusion.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..29fe59f40033885c93886e6fa8d7d37ca479dbb4 Binary files /dev/null and b/resources/MNI_roi/right/exclusion.nii.gz differ diff --git a/resources/MNI_roi/right/fx_mask1.nii.gz b/resources/MNI_roi/right/fx_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..dd9dc97bd46cb910800cdd95eedd3fda22c98d9c Binary files /dev/null and b/resources/MNI_roi/right/fx_mask1.nii.gz differ diff --git a/resources/MNI_roi/right/fx_mask10.nii.gz b/resources/MNI_roi/right/fx_mask10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4e15de0d8d5ebefd0c0f57e88ccc95f0a90ffa3d Binary files /dev/null and b/resources/MNI_roi/right/fx_mask10.nii.gz differ diff --git a/resources/MNI_roi/right/fx_mask2.nii.gz b/resources/MNI_roi/right/fx_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ca29773b925d654d36ca7e89b177243966d3c4c3 Binary files /dev/null and b/resources/MNI_roi/right/fx_mask2.nii.gz differ diff --git a/resources/MNI_roi/right/fx_mask3.nii.gz b/resources/MNI_roi/right/fx_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0b160fb1073464fb6deaecf5016f4b329c52cde6 Binary files /dev/null and b/resources/MNI_roi/right/fx_mask3.nii.gz differ diff --git a/resources/MNI_roi/right/fx_mask4.nii.gz b/resources/MNI_roi/right/fx_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..3ee39784365266cc973038df8c5de9acfc8a8b41 Binary files /dev/null and b/resources/MNI_roi/right/fx_mask4.nii.gz differ diff --git a/resources/MNI_roi/right/fx_mask5.nii.gz b/resources/MNI_roi/right/fx_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..59feeb81d9290e4c5d3750ae439f0d24f9813aee Binary files /dev/null and b/resources/MNI_roi/right/fx_mask5.nii.gz differ diff --git a/resources/MNI_roi/right/fx_mask6.nii.gz b/resources/MNI_roi/right/fx_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e91c5d88f83af22a13d1d7c131d7233f290787e Binary files /dev/null and b/resources/MNI_roi/right/fx_mask6.nii.gz differ diff --git a/resources/MNI_roi/right/fx_mask7.nii.gz b/resources/MNI_roi/right/fx_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..05e9cf96bbbd23550580a0ee7712545d60f3e827 Binary files /dev/null and b/resources/MNI_roi/right/fx_mask7.nii.gz differ diff --git a/resources/MNI_roi/right/fx_mask8.nii.gz b/resources/MNI_roi/right/fx_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b78857f82df418672f30795d2765f42348f57307 Binary files /dev/null and b/resources/MNI_roi/right/fx_mask8.nii.gz differ diff --git a/resources/MNI_roi/right/fx_mask9.nii.gz b/resources/MNI_roi/right/fx_mask9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..fde14a9c4471aa1bfd3480bc05d0bab148e691e4 Binary files /dev/null and b/resources/MNI_roi/right/fx_mask9.nii.gz differ diff --git a/resources/MNI_roi/right/or_mask1.nii.gz b/resources/MNI_roi/right/or_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..9bd9ea2e158d7b1cdd04a9fabfab8b8de5bcd4b4 Binary files /dev/null and b/resources/MNI_roi/right/or_mask1.nii.gz differ diff --git a/resources/MNI_roi/right/or_mask10.nii.gz b/resources/MNI_roi/right/or_mask10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..07fc6121f26f6c30391d1129f93c71194a02f542 Binary files /dev/null and b/resources/MNI_roi/right/or_mask10.nii.gz differ diff --git a/resources/MNI_roi/right/or_mask2.nii.gz b/resources/MNI_roi/right/or_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4c512a793ebd705b0a68e2d9dd5650d0b6e19019 Binary files /dev/null and b/resources/MNI_roi/right/or_mask2.nii.gz differ diff --git a/resources/MNI_roi/right/or_mask3.nii.gz b/resources/MNI_roi/right/or_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8d697d39105005d81d845d11ab688a858f427263 Binary files /dev/null and b/resources/MNI_roi/right/or_mask3.nii.gz differ diff --git a/resources/MNI_roi/right/or_mask4.nii.gz b/resources/MNI_roi/right/or_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..bb8fe9a6f24836fe8eeb610837ac2eb10064a311 Binary files /dev/null and b/resources/MNI_roi/right/or_mask4.nii.gz differ diff --git a/resources/MNI_roi/right/or_mask5.nii.gz b/resources/MNI_roi/right/or_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0efdedbfc82dc969b012152a706395b4ccaa9667 Binary files /dev/null and b/resources/MNI_roi/right/or_mask5.nii.gz differ diff --git a/resources/MNI_roi/right/or_mask6.nii.gz b/resources/MNI_roi/right/or_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..17c7f48269f5d3436083acc2d9f322aef92bc782 Binary files /dev/null and b/resources/MNI_roi/right/or_mask6.nii.gz differ diff --git a/resources/MNI_roi/right/or_mask7.nii.gz b/resources/MNI_roi/right/or_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..56b55fb57a2e28cb4aefc8d7c0faddeffcad5cc5 Binary files /dev/null and b/resources/MNI_roi/right/or_mask7.nii.gz differ diff --git a/resources/MNI_roi/right/or_mask8.nii.gz b/resources/MNI_roi/right/or_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..64646d49945eb213d062e384df8abf6d0141cfd7 Binary files /dev/null and b/resources/MNI_roi/right/or_mask8.nii.gz differ diff --git a/resources/MNI_roi/right/or_mask9.nii.gz b/resources/MNI_roi/right/or_mask9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..c170841aea11af1988747c46bd6bc8b63d90ebc3 Binary files /dev/null and b/resources/MNI_roi/right/or_mask9.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask1.nii.gz b/resources/MNI_roi/right/scpct_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..bdb451e7f39935b73b03ae8e15d4a01c985f1cc7 Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask1.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask10.nii.gz b/resources/MNI_roi/right/scpct_mask10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..f53e3c88104a3afef87506af4dae7ac1b0c34a61 Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask10.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask11.nii.gz b/resources/MNI_roi/right/scpct_mask11.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4ca7cd5414d56a8e5d6978da72a0c00ab2e58258 Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask11.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask12.nii.gz b/resources/MNI_roi/right/scpct_mask12.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a7b8cfa8302169b85701460124f727da4c4598fd Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask12.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask13.nii.gz b/resources/MNI_roi/right/scpct_mask13.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a8ed697884156d34cd66b57b34148f8b668b6c3f Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask13.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask14.nii.gz b/resources/MNI_roi/right/scpct_mask14.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8a6460264e8f30e6249a7c8bfda9960f7fb04e6f Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask14.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask15.nii.gz b/resources/MNI_roi/right/scpct_mask15.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ff20d28d323b43d4e271d507640a4cd072e77dd0 Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask15.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask2.nii.gz b/resources/MNI_roi/right/scpct_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..339c1ff9f95b24bb4a11851d99b5400d5f8b5264 Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask2.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask3.nii.gz b/resources/MNI_roi/right/scpct_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..08066c37eaaf9c7a455ee806eccfd8a2450a9db2 Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask3.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask4.nii.gz b/resources/MNI_roi/right/scpct_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..94475bd1e9355cf29f5a5b9a67edc0ff41a9e988 Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask4.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask5.nii.gz b/resources/MNI_roi/right/scpct_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..22fb1dbccd2766d4d6e5d197a66d6345f8dd9fe3 Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask5.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask6.nii.gz b/resources/MNI_roi/right/scpct_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7e95679836d47949156e6a4d80d06050edbb2c51 Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask6.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask7.nii.gz b/resources/MNI_roi/right/scpct_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1a6b3fe334b865087687e41ecaf5ac25b6fc9e81 Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask7.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask8.nii.gz b/resources/MNI_roi/right/scpct_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..71ce601d1a5bc9e28bbbe31dee3e35424829ee23 Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask8.nii.gz differ diff --git a/resources/MNI_roi/right/scpct_mask9.nii.gz b/resources/MNI_roi/right/scpct_mask9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..81c2a4d0060b678ea1b847ce463d8baa5727fa05 Binary files /dev/null and b/resources/MNI_roi/right/scpct_mask9.nii.gz differ diff --git a/resources/MNI_roi/right/str_mask1.nii.gz b/resources/MNI_roi/right/str_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..25d2a006d8d3ad9e427d0846a0554eded4c2451b Binary files /dev/null and b/resources/MNI_roi/right/str_mask1.nii.gz differ diff --git a/resources/MNI_roi/right/str_mask10.nii.gz b/resources/MNI_roi/right/str_mask10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1909f99d8dfee27a44144182bb4ba3ef83d169cd Binary files /dev/null and b/resources/MNI_roi/right/str_mask10.nii.gz differ diff --git a/resources/MNI_roi/right/str_mask2.nii.gz b/resources/MNI_roi/right/str_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..9b5b1a0f71f6e74ba3ec3a87805bd80a1b78942b Binary files /dev/null and b/resources/MNI_roi/right/str_mask2.nii.gz differ diff --git a/resources/MNI_roi/right/str_mask3.nii.gz b/resources/MNI_roi/right/str_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2b944c6692beac8865f26b73df3b6eb14423419e Binary files /dev/null and b/resources/MNI_roi/right/str_mask3.nii.gz differ diff --git a/resources/MNI_roi/right/str_mask4.nii.gz b/resources/MNI_roi/right/str_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e4397b46f420e79dd21323e31b8bad9e11d73718 Binary files /dev/null and b/resources/MNI_roi/right/str_mask4.nii.gz differ diff --git a/resources/MNI_roi/right/str_mask5.nii.gz b/resources/MNI_roi/right/str_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b155423d9c519e27618d95d716b2038038947014 Binary files /dev/null and b/resources/MNI_roi/right/str_mask5.nii.gz differ diff --git a/resources/MNI_roi/right/str_mask6.nii.gz b/resources/MNI_roi/right/str_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..26d304e6805906e1010e984294958944e09f4bd7 Binary files /dev/null and b/resources/MNI_roi/right/str_mask6.nii.gz differ diff --git a/resources/MNI_roi/right/str_mask7.nii.gz b/resources/MNI_roi/right/str_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d1cb301344db0c09fd26ff91a9cdf03d2a0ad080 Binary files /dev/null and b/resources/MNI_roi/right/str_mask7.nii.gz differ diff --git a/resources/MNI_roi/right/str_mask8.nii.gz b/resources/MNI_roi/right/str_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..fe71cce41eb0109290f486b620c4f90f1180192b Binary files /dev/null and b/resources/MNI_roi/right/str_mask8.nii.gz differ diff --git a/resources/MNI_roi/right/str_mask9.nii.gz b/resources/MNI_roi/right/str_mask9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..189d76b2295ce32b9426b98b5fa69da3e4047dea Binary files /dev/null and b/resources/MNI_roi/right/str_mask9.nii.gz differ diff --git a/resources/MNI_roi/right/tha.nii.gz b/resources/MNI_roi/right/tha.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..98a950efb93f6f4b08a1fa0302433cee41aa99c2 Binary files /dev/null and b/resources/MNI_roi/right/tha.nii.gz differ diff --git a/resources/MNI_roi/right/to_postcentral_mask1.nii.gz b/resources/MNI_roi/right/to_postcentral_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a07f97d38a4e2c9f32e0d6eafac05e8b4927c7a6 Binary files /dev/null and b/resources/MNI_roi/right/to_postcentral_mask1.nii.gz differ diff --git a/resources/MNI_roi/right/to_postcentral_mask10.nii.gz b/resources/MNI_roi/right/to_postcentral_mask10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b2a2abfbb4b001df1dd32244c3ef180dc11b89e7 Binary files /dev/null and b/resources/MNI_roi/right/to_postcentral_mask10.nii.gz differ diff --git a/resources/MNI_roi/right/to_postcentral_mask11.nii.gz b/resources/MNI_roi/right/to_postcentral_mask11.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..605eb8bc2e6caedbbc9e492534b0356ff178abff Binary files /dev/null and b/resources/MNI_roi/right/to_postcentral_mask11.nii.gz differ diff --git a/resources/MNI_roi/right/to_postcentral_mask12.nii.gz b/resources/MNI_roi/right/to_postcentral_mask12.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..3ecfd834bce04205235c0bc51f817f3c53c39eae Binary files /dev/null and b/resources/MNI_roi/right/to_postcentral_mask12.nii.gz differ diff --git a/resources/MNI_roi/right/to_postcentral_mask2.nii.gz b/resources/MNI_roi/right/to_postcentral_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..db6f8b3e6384153c795fde86ad37bb0d48db138c Binary files /dev/null and b/resources/MNI_roi/right/to_postcentral_mask2.nii.gz differ diff --git a/resources/MNI_roi/right/to_postcentral_mask3.nii.gz b/resources/MNI_roi/right/to_postcentral_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2e37fba7cfefbe6fdb79565418c2d2a14cc99a9e Binary files /dev/null and b/resources/MNI_roi/right/to_postcentral_mask3.nii.gz differ diff --git a/resources/MNI_roi/right/to_postcentral_mask4.nii.gz b/resources/MNI_roi/right/to_postcentral_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4a2d36aad9b8718deceb3166fc4a09b30d591643 Binary files /dev/null and b/resources/MNI_roi/right/to_postcentral_mask4.nii.gz differ diff --git a/resources/MNI_roi/right/to_postcentral_mask5.nii.gz b/resources/MNI_roi/right/to_postcentral_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..21f2f34302be441df4dd34d6139e62844323067e Binary files /dev/null and b/resources/MNI_roi/right/to_postcentral_mask5.nii.gz differ diff --git a/resources/MNI_roi/right/to_postcentral_mask6.nii.gz b/resources/MNI_roi/right/to_postcentral_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d91838c96f5182690f3ac5105cb90a04083d1f1b Binary files /dev/null and b/resources/MNI_roi/right/to_postcentral_mask6.nii.gz differ diff --git a/resources/MNI_roi/right/to_postcentral_mask7.nii.gz b/resources/MNI_roi/right/to_postcentral_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a37940177f0aed97654f44f2120aa18cb75766a4 Binary files /dev/null and b/resources/MNI_roi/right/to_postcentral_mask7.nii.gz differ diff --git a/resources/MNI_roi/right/to_postcentral_mask8.nii.gz b/resources/MNI_roi/right/to_postcentral_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5455dc38b79e9e40db47a79b3c72fdad3ac93fec Binary files /dev/null and b/resources/MNI_roi/right/to_postcentral_mask8.nii.gz differ diff --git a/resources/MNI_roi/right/to_postcentral_mask9.nii.gz b/resources/MNI_roi/right/to_postcentral_mask9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..efb91bd6ed3bef29d23a169dd65df48c73e8b154 Binary files /dev/null and b/resources/MNI_roi/right/to_postcentral_mask9.nii.gz differ diff --git a/resources/MNI_roi/right/to_precentral_mask1.nii.gz b/resources/MNI_roi/right/to_precentral_mask1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..358458d336ce63e72ed99d360cc2441ff392d89b Binary files /dev/null and b/resources/MNI_roi/right/to_precentral_mask1.nii.gz differ diff --git a/resources/MNI_roi/right/to_precentral_mask10.nii.gz b/resources/MNI_roi/right/to_precentral_mask10.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..aa2ec9ceabb2316138f049a6fa083d3f718123f7 Binary files /dev/null and b/resources/MNI_roi/right/to_precentral_mask10.nii.gz differ diff --git a/resources/MNI_roi/right/to_precentral_mask11.nii.gz b/resources/MNI_roi/right/to_precentral_mask11.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..56f3fbb42632562a5091e9f3ecc3310cba40e353 Binary files /dev/null and b/resources/MNI_roi/right/to_precentral_mask11.nii.gz differ diff --git a/resources/MNI_roi/right/to_precentral_mask12.nii.gz b/resources/MNI_roi/right/to_precentral_mask12.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..31a0d8b667537abe2d62f83d8719c1f044c05a99 Binary files /dev/null and b/resources/MNI_roi/right/to_precentral_mask12.nii.gz differ diff --git a/resources/MNI_roi/right/to_precentral_mask2.nii.gz b/resources/MNI_roi/right/to_precentral_mask2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2b9a6155c12d57f5440223edd54e651bc6269f34 Binary files /dev/null and b/resources/MNI_roi/right/to_precentral_mask2.nii.gz differ diff --git a/resources/MNI_roi/right/to_precentral_mask3.nii.gz b/resources/MNI_roi/right/to_precentral_mask3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..98e51b3138be6b873ade34b2f788bb4b2b9107ca Binary files /dev/null and b/resources/MNI_roi/right/to_precentral_mask3.nii.gz differ diff --git a/resources/MNI_roi/right/to_precentral_mask4.nii.gz b/resources/MNI_roi/right/to_precentral_mask4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b7ce77d98fa24649a729396a4834a8341586dee6 Binary files /dev/null and b/resources/MNI_roi/right/to_precentral_mask4.nii.gz differ diff --git a/resources/MNI_roi/right/to_precentral_mask5.nii.gz b/resources/MNI_roi/right/to_precentral_mask5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2a709d179be98f4fa5f9efb900a88af4305c84ca Binary files /dev/null and b/resources/MNI_roi/right/to_precentral_mask5.nii.gz differ diff --git a/resources/MNI_roi/right/to_precentral_mask6.nii.gz b/resources/MNI_roi/right/to_precentral_mask6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..f6597a35efdaeb99365b81d6e3ead564f81cd3a8 Binary files /dev/null and b/resources/MNI_roi/right/to_precentral_mask6.nii.gz differ diff --git a/resources/MNI_roi/right/to_precentral_mask7.nii.gz b/resources/MNI_roi/right/to_precentral_mask7.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..27c08236e9c733699147f6e194ceebcf9e6342ab Binary files /dev/null and b/resources/MNI_roi/right/to_precentral_mask7.nii.gz differ diff --git a/resources/MNI_roi/right/to_precentral_mask8.nii.gz b/resources/MNI_roi/right/to_precentral_mask8.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..fe7d230c65f9b7dcb30c2cd47852454d7a4f74c2 Binary files /dev/null and b/resources/MNI_roi/right/to_precentral_mask8.nii.gz differ diff --git a/resources/MNI_roi/right/to_precentral_mask9.nii.gz b/resources/MNI_roi/right/to_precentral_mask9.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5563fa76fbfa1d7da52863ff6d1e0a5af7bb7c76 Binary files /dev/null and b/resources/MNI_roi/right/to_precentral_mask9.nii.gz differ diff --git a/resources/MNI_roi/right/vim.nii.gz b/resources/MNI_roi/right/vim.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..efad6ba0bc971c2db605a8b5cd76b89e96b50b58 Binary files /dev/null and b/resources/MNI_roi/right/vim.nii.gz differ diff --git a/resources/data/vim_default_target_list.txt b/resources/data/vim_default_target_list.txt new file mode 100644 index 0000000000000000000000000000000000000000..575f2054219dcd350f2ad6d8602ccccf35ca767e --- /dev/null +++ b/resources/data/vim_default_target_list.txt @@ -0,0 +1,113 @@ +seeds_to_11101.nii.gz +seeds_to_11102.nii.gz +seeds_to_11103.nii.gz +seeds_to_11104.nii.gz +seeds_to_11105.nii.gz +seeds_to_11106.nii.gz +seeds_to_11107.nii.gz +seeds_to_11108.nii.gz +seeds_to_11109.nii.gz +seeds_to_11110.nii.gz +seeds_to_11111.nii.gz +seeds_to_11112.nii.gz +seeds_to_11113.nii.gz +seeds_to_11114.nii.gz +seeds_to_11115.nii.gz +seeds_to_11116.nii.gz +seeds_to_11117.nii.gz +seeds_to_11118.nii.gz +seeds_to_11119.nii.gz +seeds_to_11120.nii.gz +seeds_to_11121.nii.gz +seeds_to_11122.nii.gz +seeds_to_11123.nii.gz +seeds_to_11124.nii.gz +seeds_to_11125.nii.gz +seeds_to_11126.nii.gz +seeds_to_11127.nii.gz +seeds_to_11128.nii.gz +seeds_to_11129.nii.gz +seeds_to_11130.nii.gz +seeds_to_11131.nii.gz +seeds_to_11132.nii.gz +seeds_to_11133.nii.gz +seeds_to_11134.nii.gz +seeds_to_11135.nii.gz +seeds_to_11136.nii.gz +seeds_to_11137.nii.gz +seeds_to_11138.nii.gz +seeds_to_11139.nii.gz +seeds_to_11140.nii.gz +seeds_to_11141.nii.gz +seeds_to_11142.nii.gz +seeds_to_11143.nii.gz +seeds_to_11144.nii.gz +seeds_to_11145.nii.gz +seeds_to_11146.nii.gz +seeds_to_11147.nii.gz +seeds_to_11148.nii.gz +seeds_to_11149.nii.gz +seeds_to_11150.nii.gz +seeds_to_11151.nii.gz +seeds_to_11152.nii.gz +seeds_to_11153.nii.gz +seeds_to_11154.nii.gz +seeds_to_11155.nii.gz +seeds_to_11156.nii.gz +seeds_to_11157.nii.gz +seeds_to_11158.nii.gz +seeds_to_11159.nii.gz +seeds_to_11160.nii.gz +seeds_to_11161.nii.gz +seeds_to_11162.nii.gz +seeds_to_11163.nii.gz +seeds_to_11164.nii.gz +seeds_to_11165.nii.gz +seeds_to_11166.nii.gz +seeds_to_11167.nii.gz +seeds_to_11168.nii.gz +seeds_to_11169.nii.gz +seeds_to_11170.nii.gz +seeds_to_11171.nii.gz +seeds_to_11172.nii.gz +seeds_to_11173.nii.gz +seeds_to_11174.nii.gz +seeds_to_11175.nii.gz +seeds_to_to_precentral1.nii.gz +seeds_to_to_precentral2.nii.gz +seeds_to_to_precentral3.nii.gz +seeds_to_to_precentral4.nii.gz +seeds_to_to_precentral5.nii.gz +seeds_to_to_postcentral1.nii.gz +seeds_to_to_postcentral2.nii.gz +seeds_to_to_postcentral3.nii.gz +seeds_to_to_postcentral4.nii.gz +seeds_to_to_postcentral5.nii.gz +seeds_to_ar1.nii.gz +seeds_to_ar2.nii.gz +seeds_to_ar3.nii.gz +seeds_to_ar4.nii.gz +seeds_to_ar5.nii.gz +seeds_to_or1.nii.gz +seeds_to_or2.nii.gz +seeds_to_or3.nii.gz +seeds_to_or4.nii.gz +seeds_to_or5.nii.gz +seeds_to_or6.nii.gz +seeds_to_str1.nii.gz +seeds_to_str2.nii.gz +seeds_to_str3.nii.gz +seeds_to_str4.nii.gz +seeds_to_str5.nii.gz +seeds_to_str6.nii.gz +seeds_to_atr1.nii.gz +seeds_to_atr2.nii.gz +seeds_to_atr3.nii.gz +seeds_to_atr4.nii.gz +seeds_to_atr5.nii.gz +seeds_to_atr6.nii.gz +seeds_to_scpct1.nii.gz +seeds_to_scpct2.nii.gz +seeds_to_scpct3.nii.gz +seeds_to_SCPCT_brainstem_60.nii.gz +seeds_to_contra_cerebellum_wm.nii.gz diff --git a/resources/models/vim/single32/vim_model.pth b/resources/models/vim/single32/vim_model.pth new file mode 100644 index 0000000000000000000000000000000000000000..898dfb143badfc45ab8d44101d083b2fd026fd9d Binary files /dev/null and b/resources/models/vim/single32/vim_model.pth differ diff --git a/resources/models/vim/single32/vim_spatial_model.pth b/resources/models/vim/single32/vim_spatial_model.pth new file mode 100644 index 0000000000000000000000000000000000000000..c8458989d107dc36e365e89bbbc7de5922929cc2 Binary files /dev/null and b/resources/models/vim/single32/vim_spatial_model.pth differ diff --git a/scripts/connectivity_driven b/scripts/connectivity_driven new file mode 100755 index 0000000000000000000000000000000000000000..1c5d34cc1ab110aede8a5e92c172b3dcb829572e --- /dev/null +++ b/scripts/connectivity_driven @@ -0,0 +1,154 @@ +#!/bin/bash + +Usage() { + echo "" + echo "Usage: ./connectivity_driven.sh --target1=m1.nii.gz --target2=cerebellum.nii.gz" + echo "" + echo "creates anatomical masks in reference space (--ref) for tractography and stores them in the output dir (--out)" + echo "if the cortical parcellation file (--aparc) not provided, uses standard masks instead" + echo "" + echo "<options>:" + echo "--target1 Target1 tract density map, e.g. M1" + echo "--target2 Target2 tract density map, e.g., contralateral cerebellum" + echo "--target3 Optional, target3 tract density map" + echo "--out The output filename" + echo "--thr1 Threshold on target1 tract density - default 50%" + echo "--thr2 Threshold on target2 tract density - default 50%" + echo "--thr3 Optional, threshold on target3 tract density - default 50%" + echo "--thr Optional, the final threshold to be applied on the product map - default 70%" + echo "--queue Optional, the queue jobs should be submitted to. Run locally if not specified." + echo "" + echo "" + exit 1 +} + +if [ -z "$FSLDIR" ]; then + echo "Environment variable $FSLDIR does not exist. Please set up FSLDIR. " + exit 1 +fi + +thr1=50 +thr2=50 +thr3=50 +thr=70 + +for arg in "$@" +do + case $arg in + --help) + Usage + ;; + --out=*) + out="${arg#*=}" + shift + ;; + --target1=*) + target1="${arg#*=}" + shift + ;; + --target2=*) + target2="${arg#*=}" + shift + ;; + --target3=*) + target3="${arg#*=}" + shift + ;; + --thr1=*) + thr1="${arg#*=}" + shift + ;; + --thr2=*) + thr2="${arg#*=}" + shift + ;; + --thr3=*) + thr3="${arg#*=}" + shift + ;; + --thr=*) + thr="${arg#*=}" + shift + ;; + --queue=*) + queue="${arg#*=}" + shift + ;; + *) + echo "Unknown option: $arg" + Usage + exit 1 + ;; + esac +done + +get_abs_file_path() { + file_path=$1 + + # Check if realpath is available + if command -v realpath > /dev/null 2>&1; then + abs_path=$(realpath "$file_path") + # Fallback to readlink -f if realpath is not available + elif command -v readlink > /dev/null 2>&1; then + abs_path=$(readlink -f "$file_path") + else + echo "Error: realpath and readlink commands are not available." + return 1 + fi + + echo "$abs_path" +} + +if [ -z "$target1" ]; then + echo "Error: Missing required argument --target1" + exit 1 +elif [ ! -f $target1 ]; then + echo "Error: $target1 not exist" + exit 1 +else + refpath=$(get_abs_file_path "$target1") +fi + +if [ -z "$target2" ]; then + echo "Error: Missing required argument --target2" + exit 1 +fi + +if [ -z "$out" ]; then + #echo "Output filename not specified - default creating a folder called 'burned' under the same directory as target1..." + #out=$(dirname $refpath)/burned + #if [ ! -d $out ]; then + #mkdir $out + #fi + echo "Error: Missing required argument --out. Please specify output filename." + exit 1 +fi + +if [ ! -z "$queue" ]; then + if which fsl_sub > /dev/null 2>&1; then + echo "Queue specified. Will submit jobs to $queue." + else + echo "fsl_sub is not installed. Will run jobs locally." + #exit 1 + queue="" + fi +fi + +outdir=$(dirname $out) + +$FSLDIR/bin/fslmaths $target1 -thrP $thr1 $outdir/target1_thrP${thr1} +$FSLDIR/bin/fslmaths $target2 -thrP $thr2 $outdir/target2_thrP${thr2} +cmd="$FSLDIR/bin/fslmaths $outdir/target1_thrP${thr1} -mul $outdir/target2_thrP${thr2}" +if [ ! -z "$target3" ]; then + $FSLDIR/bin/fslmaths $target3 -thrP $thr3 $outdir/target3_thrP${thr2} + cmd="$cmd -mul $outdir/target3_thrP${thr2}" +fi + +cmd="$cmd -thrP $thr -bin $out" +if [ -z "$queue" ]; then + eval $cmd +else + fsl_sub -q $queue -N connectivity_driven -l $outdir $cmd +fi +#$FSLDIR/bin/fslmaths $outdir/target1_thrP${thr1} -mul $outdir/target2_thrP${thr2} -thrP $thr -bin $out + diff --git a/scripts/create_masks b/scripts/create_masks new file mode 100755 index 0000000000000000000000000000000000000000..2c36a885276611be62423bf202a2d645009b8266 --- /dev/null +++ b/scripts/create_masks @@ -0,0 +1,283 @@ +#!/bin/bash + +Usage() { + echo "" + echo "Usage: ./create_masks.sh --ref=t1.nii.gz --warp=standard2str.nii.gz --out=outputdir --aparc=aparc.a2009s+aseg.nii.gz" + echo "" + echo "creates anatomical masks in reference space (--ref) for tractography and stores them in the output dir (--out)" + echo "if the cortical parcellation file (--aparc) not provided, uses standard masks instead" + echo "" + echo "<options>:" + echo "--ref (the reference image, usually in the individual T1 native space)" + echo "--warp (the warp field that maps the MNI standard space to individual T1 space)" + echo "--aparc (the cortical segmentation file from Freesurfer, either in *.mgz or *.nii.gz/*.nii)" + echo "--out (optional, the output directory to store the anatomical masks. if not provided, create a folder called roi in the same directory as the reference image)" + echo "--brainmask (optional, the binary brain mask in the reference space)" + echo "--queue (optional, the queue jobs should be submitted to. Run locally if not specified.)" + echo "--njobs (optional, the number of jobs to run in parallel locally.)" + echo "" + echo "" + exit 1 +} + +[ "$1" = "" ] && Usage + +if [ -z "$FSLDIR" ]; then + echo "Environment variable $FSLDIR does not exist. Please set up FSLDIR. " + exit 1 +fi + +## path of the script +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +RESOURCES_DIR="$(dirname $SCRIPT_DIR)/resources" + +### make file path absolute +get_abs_file_path() { + file_path=$1 + + # Check if realpath is available + if command -v realpath > /dev/null 2>&1; then + abs_path=$(realpath "$file_path") + # Fallback to readlink -f if realpath is not available + elif command -v readlink > /dev/null 2>&1; then + abs_path=$(readlink -f "$file_path") + else + echo "Error: realpath and readlink commands are not available." + return 1 + fi + + echo "$abs_path" +} + +# default njobs +njobs=1 + +### parse arguments +for arg in "$@" +do + case $arg in + --help) + Usage + ;; + --ref=*) + ref="${arg#*=}" + shift + ;; + --out=*) + out="${arg#*=}" + shift + ;; + --warp=*) + warp="${arg#*=}" + shift + ;; + --aparc=*) + aparc="${arg#*=}" + shift + ;; + --brainmask=*) + brainmask="${arg#*=}" + shift + ;; + --queue=*) + queue="${arg#*=}" + shift + ;; + --njobs=*) + njobs="${arg#*=}" + shift + ;; + *) + echo "Unknown option: $arg" + Usage + exit 1 + ;; + esac +done + +### Check if required arguments are provided +if [ -z "$ref" ]; then + echo "Error: Missing required argument --ref" + exit 1 +elif [ ! -f $ref ]; then + echo "Error: $ref not exist" + exit 1 +else + refpath=$(get_abs_file_path "$ref") +fi + +if [ -z "$warp" ]; then + echo "Error: Missing required argument --warp" + exit 1 +elif [ ! -f $warp ]; then + echo "Error: $warp not exist" + exit 1 +fi + +if [ -z "$aparc" ]; then + echo "Error: Missing required argument --aparc" + exit 1 +elif [ ! -f $aparc ]; then + echo "Error: $aparc not exist" + exit 1 +fi + +if [ ! -z "$queue" ]; then + if which fsl_sub > /dev/null 2>&1; then + echo "Queue specified. Will submit jobs to $queue." + else + echo "fsl_sub is not installed. Will run jobs locally." + #exit 1 + queue="" + fi +fi + +if [ -z "$out" ]; then + out=$(dirname $refpath)/roi + echo "output directory not specified. create $out to store anatomical masks in reference space" +fi + +### create output directory +if [ ! -d $out ]; then + mkdir -p $out +fi +### create dir for left and right hemisphere +for hemi in left right; do + if [ ! -d $out/$hemi ]; then + mkdir $out/$hemi + fi +done + +if [ ! -z "$aparc" ]; then + aparc_basename=$(basename "$aparc") + if [[ "$aparc" == *.mgz ]]; then + if [ -z "$FREESURFER_HOME" ]; then + echo "If you feed in the aparc.a2009s+aseg in *.mgz format, please set up FREESURFER_HOME. " + exit 1 + fi + $FREESURFER_HOME/bin/mri_convert $aparc $out/${aparc_basename%.*}.nii.gz + $FSLDIR/bin/flirt -in $out/${aparc_basename%.*}.nii.gz -ref $ref -out $out/${aparc_basename%.*}.nii.gz -applyxfm -usesqform -interp nearestneighbour + aparc="$out/${aparc_basename%.*}.nii.gz" + elif [[ "$aparc" == *.nii ]] || [[ "$aparc" == *.nii.gz ]]; then + $FSLDIR/bin/flirt -in $aparc -ref $ref -out $out/${aparc_basename%.*}.nii.gz -applyxfm -usesqform -interp nearestneighbour + aparc="$out/${aparc_basename%.*}.nii.gz" + else + echo "Invalid aparc.a2009s+aseg file. Please use *.mgz or *.nii.gz/*.nii file." + exit 1 + fi + #### cerebellum + echo "echo Create cerebellar ROIs based on the provided $aparc file..." > $out/create_masks_cmds + echo "$FSLDIR/bin/fslmaths $aparc -thr 6 -uthr 8 -bin $out/left/cerebellum" >> $out/create_masks_cmds + echo "$FSLDIR/bin/fslmaths $aparc -thr 45 -uthr 47 -bin $out/right/cerebellum" >> $out/create_masks_cmds + echo "$FSLDIR/bin/fslmaths $aparc -thr 7 -uthr 7 -bin $out/right/cerebellum_target" >> $out/create_masks_cmds + echo "$FSLDIR/bin/fslmaths $aparc -thr 46 -uthr 46 -bin $out/left/cerebellum_target" >> $out/create_masks_cmds + echo "$FSLDIR/bin/fslmaths $aparc -thr 24 -uthr 24 -bin $out/csf" >> $out/create_masks_cmds + ### left hemisphere cortical masks + echo "echo Create left hemisphere cortical ROIs based on the provided $aparc file..." >> $out/create_masks_cmds + for k in {11101..11175}; do + kk=`expr $k - 11100` + echo "$FSLDIR/bin/fslmaths $aparc -thr $k -uthr $k -bin $out/left/$kk" >> $out/create_masks_cmds + done + echo "$FSLDIR/bin/fslmaths $aparc -thr 11100 -uthr 12175 -bin $out/left/cortex" >> $out/create_masks_cmds + ### right hemisphere cortical masks + echo "echo Create right hemisphere cortical ROIs based on the provided $aparc file..." >> $out/create_masks_cmds + for k in {12101..12175}; do + kk=`expr $k - 12100` + echo "$FSLDIR/bin/fslmaths $aparc -thr $k -uthr $k -bin $out/right/$kk" >> $out/create_masks_cmds + done + echo "$FSLDIR/bin/fslmaths $aparc -thr 11100 -uthr 12175 -bin $out/right/cortex" >> $out/create_masks_cmds +fi + +#$FSLDIR/bin/fslmaths $out/right/cortex -add $out/left/cortex -bin $out/cortex + +for hemi in left right; do + echo "echo Create masks for $hemi hemisphere..." >> $out/create_masks_cmds + ### create white matter masks - SCPCT tract + for tract in scpct_mask{1..15}; do + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/$tract -w $warp -o $out/$hemi/$tract --interp=nn" >> $out/create_masks_cmds + done + ### STR + for tract in str_mask{1..10}; do + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/$tract -w $warp -o $out/$hemi/$tract --interp=nn" >> $out/create_masks_cmds + done + ### ATR + for tract in atr_mask{1..8}; do + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/$tract -w $warp -o $out/$hemi/$tract --interp=nn" >> $out/create_masks_cmds + done + ### AR + for tract in ar_mask{1..8}; do + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/$tract -w $warp -o $out/$hemi/$tract --interp=nn" >> $out/create_masks_cmds + done + ### OR + for tract in or_mask{1..10}; do + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/$tract -w $warp -o $out/$hemi/$tract --interp=nn" >> $out/create_masks_cmds + done + ### fornix + for tract in fx_mask{1..10}; do + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/$tract -w $warp -o $out/$hemi/$tract --interp=nn" >> $out/create_masks_cmds + done + ### M1 + for tract in to_precentral_mask{1..12}; do + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/$tract -w $warp -o $out/$hemi/$tract --interp=nn" >> $out/create_masks_cmds + done + ### S1 + for tract in to_postcentral_mask{1..12}; do + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/$tract -w $warp -o $out/$hemi/$tract --interp=nn" >> $out/create_masks_cmds + done + + ### thalamus - although it's recommend to use FSL's MIST + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/tha -w $warp -o $out/$hemi/tha --interp=nn" >> $out/create_masks_cmds + + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/vim -w $warp -o $out/$hemi/vim" >> $out/create_masks_cmds + + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/exclusion -w $warp -o $out/$hemi/exclusion --interp=nn" >> $out/create_masks_cmds + + if [ -z "$aparc" ]; then + ### cerebellum - although it's recommend to use freesurfer's segmentation + ##### MNI_roi/$hemi/cerebellum_target is the contralateral cerebellar target + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/cerebellum_target -w $warp -o $out/$hemi/cerebellum_target --interp=nn" >> $out/create_masks_cmds + ##### MNI_roi/$hemi/cerebellum is ipsilateral cerebellum to avoid + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/cerebellum -w $warp -o $out/$hemi/cerebellum --interp=nn" >> $out/create_masks_cmds + ### cortical parcels - if no aparc.a2009s+aseg file is provided + for k in {1..75}; do + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/$k -w $warp -o $out/$hemi/$k --interp=nn" >> $out/create_masks_cmds + done + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/cortex -w $warp -o $out/$hemi/cortex --interp=nn" >> $out/create_masks_cmds + fi +done + +# SCPCT-related ROIs +echo "echo Create SCPCT-related ROIs..." > $out/create_masks_scpct_cmds + +### if brain mask not provided, use standard +if [ -z "$brainmask" ]; then + #echo "echo brainmask not provided. use standard brain mask MNI152_T1_1mm_brain_mask instead..." >> $out/create_masks_scpct_cmds + echo "$FSLDIR/bin/applywarp -r $ref -i $FSLDIR/data/standard/MNI152_T1_1mm_brain_mask -w $warp -o $out/brain_mask --interp=nn" >> $out/create_masks_scpct_cmds + brainmask="$out/brain_mask" +fi + +for hemi in left right; do + ### SCPCT + echo "$FSLDIR/bin/applywarp -r $ref -i $RESOURCES_DIR/MNI_roi/$hemi/SCPCT -w $warp -o $out/$hemi/SCPCT" >> $out/create_masks_scpct_cmds + echo "$FSLDIR/bin/fslmaths $out/$hemi/SCPCT -thr 0.0001 -bin $out/$hemi/SCPCT_bin" >> $out/create_masks_scpct_cmds + ### if brain mask not provided, use standard + #if [ -z "$brainmask" ]; then + #echo "$FSLDIR/bin/fslmaths $out/brain_mask -rem $out/$hemi/SCPCT_bin -bin -rem $out/$hemi/tha -bin $out/$hemi/stop_for_scpct" >> $out/create_masks_scpct_cmds + #else + echo "$FSLDIR/bin/fslmaths $brainmask -rem $out/$hemi/SCPCT_bin -bin -rem $out/$hemi/tha -bin $out/$hemi/stop_for_scpct" >> $out/create_masks_scpct_cmds + #fi +done + +# execute locally or submit the jobs... +if [ -z "$queue" ]; then + if [[ $njobs -eq 1 ]]; then + bash "$out/create_masks_cmds" + else + "$SCRIPT_DIR/run_parallel" "$out/create_masks_cmds" $njobs + fi + bash "$out/create_masks_scpct_cmds" +else + fsl_sub -q $queue -N create_masks -l $out -t "$out/create_masks_cmds" + fsl_sub -q $queue -N create_masks_scpct -l $out "$out/create_masks_scpct_cmds" + echo "jobs submitted." +fi diff --git a/scripts/create_tracts b/scripts/create_tracts new file mode 100755 index 0000000000000000000000000000000000000000..873a496da6e1f8f120a278fe13d8318111826992 --- /dev/null +++ b/scripts/create_tracts @@ -0,0 +1,260 @@ +#!/bin/bash + +Usage() { + echo "" + echo "Usage: ./create_tracts.sh --inputdir=/path/to/roi_folder --samples=/path/to/data.bedpostX --seed=/path/to/seed.nii.gz" + echo "" + echo "creates tracts for the specified seed, using fiber samples estimated via BedpostX" + echo "if seed is not specified, use tha.nii.gz as default seed under the input ROI folder." + echo "" + echo "<options>:" + echo "--samples BedpostX directory that stores fibre orientation files, e.g., data.bedpostX" + echo "--inputdir Input directory that stores left and right hemisphere anatomical masks in native T1 space" + #echo "--hemi Left or right hemisphere" + echo "--seed Optional, the seed mask, usually in the individual T1 native space - default is tha.nii.gz under inputdir" + echo "--xfm Optional, the transformation matrix that maps the reference T1 space to the diffusion space" + echo "--ref Optional, the reference image, usually in the individual T1 native space" + echo "--out Optional, the output directory to store tract density maps - default is inputdir/hemi/streamlines" + echo "--brainmask Optional, the binary brain mask in the reference space)" + echo "--nsteps Optional, number of steps per sample - default=2000" + echo "--cthr Optional, curvature threshold - default=0.2" + echo "--fibthresh Optional, volume fraction before subsidary fibre orientations are considered - default=0.01" + echo "--nsamples Optional, number of samples - default=10000" + echo "--steplength Optional, steplength in mm - default=0.5" + echo "--sampvox Optional, sample random points within a sphere with radius x mm from the center of the seed voxels" + echo "--distthresh Optional, discards samples shorter than this threshold (in mm - default=0)" + echo "--gpu Optional, use the gpu version of probtractx2" + echo "--queue Optional, the queue jobs should be submitted to. Run locally if not specified." + exit 1 +} + +[ "$1" = "" ] && Usage + +for arg in "$@" +do + if [ "$arg" == "--help" ]; then + Usage + fi +done + +if [ -z "$FSLDIR" ]; then + echo "Environment variable $FSLDIR does not exist. Please set up FSLDIR. " + exit 1 +fi + +get_abs_file_path() { + file_path=$1 + + # Check if realpath is available + if command -v realpath > /dev/null 2>&1; then + abs_path=$(realpath "$file_path") + # Fallback to readlink -f if realpath is not available + elif command -v readlink > /dev/null 2>&1; then + abs_path=$(readlink -f "$file_path") + else + echo "Error: realpath and readlink commands are not available." + return 1 + fi + + echo "$abs_path" +} + +### some default values +nsteps=2000 +verbose=2 +cthr=0.2 +steplength=0.5 +nsamples=10000 +fibthresh=0.01 +sampvox=1.0 +distthresh=0 +prog="probtrackx2" +### parse arguments +for arg in "$@" +do + case $arg in + --help) + Usage + ;; + --seed=*) + seed="${arg#*=}" + shift + ;; + --ref=*) + ref="${arg#*=}" + shift + ;; + --samples=*) + samples="${arg#*=}" + shift + ;; + --out=*) + out="${arg#*=}" + shift + ;; + --inputdir=*) + inputdir="${arg#*=}" + shift + ;; + --brainmask=*) + brainmask="${arg#*=}" + shift + ;; + --xfm=*) + xfm="${arg#*=}" + shift + ;; + --nsteps=*) + nsteps="${arg#*=}" + shift + ;; + --cthr=*) + cthr="${arg#*=}" + shift + ;; + --verbose=*) + verbose="${arg#*=}" + shift + ;; + --steplength=*) + steplength="${arg#*=}" + shift + ;; + --nsamples=*) + nsamples="${arg#*=}" + shift + ;; + --fibthresh=*) + fibthresh="${arg#*=}" + shift + ;; + --sampvox=*) + sampvox="${arg#*=}" + shift + ;; + --distthresh=*) + distthresh="${arg#*=}" + shift + ;; + --gpu) + prog="probtrackx2_gpu" + shift + ;; + --queue=*) + queue="${arg#*=}" + shift + ;; + *) + echo "Unknown option: $arg" + Usage + exit 1 + ;; + esac +done + +### Check if required arguments are provided +if [ -z "$inputdir" ]; then + echo "Error: Missing required argument --inputdir, the folder that contains anatomical masks" + exit 1 +elif [ ! -d $inputdir ]; then + echo "$inputdir does not exist. " + exit 1 +else + refpath=$(get_abs_file_path "$inputdir") +fi + +if [ -z "$samples" ]; then + echo "Error: Missing required argument --samples, " + echo "Please specify the bedpostX directory that stores fibre orientation files, e.g., data.bedpostX" + exit 1 +fi + +#if [ -z "$hemi" ]; then + #echo "Error: Missing required argument --hemi, left or right" + #exit 1 +#fi +if [ ! -z "$queue" ]; then + if which fsl_sub > /dev/null 2>&1; then + echo "Queue specified. Will submit jobs to $queue." + else + echo "fsl_sub is not installed. Will run jobs locally." + #exit 1 + queue="" + fi +fi + +if [ -z "$out" ]; then + out=$refpath/streamlines + echo "output directory not specified. create $out to store tract density maps in reference space" +fi + +if [ -z "$seed" ]; then + echo "Seed mask not specified. default using $inputdir/tha.nii.gz..." + seed=$inputdir/tha + if [ ! -f $seed.nii.gz ] && [ ! -f $seed.nii ]; then + echo "$seed not found." + exit 1 + fi +fi + +if [ -z "$brainmask" ]; then + brainmask=$samples/nodif_brain_mask + if [ ! -f $brainmask.nii.gz ] && [ ! -f $brainmask.nii ]; then + echo "$brainmask.nii.gz or $brainmask.nii does not exist under $samples. Creating one..." + fslmaths $samples/mean_fsumsamples -thr 0 -bin $brainmask + fi +fi + +### create output directory +if [ ! -d $out ]; then + mkdir -p $out +fi + +## create a list containing the anatomical masks +echo $inputdir/ar_mask{1..8}.nii.gz > $inputdir/targets.txt; +echo $inputdir/or_mask{1..10}.nii.gz >> $inputdir/targets.txt; +echo $inputdir/str_mask{1..10}.nii.gz >> $inputdir/targets.txt; +echo $inputdir/atr_mask{1..8}.nii.gz >> $inputdir/targets.txt; +echo $inputdir/fx_mask{1..10}.nii.gz >> $inputdir/targets.txt; +echo $inputdir/to_precentral_mask{1..12}.nii.gz >> $inputdir/targets.txt; +echo $inputdir/to_postcentral_mask{1..12}.nii.gz >> $inputdir/targets.txt; +echo $inputdir/{1..75}.nii.gz >> $inputdir/targets.txt; + +opts="-x $seed -s $samples/merged -m $brainmask --dir=$out" +opts="$opts --verbose=$verbose --cthr=$cthr --nsteps=$nsteps --steplength=$steplength --nsamples=$nsamples --fibthresh=$fibthresh" +opts="$opts --distthresh=$distthresh --sampvox=$sampvox -l --onewaycondition --forcedir --pd --opd --os2t --modeuler" + +if [ ! -z "$xfm" ]; then + opts="$opts --xfm=$xfm" + if [ ! -z "$ref" ]; then + opts="$opts --seedref=$ref" + else + opts="$opts --seedref=$seed" + fi +fi + +cmd="$FSLDIR/bin/$prog $opts" +cmd="$cmd --targetmasks=$inputdir/targets.txt" +cmd="$cmd --avoid=$inputdir/cerebellum --stop=$inputdir/cortex" + +### run tractography... +echo $cmd > $out/create_tracts_cmds; +#eval $cmd; + +echo $inputdir/scpct_mask{1..15}.nii.gz > $inputdir/targets.txt; +echo $inputdir/cerebellum_target.nii.gz >> $inputdir/targets.txt; +cmd="$FSLDIR/bin/$prog $opts" +cmd="$cmd --targetmasks=$inputdir/targets.txt" +cmd="$cmd --avoid=$inputdir/exclusion --stop=$inputdir/stop_for_scpct" +echo $cmd >> $out/create_tracts_cmds; +#eval $cmd; +if [ -z "$queue" ]; then + bash $out/create_tracts_cmds +else + if gpu; then + fsl_sub -q $queue -c cuda -N create_tracts -l $out -t $out/create_tracts_cmds + else + fsl_sub -q $queue -N create_tracts -l $out -t $out/create_tracts_cmds + fi +fi + diff --git a/scripts/localise b/scripts/localise new file mode 100755 index 0000000000000000000000000000000000000000..15fb3606115d8ab71f1f82bf187f2858db36111e --- /dev/null +++ b/scripts/localise @@ -0,0 +1,18 @@ +#!/usr/bin/env python +from localise.utils import predict_mode, train_mode +from localise.args import parse_arguments + +if __name__ == "__main__": + args = parse_arguments() + if args.predict: + predict_mode(subject=args.subject, mask=args.mask, structure=args.structure, + target_path=args.target_path, target_list=args.target_list, + data=args.data, atlas=args.atlas, out=args.out, + model=args.model, spatial=args.spatial, data_type=args.data_type) + elif args.train: + train_mode(args.subject, args.mask, args.label, + args.target_path, args.target_list, + args.data, args.atlas, args.out_model, + args.spatial, args.epochs) + else: + raise ValueError("Exactly one of --train or --predict must be specified.") \ No newline at end of file diff --git a/scripts/run_parallel b/scripts/run_parallel new file mode 100755 index 0000000000000000000000000000000000000000..9977328c54a8e9083698cecf297e17cc3902db5d --- /dev/null +++ b/scripts/run_parallel @@ -0,0 +1,26 @@ +#!/usr/bin/env python3 + +import sys +import subprocess +from concurrent.futures import ProcessPoolExecutor + + +def run_command(cmd): + subprocess.run(cmd, shell=True) + +def main(): + if len(sys.argv) < 2: + print("Usage: run_parallel <path_to_commands_file>") + sys.exit(1) + + commands_file = sys.argv[1] + num_parallel_jobs = int(sys.argv[2]) + + with open(commands_file, "r") as f: + commands = [line.strip() for line in f] + + with ProcessPoolExecutor(max_workers=num_parallel_jobs) as executor: + executor.map(run_command, commands) + +if __name__ == "__main__": + main() diff --git a/tests/test_data.py b/tests/test_data.py index d5fda67b4a17bf133e16e8efe2c69ee2e59c7f3e..616c219c463b7ddd48dab746461511966ecd0633 100644 --- a/tests/test_data.py +++ b/tests/test_data.py @@ -26,7 +26,7 @@ def test_load_features(): mask_name='roi/left/tha_small.nii.gz', target_path='streamlines/left', atlas='roi/left/atlas.nii.gz', power=[0.5, 1, 2], - target_list=['seeds_to_11101_1.nii.gz', 'seeds_to_11102_1.nii.gz']) + target_list=f'{path_to_data}/models/target_list.txt') assert batch.X.shape[1] == 7 subject='100610' @@ -44,22 +44,29 @@ def test_load_features(): assert batch.f.shape[0] == len(gamma) assert batch.f.shape[1] == batch.X.shape[0] - batch = load_features(subject=os.path.join(f'{path_to_data}', subject), + batch = load_features(subject=[os.path.join(f'{path_to_data}', subject)], mask_name='roi/left/tha_small.nii.gz', power=power, gamma=gamma, data='streamlines/left/features75.npy') - assert batch.X.shape[1] == len(target_list) * len(power) - assert batch.f.shape[0] == len(gamma) - assert batch.f.shape[1] == batch.X.shape[0] - + assert batch[0].X.shape[1] == len(target_list) * len(power) + assert batch[0].f.shape[0] == len(gamma) + assert batch[0].f.shape[1] == batch[0].X.shape[0] + + def test_load_labels(): subject=os.path.join(f'{path_to_data}','100610') mask_name='roi/left/tha_small.nii.gz' label_name='high-quality-labels/left/labels.nii.gz' labels = load_labels(subject, mask_name, label_name) assert list(labels.shape) == [4142, 2] + + subjects = [os.path.join(f'{path_to_data}', subject) for subject in ['100610', '100408']] + labels = load_labels(subject=subjects, mask_name=mask_name, label_name=label_name) + assert len(labels) == 2 + assert labels[0].shape[0] == 4142 + def test_load_data(): mask_name='roi/left/tha_small.nii.gz' label_name='high-quality-labels/left/labels.nii.gz' @@ -76,6 +83,19 @@ def test_load_data(): assert isinstance(batch[0], FlattenedCRFBatchTensor) assert len(batch) == 2 + subjects = [os.path.join(f'{path_to_data}', subject) for subject in ['100610', '100408', '100307']] + batches = load_data(subject=subjects, + mask_name=mask_name, + label_name=label_name, + power=[1, 2], + atlas='roi/left/atlas.nii.gz', + target_path='streamlines/left', + target_list=['seeds_to_11101_1.nii.gz', 'seeds_to_11102_1.nii.gz']) + assert len(batches) == 3 + assert len(batches[0]) == 2 + assert isinstance(batches[2][0], FlattenedCRFBatchTensor) + + def test_shuffleddataloader(): mask_name='roi/left/tha_small.nii.gz' label_name='high-quality-labels/left/labels.nii.gz' diff --git a/tests/test_data/100206/high-quality-labels/left/labels.nii.gz b/tests/test_data/100206/high-quality-labels/left/labels.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..9f59dbc6193d296e17fa82a9fcd31758ba5b9e4e Binary files /dev/null and b/tests/test_data/100206/high-quality-labels/left/labels.nii.gz differ diff --git a/tests/test_data/100206/roi/left/atlas.nii.gz b/tests/test_data/100206/roi/left/atlas.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..c4ccd5dcd9f0eb32b13c70222ccbface48ba681a Binary files /dev/null and b/tests/test_data/100206/roi/left/atlas.nii.gz differ diff --git a/tests/test_data/100206/roi/left/tha_small.nii.gz b/tests/test_data/100206/roi/left/tha_small.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0cf4a11c90bb21f656f0a25722868e7d375cfd32 Binary files /dev/null and b/tests/test_data/100206/roi/left/tha_small.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/X113_small_1mm.npy b/tests/test_data/100206/streamlines/left/X113_small_1mm.npy new file mode 100644 index 0000000000000000000000000000000000000000..ef3bfeb6f594073ea4285d9083d12518538b3c03 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/X113_small_1mm.npy differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11101.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11101.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7fa009fa95c77fdc87d250ce4b490753b1c4f385 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11101.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11102.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11102.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..3250d8d64256e8b9589e02f120d6091fadfb2826 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11102.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11103.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11103.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8a5d989e107d243c93899019d3b97bfb1234885f Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11103.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11104.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11104.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..53fa8d9941ef2c02d7e4ca082c7ad6135d1764a2 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11104.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11105.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11105.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d8834d7ec0b14898335e902e5e0dfd69d6ecf905 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11105.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11106.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11106.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2313c2e7c7db56b0286c91a6b18111f4a87b9fac Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11106.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11107.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11107.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b5562b3954ba3191b0eba3892e2f9b6b017bc4e5 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11107.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11108.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11108.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..c8f7c122b439fb39eaf9e98ca969e2f2b22d2131 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11108.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11109.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11109.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a8e9766ed05a091fc87202df986936e23edae80a Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11109.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11110.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11110.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..196eb58a7e7d34517c5c9b2d6c178f4f0a510c3f Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11110.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11111.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11111.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..c2a61c9f8ed1fe66a6df50f4ad8a39dd086f0f3b Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11111.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11112.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11112.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..61408fc7804f06275a4ee3b35ca715494315f64f Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11112.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11113.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11113.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..307f5def9e09953707f6ca8b64b21bb6a4c00261 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11113.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11114.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11114.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..f74f454a43ec02f2ef8560a0b24bada1cf545169 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11114.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11115.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11115.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ea6e87817d4d923a2cab08ea411bbb4fd752e2d3 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11115.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11116.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11116.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1aff525ac06f9ea3ca8978e22ec59940457ae242 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11116.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11117.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11117.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..8a5487ffa906b9eed9a67c639bede8aaaca4b411 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11117.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11118.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11118.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a077ae8255954f4f70fc5873afa546b4f95cdd7b Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11118.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11119.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11119.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..03103404831c64aea748935f65377bb37bc995d7 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11119.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11120.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11120.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7eb41d69730c540d8d59813b4f2a720308547d2e Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11120.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11121.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11121.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..79aaa28a9de5edf962ac8d7d7ad96a1ef8745995 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11121.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11122.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11122.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..584fbb1ff68b26d5ed95e1c365e052ffdf2d3bc1 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11122.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11123.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11123.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..fa327af9e147f782e93ea4277dc35a2f6647886f Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11123.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11124.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11124.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7afda9b02192fa044910236600f1197bfa6f3a30 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11124.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11125.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11125.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b849976f7e787b3af09bdd1735e19d2efe985fe2 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11125.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11126.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11126.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..3c128015d812d0861cecaae50798f8767f63a555 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11126.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11127.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11127.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ad20cc2fb16da9faea1d0151d8110537db816681 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11127.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11128.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11128.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..6d410c0d4563dfc05f94d5f53cfde9263f36bbc9 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11128.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11129.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11129.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..25af7f19545b2bd4900053caa4e977ff317b1f2a Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11129.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11130.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11130.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5a67722034fcf77f79c0026d8b76d3eab3db1cdb Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11130.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11131.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11131.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4fc7473b0c597ef9eda9325e00a5f09f9c2f1317 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11131.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11132.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11132.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..22c3ceb19cd503ad9339641bd18cdf4a3f88447c Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11132.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11133.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11133.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4ff4d2e40fc42a2e8aad312c85cd0a30632c3815 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11133.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11134.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11134.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5652071f5f592668a3aea9345f97e2cf4c4c22fe Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11134.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11135.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11135.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0313f83859420ce02d67cb4376fcad21c8a74964 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11135.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11136.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11136.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d595feb3058429adc29d1c6418796ca7392adcda Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11136.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11137.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11137.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..9881177f8d55cc694884c9e0ea62064cce8a8b10 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11137.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11138.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11138.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..f58d0eb85d1c7b7d7e782b1a97ffe8fb945f0738 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11138.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11139.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11139.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5aa4a014865bde00d677f95cbafc4945bd08f477 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11139.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11140.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11140.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e7ddd838e37629340ea4c6af802374eeee5ee7b8 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11140.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11141.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11141.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..624185016adbadb2e4e656a8da55fbbbde54941c Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11141.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11142.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11142.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..576c2ce62efec7df09b38261009707cb39df2a2e Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11142.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11143.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11143.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a3add64bf89afe345c2f63662fbb43a3721e81b1 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11143.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11144.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11144.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..43fe8fe9024c788023ab285f21db7011b7ebc081 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11144.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11145.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11145.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..364ab072e58cb7fddedbb917f737d20cec7d21cc Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11145.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11146.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11146.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..270281c23576bf0245865a268ba1b3f5042c80ae Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11146.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11147.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11147.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..adb8f243ef6a289826fd378a529a0766b9fed103 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11147.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11148.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11148.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..c6a22801689e7b90d7ca224a52e4aa79373e50c4 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11148.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11149.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11149.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..fe69ce3bca1877d536d0a352991d50c76ec0d8db Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11149.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11150.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11150.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5f5b1fb77c5ab04b9f308d701314549da4def4bd Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11150.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11151.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11151.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..c76b6f76b1f73a521ca11e8133a629a02a06b623 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11151.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11152.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11152.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d826ce1a5e06d3f19d8f1b6ea0d4c2bdde4d0f3f Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11152.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11153.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11153.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..12a4fd6221344aadf04fff49d2b00198c48cd5d3 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11153.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11154.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11154.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1c0bd6da8d9d7ab8be679bbe8b1a4e649c76afff Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11154.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11155.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11155.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d8c58a8fcd368bcf9cd8d2a33c1bc0386bcc8a8b Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11155.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11156.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11156.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ba577f412ff289593a8a6197d74e2879a16db858 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11156.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11157.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11157.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..abf25d2687b9f9b57f659d2a53d2100608e48069 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11157.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11158.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11158.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..43bc209c4109334dba9414c9e50c21ecff977a12 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11158.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11159.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11159.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..1b1ca0a7ea52035188f400e5c666a297d54cfb63 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11159.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11160.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11160.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..3ddfef63e2addfdba9c00fd2eda7d85aa0f611b0 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11160.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11161.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11161.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..fb6a877c43c02c2e347f44fad9b5cf61c27a488a Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11161.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11162.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11162.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a2bd82381b639ecf4304c4b10b383fafc37dcccc Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11162.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11163.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11163.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..410b3eaa7b53c4521f8c4eef941d18304d508870 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11163.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11164.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11164.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..821f0645d1b0e6f2c3754ee02806f90e6aa2c540 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11164.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11165.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11165.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..6a0eca8bede4d43645782b69969113057ece50c1 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11165.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11166.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11166.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..88c5e1cfa7ddbbecf80df821a570f6bbfa63bd08 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11166.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11167.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11167.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b82f1fda41dc1b95f4b31339746657b95ede111b Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11167.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11168.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11168.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7cc89c3d4ea816399542a3e826d54605bd8c2fb5 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11168.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11169.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11169.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..6128f32dc66a85a473e2de3ff130da0a1e2a685c Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11169.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11170.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11170.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7234a53c581bd283dca0721e43d66c408ff37ca6 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11170.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11171.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11171.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..257e367c9f69a7349ff3d79704d1712274d44b55 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11171.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11172.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11172.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..27ce8f35605da05660b15cc41577cd52662576e5 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11172.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11173.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11173.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4b9e93a3b20e40a7ccef8a09763615c7463a3cef Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11173.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11174.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11174.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0b7f470da705e99de8c9c23faac5be0eba8a4ce3 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11174.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_11175.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_11175.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..fcf2e7317c796a049b2421c6e1013456e1de353a Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_11175.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_SCPCT_brainstem_60.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_SCPCT_brainstem_60.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..261a552f68e4709d87a2ac283bb520d3b13fb53d Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_SCPCT_brainstem_60.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_ar1.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_ar1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e16e9954cb1e74b732267eda2c1e01c8433f78a8 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_ar1.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_ar2.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_ar2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..dddac592fe762fa66cc2b77d2cffa3b98922a30a Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_ar2.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_ar3.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_ar3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..da96bc3bf60395bf44f9a74a5a82f8c82b7bcf19 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_ar3.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_ar4.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_ar4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..49b36ea1c754d72bf1d7cba3ad8c330e1069aedc Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_ar4.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_ar5.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_ar5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ce264f6e29bb94a3798f49ed7beff9d1a0f87718 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_ar5.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_atr1.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_atr1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..69b0019880db910cee313da56d5015416afa48d7 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_atr1.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_atr2.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_atr2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e472855f68dbde0b7825461e976e215bc893c3ea Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_atr2.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_atr3.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_atr3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..06ea33c23685d58868f643641c6378009d3300ab Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_atr3.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_atr4.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_atr4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..b2ebf429be017efb02dcf02ab5c505224eb4e99c Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_atr4.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_atr5.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_atr5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..59d9ed0b563ae5d5529896b1953d4d0e972690cc Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_atr5.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_atr6.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_atr6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..10c7b864cf6fd4f2887892108eadd9179b392fcf Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_atr6.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_contra_cerebellum_wm.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_contra_cerebellum_wm.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..576c2ce62efec7df09b38261009707cb39df2a2e Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_contra_cerebellum_wm.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_or1.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_or1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..45a19739ee4d7a3cb0dfacef5109639dfb246904 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_or1.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_or2.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_or2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..bf9246600113fa23217fbdbcc3497f9c01208818 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_or2.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_or3.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_or3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..9809a7cdac2ee3123d17787c378f405e4b9913eb Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_or3.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_or4.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_or4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..0801cdc1387a8972b19b9bfcb5f3479b306552de Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_or4.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_or5.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_or5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..39c954758cdbd23785d27664e830dc83118ec41c Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_or5.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_or6.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_or6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..e97d34c9bfca2505a87b9b72df68baf9832c2456 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_or6.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_scpct1.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_scpct1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..c9cecd897d4f761ca529129282191fe64ff712cc Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_scpct1.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_scpct2.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_scpct2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..92b5b2c392e5009d5b1154e3c36cbf7b884f994b Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_scpct2.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_scpct3.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_scpct3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7b3e4fd676c9f6d03d7a869edddb4f718dc70197 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_scpct3.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_str1.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_str1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..4574db6133c33c43675965c0e970c591fa358809 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_str1.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_str2.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_str2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..861347a78ecd3d5bd391acf039cb56b427810ed5 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_str2.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_str3.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_str3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ef544740c0330bdce26669bbfe36ef0123571b6f Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_str3.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_str4.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_str4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..091b4657c2df1973ab5cc80fbc54b41acfb42e77 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_str4.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_str5.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_str5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..7a75c8695bbe6ff8383aa68138ac32b3958025a2 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_str5.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_str6.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_str6.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..f6f46bb6b20d433797e6d98ea202e80ae248f93e Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_str6.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral1.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..d443f25758a803a53caacfd8550478547046d54e Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral1.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral2.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5d2ceff6e4ca95cc4b2c20be6400fed0ce90adc9 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral2.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral3.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..291f3cf20581374a518c375c76e959aaf8cee737 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral3.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral4.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..ef934b9e0ec25b166ad92e2d853c3c91557d5d45 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral4.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral5.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..5374b8a123fedcebd80742063e598601ebd9f8ad Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_to_postcentral5.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_to_precentral1.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_to_precentral1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..2faed8c48674899bc023d2e2cc8d8ef814ec187d Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_to_precentral1.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_to_precentral2.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_to_precentral2.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..dd7db860d351f5b0290120b0da6933ddb92fd817 Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_to_precentral2.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_to_precentral3.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_to_precentral3.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..25e816d18d04e1958d3a667c67b1d553fae5b5da Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_to_precentral3.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_to_precentral4.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_to_precentral4.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..24743fb7839101ed2e1a2d76a4e509e4b3be373f Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_to_precentral4.nii.gz differ diff --git a/tests/test_data/100206/streamlines/left/seeds_to_to_precentral5.nii.gz b/tests/test_data/100206/streamlines/left/seeds_to_to_precentral5.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..767db67dc8c914652f0e8d536821ee25ed5d3f1d Binary files /dev/null and b/tests/test_data/100206/streamlines/left/seeds_to_to_precentral5.nii.gz differ diff --git a/tests/test_data/100610/T1w_acpc_dc_restore.nii.gz b/tests/test_data/100610/T1w_acpc_dc_restore.nii.gz new file mode 100755 index 0000000000000000000000000000000000000000..9e5b44faaa0b78adf80d2675b063ffe47b842471 Binary files /dev/null and b/tests/test_data/100610/T1w_acpc_dc_restore.nii.gz differ diff --git a/tests/test_data/100610/T1w_acpc_dc_restore_1.nii.gz b/tests/test_data/100610/T1w_acpc_dc_restore_1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..a9c30c03d17e4ce2f00c25ae108c71e0a552bb02 Binary files /dev/null and b/tests/test_data/100610/T1w_acpc_dc_restore_1.nii.gz differ diff --git a/tests/test_data/100610/aparc.a2009s+aseg.nii.gz b/tests/test_data/100610/aparc.a2009s+aseg.nii.gz new file mode 100755 index 0000000000000000000000000000000000000000..2bb9b1787e6d90426ea6123aa23c1e68060a1512 Binary files /dev/null and b/tests/test_data/100610/aparc.a2009s+aseg.nii.gz differ diff --git a/tests/test_data/100610/standard1_to_native0.7_warp.nii.gz b/tests/test_data/100610/standard1_to_native0.7_warp.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..6557239847e1e678447bec8b4a8a1588b187518d Binary files /dev/null and b/tests/test_data/100610/standard1_to_native0.7_warp.nii.gz differ diff --git a/tests/test_data/104416/T1w_acpc_dc_restore.nii.gz b/tests/test_data/104416/T1w_acpc_dc_restore.nii.gz new file mode 100755 index 0000000000000000000000000000000000000000..1770168407eb0e7eeb1fc8b699b1da7cf62af267 Binary files /dev/null and b/tests/test_data/104416/T1w_acpc_dc_restore.nii.gz differ diff --git a/tests/test_data/104416/T1w_acpc_dc_restore_1.nii.gz b/tests/test_data/104416/T1w_acpc_dc_restore_1.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..75ca40801587e82c25378fd3a131dbff8227dd94 Binary files /dev/null and b/tests/test_data/104416/T1w_acpc_dc_restore_1.nii.gz differ diff --git a/tests/test_data/104416/aparc.a2009s+aseg.nii.gz b/tests/test_data/104416/aparc.a2009s+aseg.nii.gz new file mode 100755 index 0000000000000000000000000000000000000000..36e61f76b03b7fd67da69e7c70a30be1e8447734 Binary files /dev/null and b/tests/test_data/104416/aparc.a2009s+aseg.nii.gz differ diff --git a/tests/test_data/104416/standard1_to_native0.7_warp.nii.gz b/tests/test_data/104416/standard1_to_native0.7_warp.nii.gz new file mode 100644 index 0000000000000000000000000000000000000000..289d6b23f443e2a0c4884c329d2df48c1be1399e Binary files /dev/null and b/tests/test_data/104416/standard1_to_native0.7_warp.nii.gz differ diff --git a/tests/test_data/models/target_list.txt b/tests/test_data/models/target_list.txt new file mode 100644 index 0000000000000000000000000000000000000000..ad08f4973b1f1247b883b339c8a6c38b275af625 --- /dev/null +++ b/tests/test_data/models/target_list.txt @@ -0,0 +1,2 @@ +seeds_to_11101_1.nii.gz +seeds_to_11102_1.nii.gz diff --git a/tests/test_data/models/targets_list113_left.txt b/tests/test_data/models/targets_list113_left.txt new file mode 100644 index 0000000000000000000000000000000000000000..575f2054219dcd350f2ad6d8602ccccf35ca767e --- /dev/null +++ b/tests/test_data/models/targets_list113_left.txt @@ -0,0 +1,113 @@ +seeds_to_11101.nii.gz +seeds_to_11102.nii.gz +seeds_to_11103.nii.gz +seeds_to_11104.nii.gz +seeds_to_11105.nii.gz +seeds_to_11106.nii.gz +seeds_to_11107.nii.gz +seeds_to_11108.nii.gz +seeds_to_11109.nii.gz +seeds_to_11110.nii.gz +seeds_to_11111.nii.gz +seeds_to_11112.nii.gz +seeds_to_11113.nii.gz +seeds_to_11114.nii.gz +seeds_to_11115.nii.gz +seeds_to_11116.nii.gz +seeds_to_11117.nii.gz +seeds_to_11118.nii.gz +seeds_to_11119.nii.gz +seeds_to_11120.nii.gz +seeds_to_11121.nii.gz +seeds_to_11122.nii.gz +seeds_to_11123.nii.gz +seeds_to_11124.nii.gz +seeds_to_11125.nii.gz +seeds_to_11126.nii.gz +seeds_to_11127.nii.gz +seeds_to_11128.nii.gz +seeds_to_11129.nii.gz +seeds_to_11130.nii.gz +seeds_to_11131.nii.gz +seeds_to_11132.nii.gz +seeds_to_11133.nii.gz +seeds_to_11134.nii.gz +seeds_to_11135.nii.gz +seeds_to_11136.nii.gz +seeds_to_11137.nii.gz +seeds_to_11138.nii.gz +seeds_to_11139.nii.gz +seeds_to_11140.nii.gz +seeds_to_11141.nii.gz +seeds_to_11142.nii.gz +seeds_to_11143.nii.gz +seeds_to_11144.nii.gz +seeds_to_11145.nii.gz +seeds_to_11146.nii.gz +seeds_to_11147.nii.gz +seeds_to_11148.nii.gz +seeds_to_11149.nii.gz +seeds_to_11150.nii.gz +seeds_to_11151.nii.gz +seeds_to_11152.nii.gz +seeds_to_11153.nii.gz +seeds_to_11154.nii.gz +seeds_to_11155.nii.gz +seeds_to_11156.nii.gz +seeds_to_11157.nii.gz +seeds_to_11158.nii.gz +seeds_to_11159.nii.gz +seeds_to_11160.nii.gz +seeds_to_11161.nii.gz +seeds_to_11162.nii.gz +seeds_to_11163.nii.gz +seeds_to_11164.nii.gz +seeds_to_11165.nii.gz +seeds_to_11166.nii.gz +seeds_to_11167.nii.gz +seeds_to_11168.nii.gz +seeds_to_11169.nii.gz +seeds_to_11170.nii.gz +seeds_to_11171.nii.gz +seeds_to_11172.nii.gz +seeds_to_11173.nii.gz +seeds_to_11174.nii.gz +seeds_to_11175.nii.gz +seeds_to_to_precentral1.nii.gz +seeds_to_to_precentral2.nii.gz +seeds_to_to_precentral3.nii.gz +seeds_to_to_precentral4.nii.gz +seeds_to_to_precentral5.nii.gz +seeds_to_to_postcentral1.nii.gz +seeds_to_to_postcentral2.nii.gz +seeds_to_to_postcentral3.nii.gz +seeds_to_to_postcentral4.nii.gz +seeds_to_to_postcentral5.nii.gz +seeds_to_ar1.nii.gz +seeds_to_ar2.nii.gz +seeds_to_ar3.nii.gz +seeds_to_ar4.nii.gz +seeds_to_ar5.nii.gz +seeds_to_or1.nii.gz +seeds_to_or2.nii.gz +seeds_to_or3.nii.gz +seeds_to_or4.nii.gz +seeds_to_or5.nii.gz +seeds_to_or6.nii.gz +seeds_to_str1.nii.gz +seeds_to_str2.nii.gz +seeds_to_str3.nii.gz +seeds_to_str4.nii.gz +seeds_to_str5.nii.gz +seeds_to_str6.nii.gz +seeds_to_atr1.nii.gz +seeds_to_atr2.nii.gz +seeds_to_atr3.nii.gz +seeds_to_atr4.nii.gz +seeds_to_atr5.nii.gz +seeds_to_atr6.nii.gz +seeds_to_scpct1.nii.gz +seeds_to_scpct2.nii.gz +seeds_to_scpct3.nii.gz +seeds_to_SCPCT_brainstem_60.nii.gz +seeds_to_contra_cerebellum_wm.nii.gz diff --git a/tests/test_data/models/tmp_model.pth b/tests/test_data/models/tmp_model.pth new file mode 100644 index 0000000000000000000000000000000000000000..bd9e87afd684ab725530f512f0e3b3daf82d36f7 Binary files /dev/null and b/tests/test_data/models/tmp_model.pth differ diff --git a/tests/test_data/models/vim_spatial_model.pth b/tests/test_data/models/vim_spatial_model.pth new file mode 100644 index 0000000000000000000000000000000000000000..c8458989d107dc36e365e89bbbc7de5922929cc2 Binary files /dev/null and b/tests/test_data/models/vim_spatial_model.pth differ diff --git a/tests/test_predict.py b/tests/test_predict.py index e6e3dcd747113f8eea495b0be85bd03f29fb83f8..7b9da9d517b7c1cf815f8e8b6bdd100cca64027b 100644 --- a/tests/test_predict.py +++ b/tests/test_predict.py @@ -18,19 +18,25 @@ batches = [load_data(subject=os.path.join(f'{path_to_data}',subject), target_path='streamlines/left', target_list=target_list, power=[1, 2], gamma=[0, 0.1]) for subject in subjects] + +def test_apply_model(): + m = train(ShuffledDataLoader([batches[0], batches[1]]), + ShuffledDataLoader([batches[2]]), n_epochs=5, spatial_model=False) + predictions = apply_model([X for (X, y) in batches], m) + for prediction, batch in zip(predictions, batches): + assert prediction.shape == batch[1].shape + def test_apply_pretrained_model(): + model_save_path = os.path.join(f'{path_to_data}', 'models', 'tmp_model.pth') + m = train(ShuffledDataLoader([batches[0], batches[1]]), + ShuffledDataLoader([batches[2]]), n_epochs=5, spatial_model=False, + model_save_path=model_save_path) predictions = apply_pretrained_model( [X for (X, y) in batches], - os.path.join(f'{path_to_data}', 'models', 'tmp_model.pth') + os.path.join(f'{path_to_data}', 'models', 'tmp_model.pth'), + spatial_model=False ) for prediction, batch in zip(predictions, batches): assert prediction.shape == batch[1].shape - -def test_train(): - m = train(ShuffledDataLoader([batches[0], batches[1]]), - ShuffledDataLoader([batches[2]]), n_epochs=5, - model_save_path=os.path.join(f'{path_to_data}', 'models', 'tmp_model.pth')) - predictions = apply_model([X for (X, y) in batches], m) - for prediction, batch in zip(predictions, batches): - assert prediction.shape == batch[1].shape \ No newline at end of file + os.remove(model_save_path) \ No newline at end of file diff --git a/tests/test_scripts.py b/tests/test_scripts.py index f76dc40f0b86b34ccd7122a301f2628bf05f8dcd..beea4cf53f78d6a317bd1e4d6e7995a79ce5f972 100644 --- a/tests/test_scripts.py +++ b/tests/test_scripts.py @@ -1,6 +1,7 @@ import pytest from unittest.mock import patch -from localise.scripts.localise import parse_arguments +from localise.args import parse_arguments +from localise.utils import create_masks, create_tracts, connectivity_driven def test_parse_arguments(): @@ -56,3 +57,94 @@ def test_parse_arguments(): with pytest.raises(SystemExit): with patch('argparse._sys.argv', ['localise']): args = parse_arguments() + + +def test_create_masks(): + # Mocking the environment variable + with patch.dict('os.environ', {'FSLDIR': 'some_value'}): + # Mocking the os.path.isfile function to always return True + with patch('os.path.isfile', return_value=True): + # Mocking the subprocess.run function to do nothing + with patch('subprocess.run') as mock_subprocess: + ref = "some_ref_path" + warp = "some_warp_path" + create_masks(ref, warp) + mock_subprocess.assert_called_once() + + # Testing for missing FSLDIR environment variable + with patch.dict('os.environ', {}, clear=True): + with pytest.raises(ValueError, match="FSLDIR environment variable does not exist."): + create_masks("some_ref_path", "some_warp_path") + + # Testing for missing ref file + with patch.dict('os.environ', {'FSLDIR': 'some_value'}): + with patch('os.path.isfile', side_effect=[False, True]): + with pytest.raises(ValueError, match=f"{ref} does not exist."): + create_masks(ref, warp) + + # Testing for missing warp file + with patch.dict('os.environ', {'FSLDIR': 'some_value'}): + with patch('os.path.isfile', side_effect=[True, False]): + with pytest.raises(ValueError, match=f"{warp} does not exist."): + create_masks(ref, warp) + + +def test_create_tracts(): + # Mocking the environment variable + with patch.dict('os.environ', {'FSLDIR': 'some_value'}): + # Mocking the os.path.isdir function to always return True + with patch('os.path.isdir', return_value=True): + # Mocking the subprocess.run function to do nothing + with patch('subprocess.run') as mock_subprocess: + samples_dir = "some_samples_dir_path" + input_dir = "some_input_dir_path" + create_tracts(samples_dir, input_dir) + mock_subprocess.assert_called_once() + + # Testing for missing FSLDIR environment variable + with patch.dict('os.environ', {}, clear=True): + with pytest.raises(ValueError, match="FSLDIR environment variable is missing."): + create_tracts(samples_dir, input_dir) + + # Testing for missing samples_dir + with patch.dict('os.environ', {'FSLDIR': 'some_value'}): + with patch('os.path.isdir', side_effect=[False, True]): + with pytest.raises(ValueError, match=f"Directory '{samples_dir}' is missing."): + create_tracts(samples_dir, input_dir) + + # Testing for missing input_dir + with patch.dict('os.environ', {'FSLDIR': 'some_value'}): + with patch('os.path.isdir', side_effect=[True, False]): + with pytest.raises(ValueError, match=f"Directory '{input_dir}' is missing."): + create_tracts(samples_dir, input_dir) + + +def test_connectivity_driven(): + # Mocking the environment variable + with patch.dict('os.environ', {'FSLDIR': 'some_value'}): + # Mocking the os.path.isfile function to always return True + with patch('os.path.isfile', return_value=True): + # Mocking the subprocess.run function to do nothing + with patch('subprocess.run') as mock_subprocess: + target1 = "some_target1_path" + target2 = "some_target2_path" + out = "some_out_path" + connectivity_driven(target1, target2, out) + mock_subprocess.assert_called_once() + + # Testing for missing FSLDIR environment variable + with patch.dict('os.environ', {}, clear=True): + with pytest.raises(ValueError, match="FSLDIR environment variable is missing."): + connectivity_driven(target1, target2, out) + + # Testing for missing target1 file + with patch.dict('os.environ', {'FSLDIR': 'some_value'}): + with patch('os.path.isfile', side_effect=[False, True]): + with pytest.raises(ValueError, match=f"{target1} does not exist."): + connectivity_driven(target1, target2, out) + + # Testing for missing target2 file + with patch.dict('os.environ', {'FSLDIR': 'some_value'}): + with patch('os.path.isfile', side_effect=[True, False]): + with pytest.raises(ValueError, match=f"{target2} does not exist."): + connectivity_driven(target1, target2, out) \ No newline at end of file diff --git a/tests/test_train.py b/tests/test_train.py index 4c738400c15a79190e2c41bcfc4e307e744ce664..112ac2d790acd82af9ef7e811bd14b74b7f7b235 100644 --- a/tests/test_train.py +++ b/tests/test_train.py @@ -40,12 +40,12 @@ def test_train(): def test_train_without_val(): - m = train_without_val(ShuffledDataLoader(batches), n_epochs=5, + m = train_without_val(ShuffledDataLoader(batches), n_epochs=5, model="MLP", model_save_path=os.path.join(f'{path_to_data}', 'models', 'tmp_model.pth')) assert isinstance(m, FlexibleClassifier) def test_train_with_val(): - m = train_with_val(ShuffledDataLoader(batches), n_epochs=5, + m = train_with_val(ShuffledDataLoader(batches), n_epochs=5, model="MLP", model_save_path=os.path.join(f'{path_to_data}', 'models', 'tmp_model.pth')) assert isinstance(m, FlexibleClassifier) \ No newline at end of file diff --git a/tests/test_utils.py b/tests/test_utils.py index f90714895f448aff3612404202ac562f7e5b80d7..04976a90569755500ed02f5613c5a2be2a41fb7d 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -1,8 +1,12 @@ import os, pytest import numpy as np -from localise.utils import save_nifti, get_subjects +import subprocess +from localise.utils import save_nifti, save_nifti_4D, get_subjects +from localise.utils import predict_mode, train_mode +from localise.utils import run_command from pathlib import Path import nibabel as nib +from unittest.mock import patch path_to_data = Path(__file__).parent / 'test_data' @@ -20,6 +24,22 @@ def test_save_nifti(): assert np.allclose(saved_data[mask_data != 0], vectors, atol=1e-6, rtol=1e-5) +def test_save_nifti_4D(): + subject = '100610' + mask = os.path.join(path_to_data, subject, 'roi', 'left', 'tha.nii.gz') + mask_data = nib.load(mask).get_fdata() + output_fname = os.path.join(path_to_data, subject, 'saved_file.nii.gz') + + vectors = np.random.randn(np.count_nonzero(mask_data), 2) + save_nifti_4D(vectors, mask, output_fname) + + saved_data = nib.load(output_fname).get_fdata() + assert saved_data.shape[-1] == 2 + for k in range(2): + saved_data_slice = saved_data[:, :, :, k] + assert np.allclose(saved_data_slice[mask_data != 0], vectors[:, k], atol=1e-6, rtol=1e-5) + + def test_get_subjects(tmp_path): # Test with file d = tmp_path / "subdir" @@ -36,4 +56,72 @@ def test_get_subjects(tmp_path): # Test with invalid path with pytest.raises(ValueError): - get_subjects(str(tmp_path / "nonexistent")) \ No newline at end of file + get_subjects(str(tmp_path / "nonexistent")) + + +def test_predict_mode(): + subject = f'{path_to_data}/100206' + mask = 'roi/left/tha_small.nii.gz' + target_path = 'streamlines/left' + target_list = f'{path_to_data}/models/targets_list113_left.txt' + atlas = 'roi/left/atlas.nii.gz' + out = 'roi/left/prediction.nii.gz' + model = f'{path_to_data}/models/vim_spatial_model.pth' + + predict_mode(subject=subject, mask=mask, target_path=target_path, + target_list=target_list,atlas=atlas,out=out,model=model) + assert os.path.isfile(os.path.join(subject, out)) + os.remove(os.path.join(subject, out)) + + predict_mode(subject=subject, mask=mask, structure='vim', target_path=target_path, + atlas=atlas, out=out, data_type='single32') + assert os.path.isfile(os.path.join(subject, out)) + os.remove(os.path.join(subject, out)) + + with pytest.raises(ValueError): + predict_mode(subject=subject, mask=mask, target_path=target_path, + atlas=atlas, out=out) + + with pytest.raises(ValueError): + predict_mode(subject=subject, mask=mask, structure='vim', target_path=target_path, + atlas=atlas, out=out) + + predict_mode(subject=subject, mask=mask, structure='vim', target_path=target_path, + target_list=target_list, atlas=atlas, out=out, data_type='single32') + + assert os.path.isfile(os.path.join(subject, out)) + os.remove(os.path.join(subject, out)) + + predict_mode(subject=subject, mask=mask, data='streamlines/left/X113_small_1mm.npy', + structure='vim', spatial=False, + atlas=atlas, out=out, data_type='single32') + + assert os.path.isfile(os.path.join(subject, out)) + os.remove(os.path.join(subject, out)) + +def test_train_mode(): + subject = f'{path_to_data}/100206' + mask = 'roi/left/tha_small.nii.gz' + label = 'high-quality-labels/left/labels.nii.gz' + target_path = 'streamlines/left' + target_list = f'{path_to_data}/models/targets_list113_left.txt' + atlas = 'roi/left/atlas.nii.gz' + out_model = f'{path_to_data}/models/test_model.pth' + + train_mode(subject=subject, mask=mask, label=label, target_path=target_path, + target_list=target_list, atlas=atlas, out_model=out_model) + + assert os.path.isfile(out_model) + os.remove(out_model) + +def test_run_command(): + # Test successful command execution + with patch('subprocess.run') as mock_run: + run_command(['echo', 'hello']) + mock_run.assert_called_once_with(['echo', 'hello'], check=True) + + # Test unsuccessful command execution + with patch('subprocess.run', side_effect=subprocess.CalledProcessError(1, 'bad_cmd')) as mock_run: + run_command(['bad_cmd']) + mock_run.assert_called_once_with(['bad_cmd'], check=True) + \ No newline at end of file