Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
split_name = atlas_name.split('cort')
atlas_name = 'cortl' + split_name[1]
label_file = 'HarvardOxford-Cortical-Lateralized.xml'
lateralized = True
else:
label_file = 'HarvardOxford-Cortical.xml'
lateralized = False
else:
label_file = 'HarvardOxford-Subcortical.xml'
lateralized = False
label_file = os.path.join(root, label_file)
atlas_file = os.path.join(root, 'HarvardOxford',
'HarvardOxford-' + atlas_name + '.nii.gz')
atlas_img, label_file = _fetch_files(
data_dir,
[(atlas_file, url, opts), (label_file, url, opts)],
resume=resume, verbose=verbose)
names = {}
from xml.etree import ElementTree
names[0] = 'Background'
for label in ElementTree.parse(label_file).findall('.//label'):
names[int(label.get('index')) + 1] = label.text
names = list(names.values())
if not symmetric_split:
return Bunch(maps=atlas_img, labels=names)
if atlas_name in ("cort-prob-1mm", "cort-prob-2mm",
"sub-prob-1mm", "sub-prob-2mm"):
"mwc2OAS1_%04d_MR1_mpr_anon_fslswapdim_bet.nii.gz")
% (s, s),
url_images, opts)
for s in range(1, 457) if s not in missing_subjects]
file_names_extvars = [("oasis_cross-sectional.csv", url_csv, {})]
file_names_dua = [("data_usage_agreement.txt", url_dua, {})]
# restrict to user-specified number of subjects
file_names_gm = file_names_gm[:n_subjects]
file_names_wm = file_names_wm[:n_subjects]
file_names = (file_names_gm + file_names_wm +
file_names_extvars + file_names_dua)
dataset_name = 'oasis1'
data_dir = _get_dataset_dir(dataset_name, data_dir=data_dir,
verbose=verbose)
files = _fetch_files(data_dir, file_names, resume=resume,
verbose=verbose)
# Build Bunch
gm_maps = files[:n_subjects]
wm_maps = files[n_subjects:(2 * n_subjects)]
ext_vars_file = files[-2]
data_usage_agreement = files[-1]
# Keep CSV information only for selected subjects
csv_data = np.recfromcsv(ext_vars_file)
# Comparisons to recfromcsv data must be bytes.
actual_subjects_ids = [("OAS1" +
str.split(os.path.basename(x),
"OAS1")[1][:9]).encode()
for x in gm_maps]
subject_mask = np.asarray([subject_id in actual_subjects_ids
-------
urls_path: string
Path to downloaded dataset index
urls: list of string
Sorted list of dataset directories
"""
data_prefix = '{}/{}/uncompressed'.format(dataset_version.split('_')[0],
dataset_version,
)
data_dir = _get_dataset_dir(data_prefix, data_dir=data_dir,
verbose=verbose)
file_url = 'https://osf.io/86xj7/download'
final_download_path = os.path.join(data_dir, 'urls.json')
downloaded_file_path = _fetch_files(data_dir=data_dir,
files=[(final_download_path,
file_url,
{'move': final_download_path}
)],
resume=True
)
urls_path = downloaded_file_path[0]
with open(urls_path, 'r') as json_file:
urls = json.load(json_file)
return urls_path, urls
"list. Subjects must be selected in "
"[1, 2, 3, 4, 5, 6]".format(sub_id))
dataset_name = 'haxby2001'
data_dir = _get_dataset_dir(dataset_name, data_dir=data_dir,
verbose=verbose)
# Get the mask
url_mask = 'https://www.nitrc.org/frs/download.php/7868/mask.nii.gz'
mask = _fetch_files(data_dir, [('mask.nii.gz', url_mask, {})],
verbose=verbose)[0]
# Dataset files
if url is None:
url = 'http://data.pymvpa.org/datasets/haxby2001/'
md5sums = _fetch_files(data_dir, [('MD5SUMS', url + 'MD5SUMS', {})],
verbose=verbose)[0]
md5sums = _read_md5_sum_file(md5sums)
# definition of dataset files
sub_files = ['bold.nii.gz', 'labels.txt',
'mask4_vt.nii.gz', 'mask8b_face_vt.nii.gz',
'mask8b_house_vt.nii.gz', 'mask8_face_vt.nii.gz',
'mask8_house_vt.nii.gz', 'anat.nii.gz']
n_files = len(sub_files)
if subjects is None:
subjects = []
if isinstance(subjects, numbers.Number):
subject_mask = np.arange(1, subjects + 1)
else:
keys = ['components_64',
'components_128',
'components_453_gm',
'loadings_128_gm'
]
paths = [
'components_64.nii.gz',
'components_128.nii.gz',
'components_453_gm.nii.gz',
'loadings_128_gm.npy',
]
urls = [url + path for path in paths]
files = [(path, url, {}) for path, url in zip(paths, urls)]
files = _fetch_files(data_dir, files, resume=resume,
verbose=verbose)
params = {key: file for key, file in zip(keys, files)}
fdescr = 'Components computed using the MODL package, at various scale,' \
'from HCP900 data'
params['description'] = fdescr
params['data_dir'] = data_dir
return Bunch(**params)
'RHV3A.nii.gz',
'RHV3.nii.gz',
'RHV4v.nii.gz',
'RHVP.nii.gz'
]
file_mask = [(os.path.join('mask', m), url, opts) for m in file_mask]
file_names = func_figure + func_random + \
label_figure + label_random + \
file_mask
dataset_name = 'miyawaki2008'
data_dir = _get_dataset_dir(dataset_name, data_dir=data_dir,
verbose=verbose)
files = _fetch_files(data_dir, file_names, resume=resume, verbose=verbose)
# Fetch the background image
bg_img = _fetch_files(data_dir, [('bg.nii.gz', url, opts)], resume=resume,
verbose=verbose)[0]
fdescr = _get_dataset_descr(dataset_name)
# Return the data
return Bunch(
func=files[:32],
label=files[32:64],
mask=files[64],
mask_roi=files[65:],
background=bg_img,
description=fdescr)
Notes
-----
Please deprecate this function.
We should distribute dependencies such as atlases in the form of unambiguously managed packages, and not data fetched from the web at runtime.
References
----------
.. [1] 'Papp, Eszter A., et al. "Waxholm Space atlas of the Sprague Dawley rat brain." NeuroImage 97 (2014): 374-386.'
.. [2] https://www.nitrc.org/projects/whs-sd-atlas
"""
from nilearn.datasets.utils import _fetch_files
# Get template
url_template = 'https://www.nitrc.org/frs/download.php/9423/WHS_SD_rat_T2star_v1.01.nii.gz'
template = _fetch_files(path.abspath(path.expanduser(template_dir)), [('WHS_SD_rat_T2star_v1.01.nii.gz', url_template, {})],
verbose=verbose)[0]
# Get atlas
url_atlas = 'https://www.nitrc.org/frs/download.php/9438/WHS_SD_rat_atlas_v2.nii.gz'
atlas = _fetch_files(path.abspath(path.expanduser(template_dir)), [('WHS_SD_rat_atlas_v2.nii.gz', url_atlas, {})],
verbose=verbose)[0]
# Get labels
url_labels = 'https://www.nitrc.org/frs/download.php/9439/WHS_SD_rat_atlas_v2.label'
labels = _fetch_files(path.abspath(path.expanduser(template_dir)), [('WHS_SD_rat_atlas_v2.label', url_labels, {})],
verbose=verbose)[0]
# resample template
commands = ["ResampleImage 3 WHS_SD_rat_T2star_v1.01.nii.gz _200micron_WHS_SD_rat_T2star_v1.01.nii.gz 0.2x0.2x0.2 size=1 spacing=0 4",
"SmoothImage 3 _200micron_WHS_SD_rat_T2star_v1.01.nii.gz 0.4 200micron_WHS_SD_rat_T2star_v1.01.nii.gz",
"rm _200micron_WHS_SD_rat_T2star_v1.01.nii.gz",
if n_subjects > max_subjects:
warnings.warn('Warning: there are only %d subjects' % max_subjects)
n_subjects = max_subjects
ids = ids[:n_subjects]
nitrc_ids = nitrc_ids[:n_subjects]
opts = dict(uncompress=True)
# Dataset description
fdescr = _get_dataset_descr(dataset_name)
# First, get the metadata
phenotypic = ('ADHD200_40subs_motion_parameters_and_phenotypics.csv',
url + '7781/adhd40_metadata.tgz', opts)
phenotypic = _fetch_files(data_dir, [phenotypic], resume=resume,
verbose=verbose)[0]
# Load the csv file
phenotypic = np.genfromtxt(phenotypic, names=True, delimiter=',',
dtype=None)
# Keep phenotypic information for selected subjects
int_ids = np.asarray(ids, dtype=int)
phenotypic = phenotypic[[np.where(phenotypic['Subject'] == i)[0][0]
for i in int_ids]]
# Download dataset files
archives = [url + '%i/adhd40_%s.tgz' % (ni, ii)
for ni, ii in zip(nitrc_ids, ids)]
functionals = ['data/%s/%s_rest_tshift_RPI_voreg_mni.nii.gz' % (i, i)
def fetch_mask(data_dir=None, url=None, resume=True, verbose=1):
if url is None:
url = 'http://cogspaces.github.io/assets/data/hcp_mask.nii.gz'
files = [('hcp_mask.nii.gz', url, {})]
dataset_name = 'mask'
data_dir = get_data_dir(data_dir)
dataset_dir = _get_dataset_dir(dataset_name, data_dir=data_dir,
verbose=verbose)
files = _fetch_files(dataset_dir, files, resume=resume,
verbose=verbose)
return files[0]
Notes
-----
See `more information about datasets structure
`_
"""
if url is None:
# Here we use the file that provides URL for all others
url = 'https://api.figshare.com/v2/articles/4197885'
dataset_name = 'cobre'
data_dir = _get_dataset_dir(dataset_name, data_dir=data_dir,
verbose=verbose)
fdescr = _get_dataset_descr(dataset_name)
# First, fetch the file that references all individual URLs
files = _fetch_files(data_dir, [("4197885", url, {})],
verbose=verbose)[0]
files = json.load(open(files, 'r'))
files = files['files']
# Index files by name
files_ = {}
for f in files:
files_[f['name']] = f
files = files_
# Fetch the phenotypic file and load it
csv_name_gz = 'phenotypic_data.tsv.gz'
csv_name = os.path.splitext(csv_name_gz)[0]
csv_file_phen = _fetch_files(
data_dir, [(csv_name, files[csv_name_gz]['download_url'],
{'md5': files[csv_name_gz].get('md5', None),