In [1]:
clear all




In [2]:
import matplotlib
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
from scipy import io
import scipy.io as sio
%matplotlib inline 
import pylab
import csv
from Tkinter import Tk
from tkFileDialog import askopenfilename
from tkFileDialog import askdirectory
import nibabel as nb
from scipy import io
#from nifti import NiftiImage
import nibabel as nb
from scipy.interpolate import interp1d
from scipy import ndimage

Open data


In [3]:
# from http://stackoverflow.com/questions/3579568/choosing-a-file-in-python-with-simple-dialog
Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing
filename = askopenfilename() # show an "Open" dialog box and return the path to the selected file
print(filename)


/media/sophie/008C0665790F0763/ComboPanNeuronalGCaMP6/100049-100050/100049-100050regpsfkf235Smith0_4_60TS.mat

In [4]:
Ua=sio.loadmat(filename)
DT=Ua['TSo']
DT.shape


Out[4]:
(13395, 235)

In [5]:
# from http://stackoverflow.com/questions/3579568/choosing-a-file-in-python-with-simple-dialog
Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing
filename2 = askopenfilename() # show an "Open" dialog box and return the path to the selected file
print(filename2)


/media/sophie/008C0665790F0763/ComboPanNeuronalGCaMP6/100049-100050/100049-100050regpsfkf235Smith0_4_60IC.nii

In [6]:
img1 = nb.load(filename2)
data = img1.get_data()
S=data.shape
S


Out[6]:
(87, 52, 10, 235)

In [7]:
S=data.shape
S


Out[7]:
(87, 52, 10, 235)

Z-score


In [8]:
Demean=np.zeros(S)
Dmaps=np.zeros(S)
Dvar=np.zeros(S)
Var=np.zeros(S[3])
D2=np.zeros([S[0],S[1],5,S[3]])
Tvar=np.zeros(S[3])

In [9]:
for i in range(S[3]):
    Demean[:,:,:,i]=data[:,:,:,i]-np.mean(np.mean(np.mean(data[:,:,:,i],0),0),0)

In [10]:
for i in range(S[3]):
    Dsq=np.reshape(Demean[:,:,:,i],S[0]*S[1]*S[2])
    Var[i]=np.sqrt(np.var(Dsq))
    Dvar=Demean[:,:,:,i]/Var[i]
    Dmaps[:,:,:,i]=Dvar-2.5
    Tvar[i]=np.var(DT[i,:])
Dmaps[Dmaps<0]=0

Open Masks


In [11]:
# from http://stackoverflow.com/questions/3579568/choosing-a-file-in-python-with-simple-dialog
from Tkinter import Tk
from tkFileDialog import askopenfilename

Tk().withdraw() # we don't want a full GUI, so keep the root window from appearing
filenameM = askopenfilename() # show an "Open" dialog box and return the path to the selected file
print(filenameM)
img1 = nb.load(filenameM)
Masks = img1.get_data()
Sm=Masks.shape
Masks=np.array(Masks)


/media/sophie/008C0665790F0763/ComboPanNeuronalGCaMP6/100049-100050/100049_100050Registration/JFRC100049Transformedfullpsftrimmed.nii

In [12]:
filenameM='/home/sophie/RegionList'
with open(filenameM) as f:
    content = f.readlines()
Names=[Line.split('\t') for Line in content]
RegionName=[Names[i][0] for i in range(75)]
Num=[int(Names[i][2]) for i in range(75)]

Average in masks to sort components by brain region


In [13]:
Dmaps.shape


Out[13]:
(87, 52, 10, 235)

In [14]:
M=np.zeros((S[3],86))
Mapmean=np.zeros(S[3])
MMasks=np.zeros(86)

In [15]:
for i in range(S[3]):
    Mapmean[i]=np.mean(np.mean(np.mean(Dmaps[:,:,:,i])))
    for j in range(86):
        MMasks[j]=np.mean(np.mean(np.mean(Masks[:,:,:,j])))
        if MMasks[j]:
            M[i,j]=np.mean(np.mean(np.mean(Masks[:,:,:,j]*Dmaps[:,:,:,i])))/(MMasks[j]*Mapmean[i])

