Changes for page Code description

Last modified by galluzziandrea on 2022/06/20 12:33

From version 4.2
edited by galluzziandrea
on 2021/12/09 14:39
Change comment: There is no comment for this version
To version 5.1
edited by galluzziandrea
on 2021/12/09 14:46
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,8 +1,8 @@
1 -== Introduction (path and modules) ==
1 +== Introduction (path and modules): ==
2 2  
3 3  First of all we check the path and import the necessary modules .
4 4  
5 -=== Check where I am and place myself in the right folder : ===
5 +=== Check where I am and place myself in the right folder: ===
6 6  
7 7  {{code language="python"}}
8 8  # Import the os module
... ... @@ -18,7 +18,7 @@
18 18  print("Current working directory: {0}".format(os.getcwd()))
19 19  {{/code}}
20 20  
21 -=== import the modules necessary for the simulation ===
21 +=== Import the modules necessary for the simulation: ===
22 22  
23 23  {{code language="python"}}
24 24  import nest
... ... @@ -34,6 +34,211 @@
34 34  
35 35  === ===
36 36  
37 -==== Results ====
37 +=== Define necessary classes to import the Initialization Files: ===
38 38  
39 +
40 +{{code language="python"}}
41 +class ImportIniLIFCA():
42 + #initialize the information to look for in perseo.ini
43 + inf=["NeuronType", #still fixed value
44 + "DelayDistribType", #still fixed value
45 + "SynapticExtractionType", #still fixed value
46 + "Life"]
47 +
48 + def __init__(self,files):
49 + self.files=files
50 +
51 + def FilesControllo(self):
52 + import sys
53 + for i in range(0,len(self.files)):
54 + if self.FileControllo(self.files[i]):
55 + sys.exit(0)
56 +
57 + def FileControllo(self,file1):
58 + try:
59 + f1=open(file1,"r")
60 + f1.close()
61 + return 0
62 + except ValueError:
63 + print("ValueError")
64 + return 1
65 + except IOError as err:
66 + print("OS error: {0}".format(err))
67 + return 1
68 + except:
69 + print("Unexpected error:", sys.exc_info()[0])
70 + return 1
71 +
72 + def Estrai_inf(self,stampa=0):
73 +
74 + InfoPerseo=self.EstraiInfoPerseo() #extract info from perseo.ini
75 + AppoggioTempM=self.EstraiInfoModuli() #extract info from modules.ini
76 + AppoggioTempC=self.EstraiInfoConnectivity() #extract info from connectivity.ini
77 + AppoggioTempP=self.EstraiProtocol() #extract info from protocol.ini
78 +
79 + def getKey(item):
80 + return item[0]
81 + InfoProtocol=AppoggioTempP
82 + # I convert the extracted information into a suitable format from tuple to list
83 +
84 + InfoBuildT=[AppoggioTempM[0]]
85 + for i in range(0,AppoggioTempM[0]):
86 + app1=[int(AppoggioTempM[2][i][0])]
87 + app=(app1+list(AppoggioTempM[2][i][3:9])+list(AppoggioTempM[2][i][12])+list(AppoggioTempM[2][i][9:12]))
88 + InfoBuildT.append(app)
89 + del app
90 +
91 + InfoBuild=[float(InfoBuildT[0])]
92 + for i in range(0,int(InfoBuildT[0])):
93 + app=[]
94 + for j in range(0,11):
95 + app.append(float(InfoBuildT[i+1][j]))
96 + InfoBuild=InfoBuild+[app]
97 + del app
98 +
99 + InfoConnectPop=[AppoggioTempM[0]]
100 + for i in range(0,len(AppoggioTempC[1][:])):
101 + app=list(AppoggioTempC[1][i])
102 + InfoConnectPop.append(app)
103 + del app
104 +
105 + InfoConnectNoise=[AppoggioTempM[0]]
106 + for i in range(0,AppoggioTempM[0]):
107 + app=list(AppoggioTempM[2][i][1:3])
108 + InfoConnectNoise.append(app)
109 +
110 +
111 + if stampa==1: #Print on screen of saved data
112 + for i,j in enumerate(InfoPerseo):
113 + print(self.inf[i],"=",j)
114 + print("\n")
115 + print("the network consists of ", AppoggioTempM[0], " neuronal population" )
116 + print(AppoggioTempM[1])
117 + for i in range(0,AppoggioTempM[0]):
118 + print(AppoggioTempM[2][i])
119 + print("\n")
120 + print(AppoggioTempC[0])
121 + for i in range(0,AppoggioTempM[0]**2):
122 + print(AppoggioTempC[1][i])
123 + print("\n")
124 + for i in InfoProtocol:
125 + print("SET_PARAM"+str(i))
126 +
127 +
128 + return InfoPerseo,InfoBuild,InfoConnectPop,InfoConnectNoise,InfoProtocol
129 +
130 + def EstraiProtocol(self):
131 + import string
132 + f1=open(self.files[3],"r")
133 + ProtocolList= []
134 + for x in f1.readlines():
135 + y=x.split()
136 + if len(y):
137 + if x[0]!="#" and y[0]=="SET_PARAM":
138 + try:
139 + ProtocolList.append([float(y[1]),int(y[2]),float(y[3]),float(y[4])])
140 + except ValueError:
141 + pass
142 + f1.close()
143 + return ProtocolList
144 +
145 + def EstraiInfoPerseo(self):
146 + import string
147 + f1=open(self.files[0],"r")
148 + InfList= []
149 + for x in f1.readlines():
150 + y=x.split()
151 + if len(y):
152 + if x[0]!="#":
153 + for findinf in self.inf:
154 + try:
155 + temp=y.index(findinf)
156 + InfList.append(y[temp+2])
157 + except ValueError:
158 + pass
159 + f1.close()
160 + return InfList
161 +
162 + def EstraiInfoModuli(self):
163 + import string
164 + f1=open(self.files[2],"r")
165 + NumPop=0
166 + for i,x in enumerate(f1.readlines()):
167 + y=x.split()
168 + if len(y):
169 + if x[0]!="#":
170 + NumPop=NumPop+1
171 + if i==2:
172 + ParamList=[]
173 + for j in range(1,14):
174 + ParamList.append(y[j])
175 + f1.close()
176 + PopsParamList=[]
177 + f1=open(self.files[2],"r")
178 + x=f1.readlines()
179 + for j in range(0,NumPop):
180 + appo=x[4+j];
181 + PopsParamList.append(appo.split())
182 + f1.close()
183 + return NumPop,ParamList,PopsParamList
184 +
185 + def EstraiInfoConnectivity(self):
186 + import string
187 + f1=open(self.files[1],"r")
188 + PopConParamList=[]
189 + for i,x in enumerate(f1.readlines()):
190 + y=x.split()
191 + if len(y):
192 + if x[0]!="#":
193 + PopConParamList.append(y)
194 + if i==1:
195 + ParamList=[]
196 + for j in range(1,9):
197 + ParamList.append(y[j])
198 + f1.close()
199 + return ParamList,PopConParamList
200 +{{/code}}
201 +
202 +=== Import the initialization files: ===
203 +
204 +in this section we...
205 +
206 +{{code language="python"}}
207 +Salva=1
208 +file1="perseo35.ini"
209 +file2="c_cortsurf_Pot1.43PotStr148v3.ini"
210 +file3="m_cortsurf_Pot1.43.ini"
211 +file4="ProtocolExploration36.ini"
212 +files=[file1,file2,file3,file4]
213 +#define the name of the Output file
214 +FileName="dati/Rates_Nest_Run_Milano_Test36_13x13_"+str(nest.Rank())+"_Pot1.43PotStr148v3Long3.dat"
215 +#check the existence of the files being read
216 +ImpFil=ImportIniLIFCA(files);
217 +ImpFil.FilesControllo()
218 +
219 +#extract the information of interest from the files.ini and transfer them to the files:
220 +#InfoPerseo,InfoBuild,InfoConnectPop,InfoConnectNoise
221 +
222 +stampa=0; #stampa=1 print output simulation data on screen stampa=0 dont
223 +InfoPerseo,InfoBuild,InfoConnectPop,InfoConnectNoise,InfoProtocol=ImpFil.Estrai_inf(stampa)
224 +
225 +# InfoPerseo=["NeuronType","DelayDistribType","SynapticExtractionType","Life" ]
226 +# InfoBuild=[numero di popolazioni,
227 +# [N,C_ext,\nu_ext,\tau,\tetha,H,\tau_arp,NeuronInitType,\alpha_c,\tau_c,g_c],
228 +# [.....],[],...]
229 +# InfoConnectPop=[numero di popolazioni,
230 +# [post,pre,c,Dmin,Dmax,syn typ,J,DJ],
231 +# [.....],[],...]
232 +# InfoConnectNoise=[numero di popolazioni,
233 +# [J_ext,DJ_ext],
234 +# [.....],[],...]
235 +# InfoProtocol=[[time,population,param_num,value],
236 +# [.....],[],...]
237 +{{/code}}
238 +
239 +
240 +
241 +
242 +=== Results ===
243 +
39 39  ==== ====