def test_split_label(): aparc = labels_from_parc('fsaverage', 'aparc', 'lh', regexp='lingual', subjects_dir=subjects_dir)[0] lingual = aparc[0] # split with names parts = ('lingual_post', 'lingual_ant') post, ant = split_label(lingual, parts, subjects_dir=subjects_dir) # check output names assert_equal(post.name, parts[0]) assert_equal(ant.name, parts[1]) # check vertices add up lingual_reconst = post + ant lingual_reconst.name = lingual.name lingual_reconst.comment = lingual.comment assert_labels_equal(lingual_reconst, lingual) # compare output of Label.split() method post1, ant1 = lingual.split(parts, subjects_dir=subjects_dir) assert_labels_equal(post1, post) assert_labels_equal(ant1, ant) # compare fs_like split with freesurfer split antmost = split_label(lingual, 40, None, subjects_dir, True)[-1] fs_vert = [210, 4401, 7405, 12079, 16276, 18956, 26356, 32713, 32716, 32719, 36047, 36050, 42797, 42798, 42799, 59281, 59282, 59283, 71864, 71865, 71866, 71874, 71883, 79901, 79903, 79910, 103024, 107849, 107850, 122928, 139356, 139357, 139373, 139374, 139375, 139376, 139377, 139378, 139381, 149117, 149118, 149120, 149127] assert_array_equal(antmost.vertices, fs_vert) # check default label name assert_equal(antmost.name, "lingual_div40-lh")
def test_split_label(): """Test splitting labels""" aparc = read_labels_from_annot('fsaverage', 'aparc', 'lh', regexp='lingual', subjects_dir=subjects_dir) lingual = aparc[0] # Test input error assert_raises(ValueError, lingual.split, 'bad_input_string') # split with names parts = ('lingual_post', 'lingual_ant') post, ant = split_label(lingual, parts, subjects_dir=subjects_dir) # check output names assert_equal(post.name, parts[0]) assert_equal(ant.name, parts[1]) # check vertices add up lingual_reconst = post + ant lingual_reconst.name = lingual.name lingual_reconst.comment = lingual.comment lingual_reconst.color = lingual.color assert_labels_equal(lingual_reconst, lingual) # compare output of Label.split() method post1, ant1 = lingual.split(parts, subjects_dir=subjects_dir) assert_labels_equal(post1, post) assert_labels_equal(ant1, ant) # compare fs_like split with freesurfer split antmost = split_label(lingual, 40, None, subjects_dir, True)[-1] fs_vert = [ 210, 4401, 7405, 12079, 16276, 18956, 26356, 32713, 32716, 32719, 36047, 36050, 42797, 42798, 42799, 59281, 59282, 59283, 71864, 71865, 71866, 71874, 71883, 79901, 79903, 79910, 103024, 107849, 107850, 122928, 139356, 139357, 139373, 139374, 139375, 139376, 139377, 139378, 139381, 149117, 149118, 149120, 149127 ] assert_array_equal(antmost.vertices, fs_vert) # check default label name assert_equal(antmost.name, "lingual_div40-lh") # Apply contiguous splitting to DMN label from parcellation in Yeo, 2011 label_default_mode = read_label( op.join(subjects_dir, 'fsaverage', 'label', 'lh.7Networks_7.label')) DMN_sublabels = label_default_mode.split(parts='contiguous', subject='fsaverage', subjects_dir=subjects_dir) assert_equal([len(label.vertices) for label in DMN_sublabels], [16181, 7022, 5965, 5300, 823] + [1] * 23)
def test_split_label(): """Test splitting labels""" aparc = read_labels_from_annot('fsaverage', 'aparc', 'lh', regexp='lingual', subjects_dir=subjects_dir) lingual = aparc[0] # Test input error assert_raises(ValueError, lingual.split, 'bad_input_string') # split with names parts = ('lingual_post', 'lingual_ant') post, ant = split_label(lingual, parts, subjects_dir=subjects_dir) # check output names assert_equal(post.name, parts[0]) assert_equal(ant.name, parts[1]) # check vertices add up lingual_reconst = post + ant lingual_reconst.name = lingual.name lingual_reconst.comment = lingual.comment lingual_reconst.color = lingual.color assert_labels_equal(lingual_reconst, lingual) # compare output of Label.split() method post1, ant1 = lingual.split(parts, subjects_dir=subjects_dir) assert_labels_equal(post1, post) assert_labels_equal(ant1, ant) # compare fs_like split with freesurfer split antmost = split_label(lingual, 40, None, subjects_dir, True)[-1] fs_vert = [210, 4401, 7405, 12079, 16276, 18956, 26356, 32713, 32716, 32719, 36047, 36050, 42797, 42798, 42799, 59281, 59282, 59283, 71864, 71865, 71866, 71874, 71883, 79901, 79903, 79910, 103024, 107849, 107850, 122928, 139356, 139357, 139373, 139374, 139375, 139376, 139377, 139378, 139381, 149117, 149118, 149120, 149127] assert_array_equal(antmost.vertices, fs_vert) # check default label name assert_equal(antmost.name, "lingual_div40-lh") # Apply contiguous splitting to DMN label from parcellation in Yeo, 2011 label_default_mode = read_label(op.join(subjects_dir, 'fsaverage', 'label', 'lh.7Networks_7.label')) DMN_sublabels = label_default_mode.split(parts='contiguous', subject='fsaverage', subjects_dir=subjects_dir) assert_equal([len(label.vertices) for label in DMN_sublabels], [16181, 7022, 5965, 5300, 823] + [1] * 23)
def test_split_label(): """Test splitting labels""" aparc = read_labels_from_annot('fsaverage', 'aparc', 'lh', regexp='lingual', subjects_dir=subjects_dir) lingual = aparc[0] # split with names parts = ('lingual_post', 'lingual_ant') post, ant = split_label(lingual, parts, subjects_dir=subjects_dir) # check output names assert_equal(post.name, parts[0]) assert_equal(ant.name, parts[1]) # check vertices add up lingual_reconst = post + ant lingual_reconst.name = lingual.name lingual_reconst.comment = lingual.comment lingual_reconst.color = lingual.color assert_labels_equal(lingual_reconst, lingual) # compare output of Label.split() method post1, ant1 = lingual.split(parts, subjects_dir=subjects_dir) assert_labels_equal(post1, post) assert_labels_equal(ant1, ant) # compare fs_like split with freesurfer split antmost = split_label(lingual, 40, None, subjects_dir, True)[-1] fs_vert = [ 210, 4401, 7405, 12079, 16276, 18956, 26356, 32713, 32716, 32719, 36047, 36050, 42797, 42798, 42799, 59281, 59282, 59283, 71864, 71865, 71866, 71874, 71883, 79901, 79903, 79910, 103024, 107849, 107850, 122928, 139356, 139357, 139373, 139374, 139375, 139376, 139377, 139378, 139381, 149117, 149118, 149120, 149127 ] assert_array_equal(antmost.vertices, fs_vert) # check default label name assert_equal(antmost.name, "lingual_div40-lh")
def split(label, parts=2): return mne.split_label(label, parts, subjects_dir=subjects_dir)
def SN_semantic_ROIs(): # Loading Human Connectom Project parcellation mne.datasets.fetch_hcp_mmp_parcellation(subjects_dir=C.data_path,verbose=True) labels = mne.read_labels_from_annot('fsaverage', 'HCPMMP1', 'both',\ subjects_dir=C.data_path) ##............................. Control Regions ............................## # Temporal area - Splitting STSvp label_STSvp = ['L_STSvp_ROI-lh'] my_STSvp=[] for j in np.arange(0,len(label_STSvp )): my_STSvp.append([label for label in labels if label.name == \ label_STSvp[j]][0]) for m in np.arange(0,len(my_STSvp)): if m==0: STSvp = my_STSvp[m] else: STSvp = STSvp + my_STSvp[m] [STSvp1,STSvp2,STSvp3,STSvp4,STSvp5,STSvp6]=mne.split_label(label=STSvp,parts\ =('L_STSvp1_ROI-lh','L_STSvp2_ROI-lh','L_STSvp3_ROI-lh','L_STSvp4_ROI-lh', 'L_STSvp5_ROI-lh','L_STSvp6_ROI-lh',),subject='fsaverage',subjects_dir=\ C.data_path) # Temporal area - Splitting PH label_PH = ['L_PH_ROI-lh'] my_PH=[] for j in np.arange(0,len(label_PH )): my_PH.append([label for label in labels if label.name == label_PH[j]][0]) for m in np.arange(0,len(my_PH)): if m==0: PH = my_PH[m] else: PH = PH + my_PH[m] [PH1,PH2]=mne.split_label(label=PH,parts=('L_PH1_ROI-lh','L_PH2_ROI-lh')\ ,subject='fsaverage',subjects_dir=C.data_path) [PH21,PH22,PH23,PH24]=mne.split_label(label=PH2,parts=\ ('L_PH21_ROI-lh','L_PH22_ROI-lh','L_PH23_ROI-lh','L_PH24_ROI-lh'),\ subject='fsaverage',subjects_dir=C.data_path) # Temporal area - Splitting TE2p label_TE2p = ['L_TE2p_ROI-lh'] my_TE2p=[] for j in np.arange(0,len(label_TE2p )): my_TE2p.append([label for label in labels if label.name == label_TE2p[j]][0]) for m in np.arange(0,len(my_TE2p)): if m==0: TE2p = my_TE2p[m] else: TE2p = TE2p + my_TE2p[m] [TE2p1,TE2p2]=mne.split_label(label=TE2p,parts=('L_TE2p1_ROI-lh',\ 'L_TE2p2_ROI-lh'),subject='fsaverage',subjects_dir=C.data_path) # Temporal area label_TE1p = ['L_TE1p_ROI-lh'] my_TE1p=[] for j in np.arange(0,len(label_TE1p )): my_TE1p.append([label for label in labels if label.name == label_TE1p[j]][0]) for m in np.arange(0,len(my_TE1p)): if m==0: TE1p = my_TE1p[m] else: TE1p = TE1p + my_TE1p[m] TG= STSvp1 + STSvp2 + STSvp3 + STSvp4 + TE2p1 + PH24 +TE1p ##.......................... Representation Regions .........................## # Left ATL area - splitting TE2a label_TE2a = ['L_TE2a_ROI-lh'] my_TE2a=[] for j in np.arange(0,len(label_TE2a )): my_TE2a.append([label for label in labels if label.name == label_TE2a[j]][0]) for m in np.arange(0,len(my_TE2a)): if m==0: l_TE2a = my_TE2a[m] else: l_TE2a = l_TE2a + my_TE2a[m] [l_TE2a1,l_TE2a2,l_TE2a3]=mne.split_label(label=l_TE2a,parts=\ ('L_TE2a1_ROI-lh','L_TE2a2_ROI-lh','L_TE2a3_ROI-lh'),subject='fsaverage',\ subjects_dir=C.data_path) # Left ATL area - splitting TE1m label_TE1m = ['L_TE1m_ROI-lh'] my_TE1m=[] for j in np.arange(0,len(label_TE1m )): my_TE1m.append([label for label in labels if label.name == label_TE1m[j]][0]) for m in np.arange(0,len(my_TE1m)): if m==0: l_TE1m = my_TE1m[m] else: l_TE1m = l_TE1m + my_TE1m[m] [l_TE1m1,l_TE1m2,l_TE1m3]=mne.split_label(label=l_TE1m,parts=\ ('L_TE1m1_ROI-lh','L_TE1m2_ROI-lh','L_TE1m3_ROI-lh'),subject='fsaverage',\ subjects_dir=C.data_path) [l_TE1m11,l_TE1m12,l_TE1m13]=mne.split_label(label=l_TE1m1,parts=\ ('L_TE1m11_ROI-lh','L_TE1m12_ROI-lh','L_TE1m13_ROI-lh'),subject='fsaverage',\ subjects_dir=C.data_path) [l_TE1m21,l_TE1m22,l_TE1m23]=mne.split_label(label=l_TE1m2,parts=\ ('L_TE1m21_ROI-lh','L_TE1m22_ROI-lh','L_TE1m23_ROI-lh'),subject='fsaverage',\ subjects_dir=C.data_path) # Left ATL area label_ATL = ['L_TGd_ROI-lh','L_TGv_ROI-lh','L_TE1a_ROI-lh'] my_ATL=[] for j in np.arange(0,len(label_ATL )): my_ATL.append([label for label in labels if label.name == label_ATL[j]][0]) for m in np.arange(0,len(my_ATL)): if m==0: l_ATL = my_ATL[m] else: l_ATL = l_ATL + my_ATL[m] l_ATL = l_ATL + l_TE2a2 + l_TE2a3 + l_TE1m13 + l_TE1m23 # Right ATL area - splitting TE2a label_TE2a = ['R_TE2a_ROI-rh'] my_TE2a=[] for j in np.arange(0,len(label_TE2a )): my_TE2a.append([label for label in labels if label.name == label_TE2a[j]][0]) for m in np.arange(0,len(my_TE2a)): if m==0: r_TE2a = my_TE2a[m] else: r_TE2a = r_TE2a + my_TE2a[m] [r_TE2a1,r_TE2a2,r_TE2a3]=mne.split_label(label=r_TE2a,parts=\ ('R_TE2a1_ROI-rh','R_TE2a2_ROI-rh','R_TE2a3_ROI-rh'),subject='fsaverage',\ subjects_dir=C.data_path) # Right ATL area - splitting TE1m label_TE1m = ['R_TE1m_ROI-rh'] my_TE1m=[] for j in np.arange(0,len(label_TE1m )): my_TE1m.append([label for label in labels if label.name == label_TE1m[j]][0]) for m in np.arange(0,len(my_TE1m)): if m==0: r_TE1m = my_TE1m[m] else: r_TE1m = r_TE1m + my_TE1m[m] [r_TE1m1,r_TE1m2,r_TE1m3]=mne.split_label(label=r_TE1m,parts=\ ('R_TE1m1_ROI-rh','R_TE1m2_ROI-rh','R_TE1m3_ROI-rh'),subject='fsaverage',\ subjects_dir=C.data_path) [r_TE1m31,r_TE1m32,r_TE1m33]=mne.split_label(label=r_TE1m3,parts=\ ('R_TE1m31_ROI-rh','R_TE1m32_ROI-rh','R_TE1m33_ROI-rh'),subject='fsaverage',\ subjects_dir=C.data_path) # Right ATL area label_ATL = ['R_TGd_ROI-rh','R_TGv_ROI-rh','R_TE1a_ROI-rh'] my_ATL=[] for j in np.arange(0,len(label_ATL )): my_ATL.append([label for label in labels if label.name == label_ATL[j]][0]) for m in np.arange(0,len(my_ATL)): if m==0: r_ATL = my_ATL[m] else: r_ATL = r_ATL + my_ATL[m] r_ATL = r_ATL + r_TE2a2 + r_TE2a3 + r_TE1m33 ## ............................ Angular Gyrus .............................. ## label_AG = ['L_PGi_ROI-lh','L_PGp_ROI-lh','L_PGs_ROI-lh'] my_AG=[] for j in np.arange(0,len(label_AG)): my_AG.append([label for label in labels if label.name == label_AG[j]][0]) for m in np.arange(0,len(my_AG )): if m==0: AG = my_AG[m] else: AG = AG + my_AG[m] ## ....................... Inferior Frontal Gyrus ......................... ## label_IFG = ['L_44_ROI-lh','L_45_ROI-lh','L_47l_ROI-lh','L_p47r_ROI-lh'] my_IFG=[] for j in np.arange(0,len(label_IFG )): my_IFG.append([label for label in labels if label.name == label_IFG[j]][0]) for m in np.arange(0,len(my_IFG)): if m==0: IFG = my_IFG[m] else: IFG = IFG + my_IFG[m] ## ............................, Visual Area ............................... ## label_V1 = ['L_V1_ROI-lh','L_V2_ROI-lh','L_V3_ROI-lh','L_V4_ROI-lh'] my_V1 =[] for j in np.arange(0,len(label_V1 )): my_V1.append([label for label in labels if label.name == label_V1[j]][0]) V1= my_V1[0] my_labels =[l_ATL,r_ATL,TG,IFG,AG,V1] return my_labels
# Temporal area - Splitting STSvp label_STSvp = ['L_STSvp_ROI-lh'] my_STSvp = [] for j in np.arange(0, len(label_STSvp)): my_STSvp.append([label for label in labels if label.name == \ label_STSvp[j]][0]) for m in np.arange(0, len(my_STSvp)): if m == 0: STSvp = my_STSvp[m] else: STSvp = STSvp + my_STSvp[m] [STSvp1,STSvp2,STSvp3,STSvp4,STSvp5,STSvp6]=mne.split_label(label=STSvp,parts\ =('L_STSvp1_ROI-lh','L_STSvp2_ROI-lh','L_STSvp3_ROI-lh','L_STSvp4_ROI-lh', 'L_STSvp5_ROI-lh','L_STSvp6_ROI-lh',),subject='fsaverage',subjects_dir=\ C.data_path) # Temporal area - Splitting PH label_PH = ['L_PH_ROI-lh'] my_PH = [] for j in np.arange(0, len(label_PH)): my_PH.append([label for label in labels if label.name == label_PH[j]][0]) for m in np.arange(0, len(my_PH)): if m == 0: PH = my_PH[m] else: PH = PH + my_PH[m] [PH1,PH2]=mne.split_label(label=PH,parts=('L_PH1_ROI-lh','L_PH2_ROI-lh')\