In [16]:
CompMainName=S[3]*['']
CompNameAdd=np.zeros((S[3],86))
for i in range(S[3]):
    Max=np.max(M[i,:])
    I=np.argmax(M[i,:])+1
    for j in range(86):
        J=[l for l in range(74) if Num[l]==(j+1)]
        if M[i,j]>0.2*Max:
            CompNameAdd[i,J]=1
    J=[l for l in range(74) if Num[l]==I]
    if J!= []:
        CompMainName[i]=Names[np.array(J)][0]


/usr/local/lib/python2.7/dist-packages/ipykernel/__main__.py:12: VisibleDeprecationWarning: converting an array with ndim > 0 to an index will result in an error in the future

In [17]:
J


Out[17]:
[71]

In [18]:
pylab.rcParams['figure.figsize'] = (13, 2.5)

h=5
tot=0
GoodICAnat=np.zeros(S[3])

for l in range(74):
    Final_maps=np.zeros((S[0],S[1],3))
    Fmap=np.zeros((S[0],S[1],3))
    C=np.zeros(3)

    n=0
    for i in range(len(CompMainName)):                    
        Dmmv=np.mean(data[:,:,:,i],2) 
        Dmmv[Dmmv<0.2*np.max(np.max(np.max(Dmmv)))]=0
        C=np.squeeze(np.random.rand(3,1))
        labeled, nrobject=ndimage.label(Dmmv>0)
        
        if CompMainName[i]==Names[l][0] and (sum(CompNameAdd[i,:])<5) and nrobject<200:
            n=n+1            
            
            for k in range(3):
                Fmap[:,:,k]=0.7*Dmmv*C[k]/np.max(C)
            Final_maps=Final_maps+Fmap
            #plt.plot(Time_fluoICA.T,(DT[:,i]/np.sqrt(np.var(DT[:,i]))-h*n+2),color=C/2)
            plt.plot((DT[:,i]/np.sqrt(np.var(DT[:,i]))-h*n+2),color=C/2)
            tot=tot+1
            GoodICAnat[i]=1
            #print(i)
            for j in range(86):
                if CompNameAdd[i,j]==1:                
                    print(Names[np.array(j)][0])
            print(i)
            
                    
    if n!=0:
        print(Names[l][1])

        plt.show()
        FM=Final_maps/np.max(np.max(Final_maps))
        FM[FM<0.1]=0
        plt.imshow(FM,interpolation='none')
        plt.show()
        frame1 = plt.gca()
        frame1.axes.get_xaxis().set_visible(False)
        frame1.axes.get_yaxis().set_visible(False)


