Skip to content
Snippets Groups Projects
Commit 222bf918 authored by Fidel Alfaro Almagro's avatar Fidel Alfaro Almagro :speech_balloon:
Browse files

Initial commit

parents
No related branches found
No related tags found
No related merge requests found
Showing
with 814 additions and 0 deletions
bip/data/** filter=lfs diff=lfs merge=lfs -text
# Byte-compiled / optimized / DLL files
__pycache__/
*/__pycache__/
*.py[cod]
*$py.class
.DS_Store
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
.*.py
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
target/
# Jupyter Notebook
.ipynb_checkpoints
# pyenv
.python-version
# celery beat schedule file
celerybeat-schedule
# SageMath parsed files
*.sage.py
# Environments
.env
.venv
env/
venv/
ENV/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
# My files
my_init.sh
README 0 → 100644
-------------------------------------------
BRAIN IMAGING PIPELINE
Fidel Alfaro Almagro, WIN-FMRIB
June, 2022
-------------------------------------------
Automated tool
Installation
------------
If you want to install everythong that is needed from scratch, run:
```cd /path-to-lib/install_dir/
python setup.py install```
.DS_Store
#!/usr/bin/env python
import os
import sys
import nibabel as nib
from fsl import data
from fsl import utils
from fsl import scripts
from fsl import wrappers
from shutil import copyfile
from file_tree import FileTree
from pipe_tree import Pipeline, In, Out, Ref, Var, update_closure
#from bb_struct.bb_struct import bb_struct
from my_wrappers.standard_space_roi import standard_space_roi
from gradunwarp.core.gradient_unwarp_apply import gradient_unwarp_apply
pipe = Pipeline()
BB_BIN_DIR = os.environ['BB_BIN_DIR']
FSLDIR = os.environ['FSLDIR']
coeff = BB_BIN_DIR + '/data/bb_GDC_coeff.grad'
MNI = FSLDIR + '/data/standard/MNI152_T1_1mm'
with open(BB_BIN_DIR + '/data/subj.txt', 'r') as f:
subjects = [x.replace('\n','') for x in f.readlines()]
tree = FileTree.read(BB_BIN_DIR + '/data/FileTree').update(subject=subjects)
log_conf = {'cmd': sys.stdout}
#Alternative (needs to be moved inside bb_struct, as logs_dir is not accessible here):
#script_name = os.path.splitext(os.path.basename(__file__))[0]
#log_conf = {'cmd': logs_dir + "/" + script_name + "_cmd.txt"}
@pipe(submit=dict(logdir=Ref("logs_dir"), jobtime=200))
def bb_struct( T1_orig: In,
T1_brain: Out,
logs_dir: Out,
T1: Out,
T1_orig_ud: Out,
T1_orig_ud_warp: Out,
T1_brain_mask: Out,
T1_orig_defaced: Out,
T1_defacing_mask: Out,
T1_unbiased: Out,
T1_unbiased_brain: Out,
T1_brain_to_MNI: Out,
T1_QC_face_mask_inside_brain_mask: Out,
transform_outputs: Out("T1*_to_*"),
fast_outputs: Out("T1_fast_*"),
first_outputs: Out("T1_first_*"),
T1_GDC: Ref,
temp_outputs: Ref("T1_tmp_*")):
with update_closure(temp_outputs, transform_outputs, fast_outputs,
first_outputs):
if [ coeff != '' ] :
#Calculate and apply the Gradient Distortion Unwarp
gradient_unwarp_apply(WD=T1_GDC, infile=T1_orig, outfile=T1_orig_ud,
owarp=T1_orig_ud_warp,gradcoeff=coeff,
vendor='siemens', nojac=True)
else:
pipe(copyfile, kwargs={'src': In('A'), 'dst': Out('B')})
#Calculate where does the brain start in the z dimension and extract the roi
head_top=int(round(float(wrappers.robustfov(T1_orig_ud).stdout[0].split()[7])))
wrappers.fslmaths(T1_orig_ud).roi(0,-1,0,-1,head_top,170,0,1,).run(T1_tmp_1,
log=log_conf)
#Run a (Recursive) brain extraction on the roi
wrappers.bet(T1_tmp_1, T1_tmp_1_brain, robust=True, log=log_conf)
#Reduce the FOV of T1_orig_ud by calculating a registration
#from T1_tmp_brain to ssref and apply it to T1_orig_ud
# TODO: Once this wrapper is ready, merge it with FSL wrappers
standard_space_roi(T1_tmp_1_brain, T1, maskNONE=True, ssref = MNI + '_brain',
altinput=T1_orig_ud, d=True, log=log_conf)
#Generate the actual affine from the orig_ud volume to the cut version
#we haveand combine it to have an affine matrix from orig_ud to MNI
wrappers.flirt(src=T1, ref=T1_orig_ud, omat=T1_to_T1_orig_ud_mat,
schedule = FSLDIR + '/etc/flirtsch/xyztrans.sch', log=log_conf)
wrappers.invxfm(inmat=T1_to_T1_orig_ud_mat, omat=T1_orig_ud_to_T1_mat,
log=log_conf)
wrappers.concatxfm(atob=T1_to_T1_orig_ud_mat, btoc=T1_orig_ud_to_std_mat,
atoc=T1_to_MNI_linear_mat, log=log_conf)
#Non-linear registration to MNI using the previously calculated alignment
wrappers.fnirt(src = T1, ref = MNI, aff = T1_to_MNI_linear_mat,
config = BB_BIN_DIR + '/data/bb_fnirt.cnf',
refmask = BB_BIN_DIR + '/data/MNI152_T1_1mm_brain_mask_dil_GD7.nii.gz',
logout = logs_dir + '/bb_T1_to_MNI_fnirt.log',
cout = T1_to_MNI_warp_coef, fout = T1_to_MNI_warp,
jout = T1_to_MNI_warp_jac, iout = T1_tmp_3,
interp = 'spline',log=log_conf)
#Combine all transforms (Gradient Distortion Unwarp and T1 to MNI) into one
if coeff != '' :
wrappers.convertwarp(ref=MNI, warp1=T1_orig_ud_warp,
midmat=T1_orig_ud_to_T1_mat, warp2=T1_to_MNI_warp,
out=T1_orig_to_MNI_warp,log=log_conf)
else:
wrappers.convertwarp(ref=MNI, premat=T1_orig_ud_to_T1_mat,
warp1=T1_orig_ud_warp, out=T1_orig_to_MNI_warp,
log=log_conf)
# Apply the previously generated transformation
wrappers.applywarp(src=T1_orig, ref=MNI, w=T1_orig_to_MNI_warp,
out=T1_brain_to_MNI, rel=True, interp='spline',
log=log_conf)
#Create brain mask
wrappers.invwarp(ref=T1, warp=T1_to_MNI_warp_coef,
out=T1_to_MNI_warp_coef_inv,
log=log_conf)
wrappers.applywarp(src=MNI + '_brain_mask', ref=T1 ,
w=T1_to_MNI_warp_coef_inv, out=T1_brain_mask,
rel=True, interp='trilinear', log=log_conf)
wrappers.fslmaths(T1).mul(T1_brain_mask).run(T1_brain,log=log_conf)
wrappers.fslmaths(T1_brain_to_MNI).mul(MNI + '_brain_mask').run(T1_brain_to_MNI,
log=log_conf)
#TODO: Replace this part with proper call to fsl_deface
#Defacing T1_orig
wrappers.concatxfm(atob=T1_orig_ud_to_T1_mat, btoc=T1_to_MNI_linear_mat,
atoc=T1_tmp_mat, log=log_conf)
wrappers.concatxfm(atob=T1_tmp_mat,
btoc=BB_BIN_DIR + '/data/MNI_to_MNI_BigFoV_facemask.mat',
atoc=T1_tmp_mat, log=log_conf)
wrappers.invxfm(inmat=T1_tmp_mat, omat=T1_tmp_mat, log=log_conf)
wrappers.applyxfm(src=BB_BIN_DIR + '/data/MNI152_T1_1mm_BigFoV_facemask',
ref=T1_orig, mat=T1_tmp_mat, out=T1_defacing_mask,
log=log_conf)
wrappers.fslmaths(T1_defacing_mask).binv().mul(T1_orig).run(T1_orig_defaced,
log=log_conf)
#Defacing T1
wrappers.concatxfm(atob=T1_to_MNI_linear_mat,
btoc = BB_BIN_DIR + '/data/MNI_to_MNI_BigFoV_facemask.mat',
atoc = T1_tmp_mat, log=log_conf)
wrappers.invxfm(inmat=T1_tmp_mat, omat=T1_tmp_mat, log=log_conf)
wrappers.applyxfm(src=BB_BIN_DIR + '/data/MNI152_T1_1mm_BigFoV_facemask',
ref=T1, mat=T1_tmp_mat, out=T1_defacing_mask,
log=log_conf)
wrappers.fslmaths(T1_defacing_mask).binv().mul(T1).run(T1, log=log_conf)
#Generation of QC value: Number of voxels in which
#the defacing mask goes into the brain mask
wrappers.fslmaths(T1_brain_mask).thr(0.5).bin().run(T1_tmp_4,
log=log_conf)
wrappers.fslmaths(T1_defacing_mask).thr(0.5).bin().add(T1_tmp_4).run(T1_tmp_4,
log=log_conf)
vals = wrappers.fslstats(T1_tmp_4).V.run(log=log_conf)[0]
with open(T1_QC_face_mask_inside_brain_mask, 'w') as f:
f.write(str(vals))
#Run fast
wrappers.fast(T1_brain, out = T1_fast_dir + '/T1_brain', b=True,
log=log_conf)
#Binarize PVE masks
wrappers.fslmaths(T1_fast_pve_0).thr(0.5).bin().run(T1_fast_CSF_mask,
log=log_conf)
wrappers.fslmaths(T1_fast_pve_1).thr(0.5).bin().run(T1_fast_WM_mask,
log=log_conf)
wrappers.fslmaths(T1_fast_pve_2).thr(0.5).bin().run(T1_fast_GM_mask,
log=log_conf)
#Apply bias field correction to T1
wrappers.fslmaths(T1).div(T1_fast_brain_bias).run(T1_unbiased,
log=log_conf)
wrappers.fslmaths(T1_brain).div(T1_fast_brain_bias).run(T1_unbiased_brain,
log=log_conf)
#Creates a link inside T1_first to T1_unbiased_brain.nii.gz
os.symlink(src="../T1_unbiased_brain.nii.gz", dst=T1_first_unbiased_brain)
#pipe(copyfile, kwargs={'src': In('A'), 'dst': Out('B')})
if __name__ == "__main__":
pipe.cli(tree)
.DS_Store
#!/usr/bin/env python
@pipe(submit=dict(logdir=Ref("logs_dir"), jobtime=200))
def bb_struct( T1_orig: In,
T1_brain: Out,
logs_dir: Out,
T1: Out,
T1_orig_ud: Out,
T1_orig_ud_warp: Out,
T1_brain_mask: Out,
T1_orig_defaced: Out,
T1_defacing_mask: Out,
T1_unbiased: Out,
T1_unbiased_brain: Out,
T1_brain_to_MNI: Out,
T1_QC_face_mask_inside_brain_mask: Out,
transform_outputs: Out("T1*_to_*"),
fast_outputs: Out("T1_fast_*"),
first_outputs: Out("T1_first_*"),
T1_GDC: Ref,
temp_outputs: Ref("T1_tmp_*")):
with update_closure(temp_outputs, transform_outputs, fast_outputs,
first_outputs):
if [ coeff != '' ] :
#Calculate and apply the Gradient Distortion Unwarp
gradient_unwarp_apply(WD=T1_GDC, infile=T1_orig, outfile=T1_orig_ud,
owarp=T1_orig_ud_warp,gradcoeff=coeff,
vendor='siemens', nojac=True)
else:
pipe(copyfile, kwargs={'src': In('A'), 'dst': Out('B')})
#Calculate where does the brain start in the z dimension and extract the roi
head_top=int(round(float(wrappers.robustfov(T1_orig_ud).stdout[0].split()[7])))
wrappers.fslmaths(T1_orig_ud).roi(0,-1,0,-1,head_top,170,0,1,).run(T1_tmp_1,
log=log_conf)
#Run a (Recursive) brain extraction on the roi
wrappers.bet(T1_tmp_1, T1_tmp_1_brain, robust=True, log=log_conf)
#Reduce the FOV of T1_orig_ud by calculating a registration
#from T1_tmp_brain to ssref and apply it to T1_orig_ud
# TODO: Once this wrapper is ready, merge it with FSL wrappers
standard_space_roi(T1_tmp_1_brain, T1, maskNONE=True, ssref = MNI + '_brain',
altinput=T1_orig_ud, d=True, log=log_conf)
#Generate the actual affine from the orig_ud volume to the cut version
#we haveand combine it to have an affine matrix from orig_ud to MNI
wrappers.flirt(src=T1, ref=T1_orig_ud, omat=T1_to_T1_orig_ud_mat,
schedule = FSLDIR + '/etc/flirtsch/xyztrans.sch', log=log_conf)
wrappers.invxfm(inmat=T1_to_T1_orig_ud_mat, omat=T1_orig_ud_to_T1_mat,
log=log_conf)
wrappers.concatxfm(atob=T1_to_T1_orig_ud_mat, btoc=T1_orig_ud_to_std_mat,
atoc=T1_to_MNI_linear_mat, log=log_conf)
#Non-linear registration to MNI using the previously calculated alignment
wrappers.fnirt(src = T1, ref = MNI, aff = T1_to_MNI_linear_mat,
config = BB_BIN_DIR + '/data/bb_fnirt.cnf',
refmask = BB_BIN_DIR + '/data/MNI152_T1_1mm_brain_mask_dil_GD7.nii.gz',
logout = logs_dir + '/bb_T1_to_MNI_fnirt.log',
cout = T1_to_MNI_warp_coef, fout = T1_to_MNI_warp,
jout = T1_to_MNI_warp_jac, iout = T1_tmp_3,
interp = 'spline',log=log_conf)
#Combine all transforms (Gradient Distortion Unwarp and T1 to MNI) into one
if coeff != '' :
wrappers.convertwarp(ref=MNI, warp1=T1_orig_ud_warp,
midmat=T1_orig_ud_to_T1_mat, warp2=T1_to_MNI_warp,
out=T1_orig_to_MNI_warp,log=log_conf)
else:
wrappers.convertwarp(ref=MNI, premat=T1_orig_ud_to_T1_mat,
warp1=T1_orig_ud_warp, out=T1_orig_to_MNI_warp,
log=log_conf)
# Apply the previously generated transformation
wrappers.applywarp(src=T1_orig, ref=MNI, w=T1_orig_to_MNI_warp,
out=T1_brain_to_MNI, rel=True, interp='spline',
log=log_conf)
#Create brain mask
wrappers.invwarp(ref=T1, warp=T1_to_MNI_warp_coef,
out=T1_to_MNI_warp_coef_inv,
log=log_conf)
wrappers.applywarp(src=MNI + '_brain_mask', ref=T1 ,
w=T1_to_MNI_warp_coef_inv, out=T1_brain_mask,
rel=True, interp='trilinear', log=log_conf)
wrappers.fslmaths(T1).mul(T1_brain_mask).run(T1_brain,log=log_conf)
wrappers.fslmaths(T1_brain_to_MNI).mul(MNI + '_brain_mask').run(T1_brain_to_MNI,
log=log_conf)
#TODO: Replace this part with proper call to fsl_deface
#Defacing T1_orig
wrappers.concatxfm(atob=T1_orig_ud_to_T1_mat, btoc=T1_to_MNI_linear_mat,
atoc=T1_tmp_mat, log=log_conf)
wrappers.concatxfm(atob=T1_tmp_mat,
btoc=BB_BIN_DIR + '/data/MNI_to_MNI_BigFoV_facemask.mat',
atoc=T1_tmp_mat, log=log_conf)
wrappers.invxfm(inmat=T1_tmp_mat, omat=T1_tmp_mat, log=log_conf)
wrappers.applyxfm(src=BB_BIN_DIR + '/data/MNI152_T1_1mm_BigFoV_facemask',
ref=T1_orig, mat=T1_tmp_mat, out=T1_defacing_mask,
log=log_conf)
wrappers.fslmaths(T1_defacing_mask).binv().mul(T1_orig).run(T1_orig_defaced,
log=log_conf)
#Defacing T1
wrappers.concatxfm(atob=T1_to_MNI_linear_mat,
btoc = BB_BIN_DIR + '/data/MNI_to_MNI_BigFoV_facemask.mat',
atoc = T1_tmp_mat, log=log_conf)
wrappers.invxfm(inmat=T1_tmp_mat, omat=T1_tmp_mat, log=log_conf)
wrappers.applyxfm(src=BB_BIN_DIR + '/data/MNI152_T1_1mm_BigFoV_facemask',
ref=T1, mat=T1_tmp_mat, out=T1_defacing_mask,
log=log_conf)
wrappers.fslmaths(T1_defacing_mask).binv().mul(T1).run(T1, log=log_conf)
#Generation of QC value: Number of voxels in which
#the defacing mask goes into the brain mask
wrappers.fslmaths(T1_brain_mask).thr(0.5).bin().run(T1_tmp_4,
log=log_conf)
wrappers.fslmaths(T1_defacing_mask).thr(0.5).bin().add(T1_tmp_4).run(T1_tmp_4,
log=log_conf)
vals = wrappers.fslstats(T1_tmp_4).V.run(log=log_conf)[0]
with open(T1_QC_face_mask_inside_brain_mask, 'w') as f:
f.write(str(vals))
#Run fast
wrappers.fast(T1_brain, out = T1_fast_dir + '/T1_brain', b=True,
log=log_conf)
#Binarize PVE masks
wrappers.fslmaths(T1_fast_pve_0).thr(0.5).bin().run(T1_fast_CSF_mask,
log=log_conf)
wrappers.fslmaths(T1_fast_pve_1).thr(0.5).bin().run(T1_fast_WM_mask,
log=log_conf)
wrappers.fslmaths(T1_fast_pve_2).thr(0.5).bin().run(T1_fast_GM_mask,
log=log_conf)
#Apply bias field correction to T1
wrappers.fslmaths(T1).div(T1_fast_brain_bias).run(T1_unbiased,
log=log_conf)
wrappers.fslmaths(T1_brain).div(T1_fast_brain_bias).run(T1_unbiased_brain,
log=log_conf)
#Creates a link inside T1_first to T1_unbiased_brain.nii.gz
os.symlink(src="../T1_unbiased_brain.nii.gz", dst=T1_first_unbiased_brain)
#pipe(copyfile, kwargs={'src': In('A'), 'dst': Out('B')})
.DS_Store
for elem in `cat subj.txt ` ; do
cd $elem/DICOM ;
mv T2.dcm T2_FLAIR.dcm ;
mv T2.txt T2_FLAIR.txt ;
mv T2_strings.txt T2_FLAIR_strings.txt ;
cd ../.. ;
done
for elem in `cat subj.txt ` ; do
cd $elem/raw ;
if [ -f SWI_TOTAL_MAG_notNorm.nii.gz ] ; then
mv SWI_TOTAL_MAG_notNorm.nii.gz SWI_TOTAL_MAG_notNorm_TE1.nii.gz
fi
if [ -f SWI_TOTAL_MAG_notNorm.json ] ; then
mv SWI_TOTAL_MAG_notNorm.json SWI_TOTAL_MAG_notNorm_TE1.json
fi
cd ../.. ;
done
for elem in `cat subj.txt ` ; do
cd $elem/
mv fMRI rfMRI;
mkdir tfMRI;
if [ -f rfMRI/tfMRI.nii.gz ] ; then
mv rfMRI/tfMRI.nii.gz tfMRI/
fi
if [ -f rfMRI/tfMRI.json ] ; then
mv rfMRI/tfMRI.json tfMRI/
fi
if [ -f rfMRI/tfMRI_SBREF.nii.gz ] ; then
mv rfMRI/tfMRI_SBREF.nii.gz tfMRI/
fi
if [ -f rfMRI/tfMRI_SBREF.json ] ; then
mv rfMRI/tfMRI_SBREF.json tfMRI/
fi
cd ../
done
for elem in `cat subj.txt ` ; do
cd $elem/SWI ;
if [ -f SWI_TOTAL_MAG.nii.gz ] ; then
mv SWI_TOTAL_MAG.nii.gz SWI_TOTAL_MAG_TE1.nii.gz
fi
if [ -f SWI_TOTAL_MAG.json ] ; then
mv SWI_TOTAL_MAG.json SWI_TOTAL_MAG_TE1.json
fi
if [ -f SWI_TOTAL_PHA.nii.gz ] ; then
mv SWI_TOTAL_PHA.nii.gz SWI_TOTAL_PHA_TE1.nii.gz
fi
if [ -f SWI_TOTAL_PHA.json ] ; then
mv SWI_TOTAL_PHA.json SWI_TOTAL_PHA_TE1.json
fi
cd ../.. ;
done
for elem in `cat subj.txt` ; do
cd $elem/T1 ;
if [ -f T1.nii.gz ] ; then
mv T1.nii.gz T1_orig.nii.gz
fi
if [ -f T1.json ] ; then
mv T1.json T1_orig.json
fi
cd ../..;
done
for elem in `cat subj.txt` ; do
cd $elem/T2_FLAIR ;
if [ -f T2_FLAIR.nii.gz ] ; then
mv T2_FLAIR.nii.gz T2_FLAIR_orig.nii.gz
fi
if [ -f T2_FLAIR.json ] ; then
mv T2_FLAIR.json T2_FLAIR_orig.json
fi
cd ../..;
done
for elem in `cat subj.txt ` ; do
cd $elem/SWI ;
if [ -f SWI_TOTAL_MAG_TE1.nii.gz ] ; then
mv SWI_TOTAL_MAG_TE1.nii.gz SWI_TOTAL_MAG_TE1_orig.nii.gz
fi
if [ -f SWI_TOTAL_MAG_TE1.json ] ; then
mv SWI_TOTAL_MAG_TE1.json SWI_TOTAL_MAG_TE1_orig.json
fi
if [ -f SWI_TOTAL_MAG_TE2.nii.gz ] ; then
mv SWI_TOTAL_MAG_TE2.nii.gz SWI_TOTAL_MAG_TE2_orig.nii.gz
fi
if [ -f SWI_TOTAL_MAG_TE2.json ] ; then
mv SWI_TOTAL_MAG_TE2.json SWI_TOTAL_MAG_TE2_orig.json
fi
if [ -f SWI_TOTAL_PHA_TE1.nii.gz ] ; then
mv SWI_TOTAL_PHA_TE1.nii.gz SWI_TOTAL_PHA_TE1_orig.nii.gz
fi
if [ -f SWI_TOTAL_PHA_TE1.json ] ; then
mv SWI_TOTAL_PHA_TE1.json SWI_TOTAL_PHA_TE1_orig.json
fi
if [ -f SWI_TOTAL_PHA_TE2.nii.gz ] ; then
mv SWI_TOTAL_PHA_TE2.nii.gz SWI_TOTAL_PHA_TE2_orig.nii.gz
fi
if [ -f SWI_TOTAL_PHA_TE2.json ] ; then
mv SWI_TOTAL_PHA_TE2.json SWI_TOTAL_PHA_TE2_orig.json
fi
cd ../.. ;
done
.DS_Store
bb_GDC_*.grad
subj.txt
subject = dummy
tissue_idx = 0,1,2
{subject}
logs (logs_dir)
T1 (T1_dir)
T1_orig.nii.gz (T1_orig)
T1_GDC (T1_GDC)
T1.nii.gz (T1)
T1_orig_ud.nii.gz (T1_orig_ud)
T1_orig_ud_warp.nii.gz (T1_orig_ud_warp)
T1_brain.nii.gz (T1_brain)
T1_brain_mask.nii.gz (T1_brain_mask)
T1_orig_defaced.nii.gz (T1_orig_defaced)
T1_defacing_mask.nii.gz (T1_defacing_mask)
T1_unbiased.nii.gz (T1_unbiased)
T1_unbiased_brain.nii.gz (T1_unbiased_brain)
T1_unbiased_mask.nii.gz (T1_unbiased_mask)
T1_brain_to_MNI.nii.gz (T1_brain_to_MNI)
T1_QC_face_mask_inside_brain_mask.txt (T1_QC_face_mask_inside_brain_mask)
T1_tmp_1.nii.gz (T1_tmp_1)
T1_tmp_2.nii.gz (T1_tmp_2)
T1_tmp_3.nii.gz (T1_tmp_3)
T1_tmp_4.nii.gz (T1_tmp_4)
T1_tmp.mat (T1_tmp_mat)
T1_tmp_1_brain.nii.gz (T1_tmp_1_brain)
T1_tmp_to_std.mat (T1_tmp_to_std_mat)
T1_tmp_to_std.mat (T1_orig_ud_to_std_mat)
transforms (T1_transforms_dir)
T1_to_T1_orig_ud.mat (T1_to_T1_orig_ud_mat)
T1_orig_ud_to_T1.mat (T1_orig_ud_to_T1_mat)
T1_to_MNI_linear.mat (T1_to_MNI_linear_mat)
T1_to_MNI_warp_coef.nii.gz (T1_to_MNI_warp_coef)
T1_to_MNI_warp.nii.gz (T1_to_MNI_warp)
T1_to_MNI_warp_jac.nii.gz (T1_to_MNI_warp_jac)
T1_orig_to_MNI_warp.nii.gz (T1_orig_to_MNI_warp)
T1_to_MNI_warp_coef_inv.nii.gz (T1_to_MNI_warp_coef_inv)
T1_fast (T1_fast_dir)
T1_brain_pveseg.nii.gz (T1_fast_pveseg)
T1_brain_pve_0.nii.gz (T1_fast_pve_0)
T1_brain_pve_1.nii.gz (T1_fast_pve_1)
T1_brain_pve_2.nii.gz (T1_fast_pve_2)
T1_brain_CSF_mask.nii.gz (T1_fast_CSF_mask)
T1_brain_WM_mask.nii.gz (T1_fast_WM_mask)
T1_brain_GM_mask.nii.gz (T1_fast_GM_mask)
T1_brain_bias.nii.gz (T1_fast_brain_bias)
T1_first (T1_first_dir)
T1_unbiased_brain.nii.gz (T1_first_unbiased_brain)
T2_FLAIR (T2_FLAIR_dir)
T2_FLAIR_orig.nii.gz (T2_FLAIR_orig)
dMRI (dMRI_dir)
raw (dMRI_raw_dir)
AP.nii.gz (AP)
PA.nii.gz (PA)
rfMRI (rfMRI_dir)
rfMRI.nii.gz (rfMRI)
rfMRI_SBREF.nii.gz (rfMRI_SBREF)
tfMRI (tfMRI_dir)
tfMRI.nii.gz (tfMRI)
tfMRI_SBREF.nii.gz (tfMRI_SBREF)
SWI (SWI_dir)
SWI_TOTAL_MAG_TE1_orig.nii.gz (SWI_MAG_TE1_orig)
SWI_TOTAL_MAG_TE2_orig.nii.gz (SWI_MAG_TE2_orig)
SWI_TOTAL_PHA_TE1_orig.nii.gz (SWI_PHA_TE1_orig)
SWI_TOTAL_PHA_TE2_orig.nii.gz (SWI_PHA_TE2_orig)
MAG_TE1
SWI_3MM_UPDATED_V1.1_COILH9_ECHO1_{COIL}.nii.gz (SWI_MAG_TE1_COILS)
MAG_TE2
SWI_3MM_UPDATED_V1.1_COILH9_ECHO2_{COIL}.nii.gz (SWI_MAG_TE2_COILS)
PHA_TE1
SWI_3MM_UPDATED_V1.1_COILH10_ECHO1_{COIL}_PH.nii.gz (SWI_PHA_TE1_COILS)
PHA_TE2
SWI_3MM_UPDATED_V1.1_COILH10_ECHO2_{COIL}_PH.nii.gz (SWI_PHA_TE2_COILS)
ASL (ASL_dir)
raw (ASL_raw_dir)
ASL_M0.nii.gz (ASL_M0)
ASL_M0_NORM.nii.gz (ASL_M0_NORM)
ASL_PLD_0400_control.nii.gz (ASL_PLD_0400_control)
ASL_PLD_0400_label.nii.gz (ASL_PLD_0400_label)
ASL_PLD_0800_control.nii.gz (ASL_PLD_0800_control)
ASL_PLD_0800_label.nii.gz (ASL_PLD_0800_label)
ASL_PLD_1200_control.nii.gz (ASL_PLD_1200_control)
ASL_PLD_1200_label.nii.gz (ASL_PLD_1200_label)
ASL_PLD_1600_control.nii.gz (ASL_PLD_1600_control)
ASL_PLD_1600_label.nii.gz (ASL_PLD_1600_label)
ASL_PLD_2000_control.nii.gz (ASL_PLD_2000_control)
ASL_PLD_2000_label.nii.gz (ASL_PLD_2000_label)
DICOM (DICOM_dir)
T1.txt (T1_DICOM_HEADER)
T2_FLAIR.txt (T2_FLAIR_DICOM_HEADER)
dMRI.txt (dMRI_DICOM_HEADER)
rfMRI.txt (rfMRI_DICOM_HEADER)
tfMRI.txt (tfMRI_DICOM_HEADER)
SWI.txt (SWI_DICOM_HEADER)
ASL.txt (ASL_DICOM_HEADER)
T1_strings.txt (T1_DICOM_STRINGS)
T2_FLAIR_strings.txt (T2_FLAIR_DICOM_STRINGS)
dMRI_strings.txt (dMRI_DICOM_STRINGS)
rfMRI_strings.txt (rfMRI_DICOM_STRINGS)
tfMRI_strings.txt (tfMRI_DICOM_STRINGS)
SWI_strings.txt (SWI_DICOM_STRINGS)
ASL_strings.txt (ASL_DICOM_STRINGS)
raw (raw_dir)
T1_notNorm.nii.gz (T1_NOTNORM)
T2_FLAIR_notNorm.nii.gz (T2_FLAIR_NOTNORM)
AP_SBREF.nii.gz (AP_SBREF)
PA_SBREF.nii.gz (PA_SBREF)
SWI_TOTAL_MAG_notNorm_TE1.nii.gz (SWI_MAG_TE1_NOTNORM)
SWI_TOTAL_MAG_notNorm_TE2.nii.gz (SWI_MAG_TE2_NOTNORM)
File added
File added
1 0 0 50
0 1 0 50
0 0 1 100
0 0 0 1
# name of reference image
# --ref=/usr/local/fsl/data/standard/MNI152_T1_2mm.nii.gz
--ref=MNI152_T1_2mm
# name of file with mask in reference space
# --refmask=/usr/local/fsl/data/standard/MNI152_T1_2mm_brain_mask_dil.nii.gz
--refmask=MNI152_T1_2mm_brain_mask_dil
# If =1, use implicit masking based on value in --ref image. Default =1
--imprefm=1
# If =1, use implicit masking based on value in --in image, Default =1
--impinm=1
# Value to mask out in --ref image. Default =0.0
--imprefval=0
# Value to mask out in --in image. Default =0.0
--impinval=0
# sub-sampling scheme, default 4,2,1,1
--subsamp=4,4,2,2,1,1
# Max # of non-linear iterations, default 5,5,5,5
--miter=5,5,5,5,5,10
# FWHM (in mm) of gaussian smoothing kernel for input volume, default 6,4,2,2
--infwhm=8,6,5,4.5,3,2
# FWHM (in mm) of gaussian smoothing kernel for ref volume, default 4,2,0,0
--reffwhm=8,6,5,4,2,0
# Weigth of membrane energy regularisation, default depending on --ssqlambda and --regmod switches. See user documetation.
--lambda=300,150,100,50,40,30
# Estimate intensity-mapping if set, deafult 1 (true)
--estint=1,1,1,1,1,0
# Apply the mask if set, default 1 (true)
--applyrefmask=1,1,1,1,1,1
# Apply the mask if set, default 1 (true)
--applyinmask=1
# (approximate) resolution (in mm) of warp basis in x-, y- and z-direction, default 10,10,10
--warpres=10,10,10
# If set (=1), lambda is weighted by current ssq, default 1
--ssqlambda=1
# Model for regularisation of warp-field [membrane_energy bending_energy], default bending_energy
--regmod=bending_energy
# Model for intensity-mapping [none global_linear global_non_linear local_linear global_non_linear_with_bias local_non_linear]
--intmod=global_non_linear_with_bias
# Order of poynomial for mapping intensities, default 5
--intorder=5
# Resolution (in mm) of bias-field modelling local intensities, default 50,50,50
--biasres=50,50,50
# Weight of regularisation for bias-field, default 10000
--biaslambda=10000
# If =1, ref image is used to calculate derivatives. Default =0
--refderiv=0
{subject}
T1
T1.nii.gz (T1)
T1.json
T2_FLAIR
T2_FLAIR.nii.gz (T2)
T2_FLAIR.json
dMRI
raw
AP.nii.gz (AP)
AP.bval
AP.bvec
AP.json
PA.nii.gz (PA)
PA.bval
PA.bvec
PA.json
rfMRI
rfMRI.nii.gz (rfMRI)
rfMRI.json
rfMRI_SBREF.nii.gz (rfMRI_SBREF)
rfMRI_SBREF.json
tfMRI
tfMRI.nii.gz (tfMRI)
tfMRI.json
tfMRI_SBREF.nii.gz (tfMRI_SBREF)
tfMRI_SBREF.json
SWI
SWI_TOTAL_MAG_TE1.nii.gz (SWI_MAG_TE1)
SWI_TOTAL_MAG_TE1.json
SWI_TOTAL_MAG_TE2.nii.gz (SWI_MAG_TE2)
SWI_TOTAL_MAG_TE2.json
SWI_TOTAL_PHA_TE1.nii.gz (SWI_PHA_TE1)
SWI_TOTAL_PHA_TE1.json
SWI_TOTAL_PHA_TE2.nii.gz (SWI_PHA_TE2)
SWI_TOTAL_PHA_TE2.json
MAG_TE1
SWI_3MM_UPDATED_V1.1_COILH9_ECHO1_{COIL_MAG_TE1}.nii.gz (SWI_MAG_TE1_COILS)
MAG_TE2
SWI_3MM_UPDATED_V1.1_COILH9_ECHO2_{COIL_MAG_TE2}.nii.gz (SWI_MAG_TE2_COILS)
PHA_TE1
SWI_3MM_UPDATED_V1.1_COILH10_ECHO1_{COIL_PHA_TE1}_PH.nii.gz (SWI_PHA_TE1_COILS)
PHA_TE2
SWI_3MM_UPDATED_V1.1_COILH10_ECHO2_{COIL_PHA_TE2}_PH.nii.gz (SWI_PHA_TE2_COILS)
ASL
raw
ASL_M0.nii.gz (ASL_M0)
ASL_M0.json
ASL_M0_NORM.nii.gz (ASL_M0_NORM)
ASL_M0_NORM.json
ASL_PLD_0400_control.nii.gz (ASL_PLD_0400_control)
ASL_PLD_0400_control.json
ASL_PLD_0400_label.nii.gz (ASL_PLD_0400_label)
ASL_PLD_0400_label.json
ASL_PLD_0800_control.nii.gz (ASL_PLD_0800_control)
ASL_PLD_0800_control.json
ASL_PLD_0800_label.nii.gz (ASL_PLD_0800_label)
ASL_PLD_0800_label.json
ASL_PLD_1200_control.nii.gz (ASL_PLD_1200_control)
ASL_PLD_1200_control.json
ASL_PLD_1200_label.nii.gz (ASL_PLD_1200_label)
ASL_PLD_1200_label.json
ASL_PLD_1600_control.nii.gz (ASL_PLD_1600_control)
ASL_PLD_1600_control.json
ASL_PLD_1600_label.nii.gz (ASL_PLD_1600_label)
ASL_PLD_1600_label.json
ASL_PLD_2000_control.nii.gz (ASL_PLD_2000_control)
ASL_PLD_2000_control.json
ASL_PLD_2000_label.nii.gz (ASL_PLD_2000_label)
ASL_PLD_2000_label.json
DICOM
T1.txt (T1_DICOM_HEADER)
T2_FLAIR.txt (T2_FLAIR_DICOM_HEADER)
dMRI.txt (dMRI_DICOM_HEADER)
rfMRI.txt (rfMRI_DICOM_HEADER)
tfMRI.txt (tfMRI_DICOM_HEADER)
SWI.txt (SWI_DICOM_HEADER)
ASL.txt (ASL_DICOM_HEADER)
T1_strings.txt (T1_DICOM_STRINGS)
T2_strings.txt (T2_DICOM_STRINGS)
dMRI_strings.txt (dMRI_DICOM_STRINGS)
rfMRI_strings.txt (rfMRI_DICOM_STRINGS)
tfMRI_strings.txt (tfMRI_DICOM_STRINGS)
SWI_strings.txt (SWI_DICOM_STRINGS)
ASL_strings.txt (ASL_DICOM_STRINGS)
raw
T1_notNorm.nii.gz (T1_NOTNORM)
T1_notNorm.json
T2_FLAIR_notNorm.nii.gz (T2_FLAIR_NOTNORM)
T2_FLAIR_notNorm.json
AP_SBREF.nii.gz (AP_SBREF)
AP_SBREF.json
PA_SBREF.nii.gz (PA_SBREF)
PA_SBREF.json
SWI_TOTAL_MAG_notNorm_TE1.nii.gz (SWI_MAG_TE1_NOTNORM)
SWI_TOTAL_MAG_notNorm_TE1.json
SWI_TOTAL_MAG_notNorm_TE2.nii.gz (SWI_MAG_TE2_NOTNORM)
SWI_TOTAL_MAG_notNorm_TE2.json
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment