Source code for nighres.data.download_data

import os
from urllib.request import urlretrieve
from nighres.global_settings import ATLAS_DIR

[docs]def download_7T_TRT(data_dir, overwrite=False, subject_id='sub001_sess1'): """ Downloads the MP2RAGE data from the 7T Test-Retest dataset published by Gorgolewski et al (2015) [1]_ Parameters ---------- data_dir: str Writeable directory in which downloaded files should be stored. A subdirectory called '7T_TRT' will be created in this location. overwrite: bool Overwrite existing files in the same exact path (default is False) subject_id: 'sub001_sess1', 'sub002_sess1', 'sub003_sess1'} Which dataset to download (default is 'sub001_sess1') Returns ---------- dict Dictionary with keys pointing to the location of the downloaded files * inv2 : path to second inversion image * t1w : path to T1-weighted (uniform) image * t1map : path to quantitative T1 image Notes ---------- The full dataset is available at http://openscience.cbs.mpg.de/7t_trt/ References ---------- .. [1] Gorgolewski et al (2015). A high resolution 7-Tesla resting-state fMRI test-retest dataset with cognitive and physiological measures. DOI: 10.1038/sdata.2014. """ data_dir = os.path.join(data_dir, '7T_TRT') if not os.path.isdir(data_dir): os.makedirs(data_dir) nitrc = 'https://www.nitrc.org/frs/download.php/' if subject_id == 'sub001_sess1': file_sources = [nitrc + x for x in ['10234', '10235', '10236']] elif subject_id == 'sub002_sess1': file_sources = [nitrc + x for x in ['10852', '10853', '10854']] elif subject_id == 'sub003_sess1': file_sources = [nitrc + x for x in ['10855', '10856', '10857']] file_targets = [os.path.join(data_dir, filename) for filename in [subject_id+'_INV2.nii.gz', subject_id+'_T1map.nii.gz', subject_id+'_T1w.nii.gz']] for source, target in zip(file_sources, file_targets): if os.path.isfile(target) and overwrite is False: print("\nThe file {0} exists and overwrite was set to False " "-- not downloading.".format(target)) else: print("\nDownloading to {0}".format(target)) urlretrieve(source, target) return {'inv2': file_targets[0], 't1map': file_targets[1], 't1w': file_targets[2]}
[docs]def download_DTI_2mm(data_dir, overwrite=False): """ Downloads an example DTI data set Parameters ---------- data_dir: str Writeable directory in which downloaded files should be stored. A subdirectory called 'DTI_2mm' will be created in this location. overwrite: bool Overwrite existing files in the same exact path (default is False) Returns ---------- dict Dictionary with keys pointing to the location of the downloaded files * dti : path to DTI image * mask : path to binary brain mask """ data_dir = os.path.join(data_dir, 'DTI_2mm') if not os.path.isdir(data_dir): os.makedirs(data_dir) nitrc = 'https://www.nitrc.org/frs/download.php/' file_sources = [nitrc + x for x in ['11511', '11512']] file_targets = [os.path.join(data_dir, filename) for filename in ['DTI_2mm.nii.gz', 'DTI_2mm_brain_mask.nii.gz']] for source, target in zip(file_sources, file_targets): if os.path.isfile(target) and overwrite is False: print("\nThe file {0} exists and overwrite was set to False " "-- not downloading.".format(target)) else: print("\nDownloading to {0}".format(target)) urlretrieve(source, target) return {'dti': file_targets[0], 'mask': file_targets[1]}
[docs]def download_DOTS_atlas(data_dir=None, overwrite=False): """ Downloads the statistical atlas presented in [1]_ Parameters ---------- data_dir: str Writeable directory in which downloaded atlas files should be stored. A subdirectory called 'DOTS_atlas' will be created in this location. overwrite: bool Overwrite existing files in the same exact path (default is False) Returns ---------- dict Dictionary with keys pointing to the location of the downloaded files * fiber_p : path to atlas probability image * fiber_dir : path to atlas direction image References ---------- .. [1] Bazin et al (2011). Direct segmentation of the major white matter tracts in diffusion tensor images. DOI: 10.1016/j.neuroimage.2011.06.020 """ if (data_dir is None): data_dir = ATLAS_DIR data_dir = os.path.join(data_dir, 'DOTS_atlas') if not os.path.isdir(data_dir): os.makedirs(data_dir) nitrc = 'https://www.nitrc.org/frs/download.php/' file_sources = [nitrc + x for x in ['11514', '11513']] file_targets = [os.path.join(data_dir, filename) for filename in ['fiber_p.nii.gz', 'fiber_dir.nii.gz']] for source, target in zip(file_sources, file_targets): if os.path.isfile(target) and overwrite is False: print("\nThe file {0} exists and overwrite was set to False " "-- not downloading.".format(target)) else: print("\nDownloading to {0}".format(target)) urlretrieve(source, target) return {'fiber_p': file_targets[0], 'fiber_dir': file_targets[1]}
def download_MASSP_atlas(data_dir=None, overwrite=False): """ Downloads the MASSP atlas presented in [1]_ Parameters ---------- data_dir: str Writeable directory in which downloaded atlas files should be stored. A subdirectory called 'massp-prior' will be created in this location. overwrite: bool Overwrite existing files in the same exact path (default is False) Returns ---------- dict Dictionary with keys pointing to the location of the downloaded files * histograms : path to histogram image * spatial_probas : path to spatial probability image * spatial_labels : path to spatial label image * skeleton_probas : path to skeleton probability image * skeleton_labels : path to skeleton label image References ---------- .. [1] Bazin et al (2020). Multi-contrast Anatomical Subcortical Structure Parcellation. Under review. """ if (data_dir is None): data_dir = ATLAS_DIR data_dir = os.path.join(data_dir, 'massp-prior') if not os.path.isdir(data_dir): os.makedirs(data_dir) figshare = 'https://uvaauas.figshare.com/ndownloader/files/' file_sources = [figshare + x for x in ['22627481','22627484','22627475','22627478','22627472']] file_targets = [os.path.join(data_dir, filename) for filename in ['massp_17structures_spatial_label.nii.gz', 'massp_17structures_spatial_proba.nii.gz', 'massp_17structures_skeleton_label.nii.gz', 'massp_17structures_skeleton_proba.nii.gz', 'massp_17structures_r1r2sqsm_histograms.nii.gz']] for source, target in zip(file_sources, file_targets): if os.path.isfile(target) and overwrite is False: print("\nThe file {0} exists and overwrite was set to False " "-- not downloading.".format(target)) else: print("\nDownloading to {0}".format(target)) urlretrieve(source, target) return {'spatial_labels': file_targets[0], 'spatial_probas': file_targets[1], 'skeleton_labels': file_targets[2], 'skeleton_probas': file_targets[3], 'histograms': file_targets[4]} def download_MP2RAGEME_sample(data_dir, overwrite=False): """ Downloads an example data set from a MP2RAGEME acquisition _[1]. Parameters ---------- data_dir: str Writeable directory in which downloaded atlas files should be stored. overwrite: bool Overwrite existing files in the same exact path (default is False) Returns ---------- dict Dictionary with keys pointing to the location of the downloaded files * qr1 : path to quantitative R1 map image * qr2s : path to quantitative R2* map image * qsm : path to QSM image References ---------- .. [1] Caan et al (2018). MP2RAGEME: T1, T2*, and QSM mapping in one sequence at 7 tesla. doi:10.1002/hbm.24490 """ data_dir = os.path.join(data_dir, 'mp2rageme') if not os.path.isdir(data_dir): os.makedirs(data_dir) figshare = 'https://uvaauas.figshare.com/ndownloader/files/' file_sources = [figshare + x for x in ['22678334','22678337','22628750']] file_targets = [os.path.join(data_dir, filename) for filename in ['sample-subject_mp2rageme-qr1_brain.nii.gz', 'sample-subject_mp2rageme-qr2s_brain.nii.gz', 'sample-subject_mp2rageme-qsm_brain.nii.gz']] for source, target in zip(file_sources, file_targets): if os.path.isfile(target) and overwrite is False: print("\nThe file {0} exists and overwrite was set to False " "-- not downloading.".format(target)) else: print("\nDownloading to {0}".format(target)) urlretrieve(source, target) return {'qr1': file_targets[0], 'qr2s': file_targets[1], 'qsm': file_targets[2]} def download_AHEAD_template(data_dir=None, overwrite=False): """ Downloads the AHEAD group template _[1]. Parameters ---------- data_dir: str Writeable directory in which downloaded atlas files should be stored. A subdirectory called 'ahead-template' will be created in this location (default is ATLAS_DIR) overwrite: bool Overwrite existing files in the same exact path (default is False) Returns ---------- dict Dictionary with keys pointing to the location of the downloaded files * qr1 : path to quantitative R1 map image * qr2s : path to quantitative R2* map image * qsm : path to QSM image References ---------- .. [1] Alkemade et al (under review). The Amsterdam Ultra-high field adult lifespan database (AHEAD): A freely available multimodal 7 Tesla submillimeter magnetic resonance imaging database. """ if (data_dir is None): data_dir = ATLAS_DIR data_dir = os.path.join(data_dir, 'ahead-template') if not os.path.isdir(data_dir): os.makedirs(data_dir) figshare = 'https://uvaauas.figshare.com/ndownloader/files/' file_sources = [figshare + x for x in ['22679537','22679543','22679546']] file_targets = [os.path.join(data_dir, filename) for filename in ['ahead_med_qr1.nii.gz', 'ahead_med_qr2s.nii.gz', 'ahead_med_qsm.nii.gz']] for source, target in zip(file_sources, file_targets): if os.path.isfile(target) and overwrite is False: print("\nThe file {0} exists and overwrite was set to False " "-- not downloading.".format(target)) else: print("\nDownloading to {0}".format(target)) urlretrieve(source, target) return {'qr1': file_targets[0], 'qr2s': file_targets[1], 'qsm': file_targets[2]}