LO_R
31
LO_R
54
LO_R
70
LO_R
ME_R
73
LO_R
ME_R
81
LO_R
ME_R
91
LO_R
LOP_R
ME_R
113
LO_R
126
LO_R
MB_PED_R
ME_R
MB_CA_L
145
lobula
PB
59
PB
68
PB
ATL_R
FB
ATL_L
104
PB
182
protocerebral bridge
LH_R
MB_CA_R
88
LH_R
PLP_R
100
LH_R
AL_R
103
LH_R
SLP_R
174
lateral horn
LAL_R
AL_R
92
lateral accessory lobe
SAD
GNG
PRW
67
saddle
CAN_R
FLA_L
SMP_L
130
cantle
PB
ATL_R
EB
79
antler
MB_VL_R
LOP_R
39
MB_VL_R
MB_ML_R
SIP_R
55
MB_PED_R
MB_VL_R
SCL_R
131
vertical lobe of adult mushroom body
MB_ML_R
53
CRE_R
MB_VL_R
MB_ML_R
90
medial lobe of adult mushroom body
FLA_R
AL_R
SMP_R
SMP_L
143
flange
EB
96
EB
122
ellipsoid body
LAL_R
CRE_R
AL_R
64
LH_R
AL_R
MB_CA_R
155
adult antennal lobe
ME_R
0
ME_R
1
ME_R
2
LOP_R
ME_R
3
ME_R
4
ME_R
6
LOP_R
ME_R
7
ME_R
8
ME_R
9
ME_R
10
ME_R
IVLP_L
11
LO_R
LOP_R
ME_R
12
ME_R
14
ME_R
16
ME_R
17
LOP_R
ME_R
20
ME_R
23
ME_R
24
ME_R
26
ME_R
28
ME_R
30
ME_R
33
LOP_R
ME_R
37
LO_R
ME_R
38
ME_R
41
ME_R
42
LO_R
ME_R
43
ME_R
44
ME_R
48
ME_R
49
LO_R
ME_R
50
ME_R
52
ME_R
62
ME_R
66
LO_R
ME_R
69
ME_R
77
ME_R
83
LO_R
ME_R
89
ME_R
95
LO_R
ME_R
99
LO_R
ME_R
102
LO_R
MB_ML_R
ME_R
SPS_R
106
ME_R
107
ME_R
110
ME_R
116
LO_R
ME_R
127
CAN_R
ME_R
138
ME_R
144
LO_R
MB_ML_R
ME_R
154
LOP_R
ME_R
166
IB_R
ME_R
SPS_L
IPS_L
213
ME_R
SCL_L
231
medulla
FB
SMP_L
165
fan-shaped body
SLP_R
5
LH_R
SLP_R
159
superior lateral protocerebrum
SMP_R
SMP_L
35
SMP_R
56
SMP_R
112
SMP_R
118
SMP_R
SMP_L
134
SMP_R
SMP_L
151
SMP_R
SMP_L
160
SMP_R
167
SMP_R
SMP_L
168
CRE_R
ME_R
SMP_R
SIP_L
208
superior medial protocerebrum
AVLP_R
PVLP_R
AVLP_L
25
AVLP_R
32
anterior ventrolateral protocerebrum
AMMC_R
IVLP_R
21
wedge
PLP_R
132
posterior lateral protocerebrum
MB_VL_R
MB_CA_R
MB_VL_L
71
AOTU_R
MB_CA_R
MB_PED_L
200
calyx of adult mushroom body
SPS_R
162
superior posterior slope
GNG
15
SAD
IPS_R
GNG
40
GNG
45
GNG
46
GNG
47
GNG
87
IPS_R
GNG
IPS_L
105
GNG
108
IPS_R
GNG
111
GNG
114
GNG
129
GNG
135
MB_CA_R
GNG
MB_CA_L
137
GNG
141
MB_VL_R
GNG
170
adult gnathal ganglion
PRW
FLA_L
19
PRW
180
prow
LO_L
ME_L
115
lobula
LH_L
61
lateral horn
LAL_R
LAL_L
AL_L
85
LAL_L
AL_L
142
lateral accessory lobe
AMMC_L
18
GOR_R
AMMC_L
CRE_L
227
antennal mechanosensory and motor center
CRE_L
MB_VL_L
MB_ML_L
76
crepine
ICL_R
ME_R
MB_PED_L
34
pedunculus of adult mushroom body
MB_VL_L
SIP_L
75
vertical lobe of adult mushroom body
MB_ML_L
121
medial lobe of adult mushroom body
LAL_L
AL_L
60
AL_R
LAL_L
AL_L
94
adult antennal lobe
LO_L
LOP_L
ME_L
13
LOP_L
ME_L
57
LO_L
ME_L
65
ME_L
78
ME_R
ME_L
97
LO_L
ME_L
101
ME_L
119
medulla
SLP_L
148
SLP_L
PLP_L
157
superior lateral protocerebrum
SLP_L
SIP_L
SMP_L
36
SMP_L
51
SMP_L
124
MB_VL_R
SMP_R
SMP_L
MB_CA_L
150
SMP_L
158
SMP_L
195
superior medial protocerebrum
AVLP_L
29
anterior ventrolateral protocerebrum
LH_L
MB_VL_L
MB_CA_L
22
MB_CA_L
86
LH_L
MB_CA_L
153
calyx of adult mushroom body
SLP_R
LOP_L
SIP_L
IPS_L
234
inferior posterior slope
Looked at the components maps and time series and remove all the components which are localized on the edge of the brain and with activity unlike GCaMP6 transients.

