Skip to content

Commit d17e70d

Browse files
authored
Merge pull request #73 from rmarkello/enh/schaefer2018
[ENH] Add fslr32k schaefer atlases
2 parents f684a35 + ef4a589 commit d17e70d

File tree

3 files changed

+26
-10
lines changed

3 files changed

+26
-10
lines changed

netneurotools/data/osf.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,13 @@
343343
"5dbc8d7bcfc96c000ec6dca2"
344344
],
345345
"md5": "8738daccab4648c3e891a1c8d3a9ec1f"
346+
},
347+
"fslr32k": {
348+
"url": [
349+
"mb37e",
350+
"5e3086e4af75930094bdd507"
351+
],
352+
"md5": "d8378f33107ed5d98c27e8070ebb5aa2"
346353
}
347354
}
348355
}

netneurotools/datasets/fetchers.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -489,7 +489,7 @@ def fetch_schaefer2018(version='fsaverage', data_dir=None, url=None,
489489
490490
Parameters
491491
----------
492-
version : {'fsaverage', 'fsaverage5', 'fsaverage6'}
492+
version : {'fsaverage', 'fsaverage5', 'fsaverage6', 'fslr32k'}
493493
Specifies which surface annotation files should be matched to. Default:
494494
'fsaverage'
495495
data_dir : str, optional
@@ -523,7 +523,7 @@ def fetch_schaefer2018(version='fsaverage', data_dir=None, url=None,
523523
License: https://github.com/ThomasYeoLab/CBIG/blob/master/LICENSE.md
524524
"""
525525

526-
versions = ['fsaverage', 'fsaverage5', 'fsaverage6']
526+
versions = ['fsaverage', 'fsaverage5', 'fsaverage6', 'fslr32k']
527527
if version not in versions:
528528
raise ValueError('The version of Schaefer et al., 2018 parcellation '
529529
'requested "{}" does not exist. Must be one of {}'
@@ -546,16 +546,22 @@ def fetch_schaefer2018(version='fsaverage', data_dir=None, url=None,
546546
'move': '{}.tar.gz'.format(dataset_name)
547547
}
548548

549+
if version == 'fslr32k':
550+
hemispheres, suffix = ['LR'], 'dlabel.nii'
551+
else:
552+
hemispheres, suffix = ['L', 'R'], 'annot'
549553
filenames = [
550-
'atl-Schaefer2018_space-{}_hemi-{}_desc-{}_deterministic.annot'
551-
.format(version, hemi, desc) for desc in keys for hemi in ['L', 'R']
554+
'atl-Schaefer2018_space-{}_hemi-{}_desc-{}_deterministic.{}'
555+
.format(version, hemi, desc, suffix)
556+
for desc in keys for hemi in hemispheres
552557
]
553558

554559
files = [(op.join(dataset_name, version, f), url, opts)
555560
for f in filenames]
556561
data = _fetch_files(data_dir, files=files, resume=resume, verbose=verbose)
557562

558-
data = [data[i:i + 2] for i in range(0, len(keys) * 2, 2)]
563+
if suffix == 'annot':
564+
data = [data[i:i + 2] for i in range(0, len(keys) * 2, 2)]
559565

560566
return Bunch(**dict(zip(keys, data)))
561567

netneurotools/tests/test_datasets.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ def test_fetch_connectome(tmpdir, dataset, expected):
125125

126126

127127
@pytest.mark.parametrize('version', [
128-
'fsaverage', 'fsaverage5', 'fsaverage6'
128+
'fsaverage', 'fsaverage5', 'fsaverage6', 'fslr32k'
129129
])
130130
def test_fetch_schaefer2018(tmpdir, version):
131131
keys = [
@@ -134,10 +134,13 @@ def test_fetch_schaefer2018(tmpdir, version):
134134
]
135135
schaefer = datasets.fetch_schaefer2018(version, data_dir=tmpdir, verbose=0)
136136

137-
assert all(k in schaefer
138-
and len(schaefer[k]) == 2
139-
and all(os.path.isfile(hemi) for hemi in schaefer[k])
140-
for k in keys)
137+
if version == 'fslr32k':
138+
assert all(k in schaefer and os.path.isfile(schaefer[k]) for k in keys)
139+
else:
140+
assert all(k in schaefer
141+
and len(schaefer[k]) == 2
142+
and all(os.path.isfile(hemi) for hemi in schaefer[k])
143+
for k in keys)
141144

142145

143146
def test_fetch_hcp_standards(tmpdir):

0 commit comments

Comments
 (0)