Exemplo n.º 1
0
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")
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
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")
Exemplo n.º 5
0
 def split(label, parts=2):
     return mne.split_label(label, parts, subjects_dir=subjects_dir)
Exemplo n.º 6
0
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
Exemplo n.º 7
0
 def split(label, parts=2):
     return mne.split_label(label, parts, subjects_dir=subjects_dir)
Exemplo n.º 8
0
# 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')\