In [19]:
BadICs=[5,71,200,162,40,46,87,105,170,129,111,227,34,234]

In [20]:
for idx in BadICs:
    GoodICAnat[idx] = 0.0

Reorder by larger sub-regions (~ presumed stimulus to motor)


In [21]:
LargerRegionsDic={'':'','AME_R':'OL','LO_R':'OL','NO':'CX','BU_R':'CX','PB':'CX','LH_R':'LH','LAL_R':'LX','SAD':'PENP'
               ,'CAN_R':'PENP','AMMC_R':'PENP','ICL_R':'INP','VES_R':'VMNP','IB_R':'INP','ATL_R':'INP','CRE_R':'INP'
               ,'MB_PED_R':'MB','MB_VL_R':'MB','MB_ML_R':'MB','FLA_R':'PENP','LOP_R':'OL','EB':'CX','AL_R':'AL',
                'ME_R':'OL','FB':'CX','SLP_R':'SNP','SIP_R':'SNP','SMP_R':'SNP','AVLP_R':'VLNP','PVLP_R':'VLNP',
                'IVLP_R':'VLNP','PLP_R':'VLNP','AOTU_R':'VLNP','GOR_R':'VMNP','MB_CA_R':'MB','SPS_R':'VMNP',
                'IPS_R':'VMNP','SCL_R':'INP','EPA_R':'VMNP','GNG':'GNG','PRW':'PENP','GA_R':'LX','AME_L':'OL'
                ,'LO_L':'OL','BU_L':'CX','LH_L':'LH','LAL_L':'LX','CAN_L':'PENP','AMMC_L':'PENP','ICL_L':'INP',
                'VES_L':'VMNP','IB_L':'INP','ATL_L':'INP','CRE_L':'INP','MB_PED_L':'MB','MB_VL_L':'MB',
                'MB_ML_L':'MB','FLA_L':'PENP','LOP_L':'OL','AL_L':'AL','ME_L':'OL','SLP_L':'SNP','SIP_L':'SNP',
                'SMP_L':'SNP','AVLP_L':'VLNP','PVLP_L':'VLNP','IVLP_L':'VLNP','PLP_L':'VLNP','AOTU_L':'VLNP',
                'GOR_L':'VMNP','MB_CA_L':'MB','SPS_L':'VMNP','IPS_L':'VMNP','SCL_L':'INP','EPA_L':'VMNP','GA_L':'LX'}

SmallRegionsSorted=['ME_L','ME_R','LO_R','LO_L','LOP_R','LOP_L','AME_R','AME_L',
                  'PLP_R','PLP_L','PVLP_R','PVLP_L','AVLP_R','AVLP_L','AOTU_R','AOTU_L','IVLP_R','IVLP_L',
                  'AL_R','AL_L',
                  'MB_CA_R','MB_CA_L','MB_PED_R','MB_PED_L','MB_VL_R','MB_VL_L','MB_ML_R','MB_ML_L',
                  'SMP_R','SMP_L','SIP_R','SLP_L','SLP_R','SIP_L',
                  'LH_R','LH_L',                  
                  'CRE_R','CRE_L','ICL_R','ICL_L','SCL_R','SCL_L','IB_R','IB_L','ATL_R','ATL_L',
                  'EB','PB','NO','FB',
                  'BU_R','BU_L','LAL_R','LAL_L','GA_R','GA_L',
                  'GOR_R','GOR_L','EPA_R','EPA_L','VES_R','VES_L','SPS_R','SPS_L','IPS_R','IPS_L',
                  'AMMC_R','AMMC_L','SAD','FLA_R','FLA_L','PRW','CAN_R','CAN_L',
                  'GNG','']

Tozip=range(len(SmallRegionsSorted))
SmallRegionsDic=dict(zip(SmallRegionsSorted,Tozip))

LargerRegion=[LargerRegionsDic[CompMainName[i]] for i in range(S[3])]

LargerRegionInd={ 'OL':1,'VLNP':2,'VMNP':3,'AL':4,'MB':5,'LH':6,'SNP':7,'CX':8,'LX':9,'INP':10,'PENP':11,'GNG':12,'':13}

LargerRegionI=np.array([LargerRegionInd[LargerRegion[i]] for i in range(S[3])])

SmallRegion=np.array([SmallRegionsDic[CompMainName[i]] for i in range(S[3])])

NewOrder=np.argsort(SmallRegion)

SmallRegion[NewOrder]


Out[21]:
array([ 0,  0,  0,  0,  0,  0,  0,  0,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,
        1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  1,  2,
        2,  2,  2,  2,  2,  2,  2,  2,  2,  3,  4,  4,  4,  4,  5,  5,  8,
        8,  9, 12, 12, 12, 12, 13, 13, 13, 16, 18, 18, 18, 19, 19, 19, 20,
       20, 20, 20, 21, 21, 21, 21, 21, 23, 23, 23, 24, 24, 24, 24, 24, 24,
       24, 25, 25, 25, 25, 25, 25, 26, 26, 26, 27, 27, 27, 28, 28, 28, 28,
       28, 28, 28, 28, 28, 28, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 29,
       31, 31, 31, 31, 32, 32, 32, 34, 34, 34, 34, 34, 34, 35, 37, 37, 37,
       40, 41, 42, 44, 44, 44, 44, 45, 46, 46, 47, 47, 47, 47, 49, 52, 53,
       53, 57, 58, 59, 59, 62, 62, 62, 62, 65, 67, 67, 68, 69, 69, 69, 69,
       70, 70, 70, 70, 71, 71, 71, 71, 71, 72, 74, 74, 74, 74, 74, 74, 74,
       74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74])

In [22]:
LargerRegionIndToName = {v: k for k, v in LargerRegionInd.iteritems()}

In [23]:
LargerRegionI


Out[23]:
array([ 1,  1,  1,  1,  1,  7,  1,  1,  1,  1,  1,  1,  1,  1,  1, 12,  1,
        1, 11, 11,  1,  2,  5,  1,  1,  2,  1, 12,  1,  2,  1,  1,  2,  1,
        5,  7,  7,  1,  1,  5, 12,  1,  1,  1,  1, 12, 12, 12,  1,  1,  1,
        7,  1,  5,  1,  5,  7,  1,  2,  8,  4,  6,  1,  1,  4,  1,  1, 11,
        8,  1,  1,  5, 12,  1,  1,  5, 10,  1,  1, 10,  5,  1,  5,  1, 10,
        9,  5, 12,  6,  1,  5,  1,  9,  5,  4,  1,  8,  1,  4,  1,  6,  1,
        1,  6,  8, 12,  1,  1, 12,  5,  1, 12,  7,  1, 12,  1,  1,  1,  7,
        1, 12,  5,  8,  5,  7,  1,  1,  1,  3, 12, 11,  5,  2, 10,  7, 12,
       10, 12,  1,  5, 10, 12,  9, 11,  1,  1,  3, 12,  7,  7,  7,  7,  6,
        5,  1,  4,  5,  7,  7,  7,  7,  7,  3, 12,  5,  8,  1,  7,  7,  4,
       12,  5,  1,  7,  6,  5,  7,  1, 11,  5, 11,  3,  8, 11,  5,  7,  5,
       10,  1,  1, 10, 11,  6,  7, 11,  7,  2,  1, 11, 11,  5,  2,  1,  5,
       12, 11,  3, 11,  7,  5, 11,  5,  7,  1,  1,  7,  5,  1, 10,  1,  3,
        3,  2,  5,  2,  1, 10, 11, 10, 11,  2,  1,  1,  3,  3])

In [24]:
GoodICAnat


Out[24]:
array([ 1.,  1.,  1.,  1.,  1.,  0.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,
        1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,  1.,
        1.,  0.,  1.,  1.,  1.,  1.,  1.,  1.,  0.,  1.,  1.,  1.,  1.,
        1.,  0.,  1.,  1.,  1.,  1.,  1.,  0.,  1.,  1.,  1.,  1.,  1.,
        1.,  1.,  1.,  1.,  1.,  1.,  0.,  1.,  1.,  1.,  1.,  0.,  1.,
        1.,  1.,  1.,  1.,  1.,  1.,  0.,  0.,  1.,  0.,  1.,  1.,  1.,
        1.,  1.,  0.,  1.,  0.,  1.,  0.,  1.,  1.,  0.,  1.,  1.,  1.,
        1.,  1.,  0.,  1.,  1.,  1.,  1.,  0.,  1.,  1.,  1.,  1.,  1.,
        1.,  0.,  1.,  1.,  1.,  0.,  1.,  0.,  1.,  1.,  1.,  1.,  1.,
        0.,  1.,  1.,  0.,  1.,  1.,  0.,  1.,  0.,  1.,  1.,  0.,  0.,
        1.,  1.,  1.,  0.,  1.,  1.,  0.,  1.,  1.,  0.,  0.,  1.,  1.,
        1.,  1.,  1.,  0.,  0.,  1.,  0.,  1.,  1.,  0.,  1.,  1.,  1.,
        0.,  1.,  1.,  1.,  1.,  0.,  0.,  0.,  0.,  1.,  1.,  1.,  1.,
        0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,  1.,  0.,
        1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
        1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
        1.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,
        0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  0.,  1.,  0.,  0.,  0.])

In [25]:
pylab.rcParams['figure.figsize'] = (13, 2.5)

h=5
tot=0
NumberInLargeRegion=np.zeros(13)

for l in range(1,13):
    print(LargerRegionIndToName[l])
    Final_maps=np.zeros((S[0],S[1],3))
    Fmap=np.zeros((S[0],S[1],3))
    C=np.zeros(3)

    n=0
    for i in range(len(CompMainName)):                    
        Dmmv=np.mean(data[:,:,:,i],2) 
        Dmmv[Dmmv<0.2*np.max(np.max(np.max(Dmmv)))]=0
        C=np.squeeze(np.random.rand(3,1))
        labeled, nrobject=ndimage.label(Dmmv>0)
        
        if LargerRegionI[i]==l:          
            if GoodICAnat[i]==1:
                for k in range(3):
                    Fmap[:,:,k]=0.7*Dmmv*C[k]/np.max(C)
                Final_maps=Final_maps+Fmap
                #plt.plot(Time_fluoICA.T,(DT[:,i]/np.sqrt(np.var(DT[:,i]))-h*n+2),color=C/2)
                plt.plot((DT[:,i]/np.sqrt(np.var(DT[:,i]))-h*n+2),color=C/2)
                tot=tot+1
                print(i)
                n=n+1 
                    
    if n!=0:

        plt.show()
        FM=Final_maps/np.max(np.max(Final_maps))
        FM[FM<0.1]=0
        plt.imshow(FM,interpolation='none')
        plt.show()
        frame1 = plt.gca()
        frame1.axes.get_xaxis().set_visible(False)
        frame1.axes.get_yaxis().set_visible(False)
        
    NumberInLargeRegion[l]=n


OL
0
1
2
3
4
6
7
8
9
10
11
12
13
14
16
17
20
23
24
26
28
30
31
33
37
38
41
42
43
44
48
49
50
52
54
57
62
65
66
69
70
73
77
78
81
83
89
91
95
97
99
101
102
106
107
110
113
115
116
119
126
127
138
144
145
154
166
213
231
VLNP
21
25
29
32
132
VMNP
AL
60
64
94
155
MB
22
39
53
55
75
86
90
121
131
153
LH
61
88
100
103
174
SNP
35
36
51
56
112
118
124
134
148
150
151
157
158
159
160
167
168
195
208
CX
59
68
96
104
122
165
182
LX
85
92
142
INP
76
79
PENP
18
19
67
130
143
180
GNG
15
45
47
108
114
135
137
141

In [26]:
# Output number of component per region
np.savetxt('/'.join(filename.split('/')[:-1])+'/NumberInLargeRegions.txt',NumberInLargeRegion)

In [ ]: