// --- FILES ----------------------------------------------------------------- objectvar fout fout = new File() objectvar fraster fraster = new File() objectvar foutW foutW = new File() fraster.wopen("Raster.dat") fout.wopen("Act.dat") foutW.wopen("W.dat") foutW.printf("ExINPUT= %d\n",ExINPUT) foutW.printf("InhINPUT= %d\n",InhINPUT) foutW.printf("nEx= %d\n",nEx) foutW.printf("nEx_Ex= %d\n",nEx_Ex) foutW.printf("nInh= %d\n",nInh) foutW.printf("nEx_Inh= %d\n",nEx_Inh) foutW.printf("nInh_Ex= %d\n",nInh_Ex) foutW.printf("AmpaMaxExEx= %f\n",AmpaMaxExEx) foutW.printf("AmpaMaxExInh= %f\n",AmpaMaxExInh) foutW.printf("AMPANMDARATIO_EPlasSyn= %f\n",AMPANMDARATIO_EPlasSyn) foutW.printf("totEx_Ex= %f\n",totEx_Ex) foutW.printf("totInh_Ex= %f\n",totInh_Ex) foutW.printf("totEx_Inh= %f\n",totEx_Inh) foutW.printf("SetCa_ExIAF= %d\n",Ex[0].soma.SetCa_ExIAF) foutW.printf("SetCa_InhIAF= %d\n",Inh[0].soma.SetCa_InhIAF) foutW.printf("sdW= %f\n",sdW) foutW.printf("ExNoise= %f\n",ExNoise) foutW.printf("InhNoise= %f\n",InhNoise) foutW.printf("seed= %f\n",seed) foutW.printf("ScaleExEx= %d\n",ScaleExEx) foutW.printf("ScaleExInh= %d\n",ScaleExInh) foutW.printf("ScaleInhEx= %d\n",ScaleInhEx) foutW.printf("STDP= %d\n",STDP) foutW.printf("STDPINH= %d\n",STDPINH) foutW.printf("gainLTP= %f\n",gainLTP_EPlasSyn) foutW.printf("gainLTD= %f\n",gainLTD_EPlasSyn) foutW.printf("tauLTP= %f\n",tauLTP_EPlasSyn) foutW.printf("tauLTD= %f\n",tauLTD_EPlasSyn) foutW.printf("gainLTP_IPlasSyn= %f\n",gainLTP_IPlasSyn) foutW.printf("gainLTD_IPlasSyn= %f\n",gainLTD_IPlasSyn) foutW.printf("tauLTP_IPlasSyn= %f\n",tauLTP_IPlasSyn) foutW.printf("tauLTD_IPlasSyn= %f\n",tauLTD_IPlasSyn) foutW.printf("StoreEveryTrial= %d\n",StoreEveryTrial) foutW.printf("numTrial= %d\n",numTrial) foutW.printf("CONNECT= 1\n") foutW.printf("STOP\n") //----- Write Connectivity to W file -----// ///// Ex ///// for (i=ExINPUT; i<nEx; i=i+1) { for (j=0;j<nEx_Ex;j=j+1) { foutW.printf("%5d \n",sExEx[i][j].precell) } } foutW.printf("%5d \n",9999) for (i=ExINPUT;i<nEx;i=i+1) { for (j=0;j<nInh_Ex;j=j+1) { foutW.printf("%5d \n",sInhEx[i][j].precell) } } foutW.printf("%5d \n",9999) ///// Inh ///// for (i=0;i<nInh;i=i+1) { for (j=0;j<nEx_Inh;j=j+1) { foutW.printf("%5d \n",sExInh[i][j].precell) } } foutW.printf("%5d \n",9999) //----- PROCEDURE TO WRITE W FILES AUTOMATICALLY -----// proc StoreW() { //STORE PARAMETERS for (i=ExINPUT; i<nEx; i=i+1) { for (j=0;j<nEx_Ex;j=j+1) { foutW.printf("%g \n",sExEx[i][j].gmaxAMPA) } } for (i=i=ExINPUT; i<nEx; i=i+1) { for (j=0;j<nInh_Ex;j=j+1) { foutW.printf("%g \n",sInhEx[i][j].gmaxGABA) } } for (i=0;i<nInh;i=i+1) { for (j=0;j<nEx_Inh;j=j+1) { foutW.printf("%g \n",sExInh[i][j].gmaxAMPA) } } for (i=0;i<nEx;i=i+1) { foutW.printf("%g \n",Ex[i].soma.AvgCa_ExIAF) } for (i=0;i<nInh;i=i+1) { foutW.printf("%g \n",Inh[i].soma.AvgCa_InhIAF) } } //end StoreParam //----- PROCEDURE TO WRITE ACTIVITY -----// proc StoreAct() { //STORE PARAMETERS for (i=0;i<nEx;i=i+1) { fout.printf("%d %d %f \n",trial,i,Ex[i].soma.Ca_ExIAF) } } //end StoreParam //----- PROCEDURE TO WRITE W, FILE IS CALLED IN FUNCTION -----// objectvar writeparam writeparam = new File() proc SaveW() { //STORE PARAMETERS writeparam.wopen($s1) for (i=0;i<nEx;i=i+1) { for (j=0;j<nEx_Ex;j=j+1) { writeparam.printf("%g \n",sExEx[i][j].gmaxAMPA) } } for (i=0;i<nEx;i=i+1) { for (j=0;j<nInh_Ex;j=j+1) { writeparam.printf("%g \n",sInhEx[i][j].gmaxGABA) } } for (i=0;i<nInh;i=i+1) { for (j=0;j<nEx_Inh;j=j+1) { writeparam.printf("%g \n",sExInh[i][j].gmaxAMPA) } } writeparam.close() } //end StoreParam //----- PROCEDURE TO READ W FILES -----// objectvar readparam readparam = new File() proc ReadW() { //STORE PARAMETERS readparam.ropen($s1) for (i=0;i<nEx;i=i+1) { for (j=0;j<nEx_Ex;j=j+1) { sExEx[i][j].gmaxAMPA = readparam.scanvar() sExEx[i][j].gmaxNMDA=sExEx[i][j].gmaxAMPA*AMPANMDARATIO_EPlasSyn } } for (i=0;i<nEx;i=i+1) { for (j=0;j<nInh_Ex;j=j+1) { sInhEx[i][j].gmaxGABA = readparam.scanvar() } } for (i=0;i<nInh;i=i+1) { for (j=0;j<nEx_Inh;j=j+1) { sExInh[i][j].gmaxAMPA = readparam.scanvar() sExInh[i][j].gmaxNMDA=sExInh[i][j].gmaxAMPA*AMPANMDARATIO_EPlasSyn } } for (i=0;i<nEx;i=i+1) { Ex[i].soma.AvgCa_ExIAF = readparam.scanvar() } for (i=0;i<nInh;i=i+1) { Inh[i].soma.AvgCa_InhIAF = readparam.scanvar() } readparam.close() } //end StoreParam //----- PROCEDURE TO WRITE CONNECTIVITY -----// objectvar fconnect fconnect = new File() proc WriteConnectivity() { //STORE PARAMETERS fconnect.wopen("connectivity.dat") ///// Ex ///// for (i=0;i<nEx;i=i+1) { for (j=0;j<nEx_Ex;j=j+1) { fconnect.printf("%5d %5d %7.2f %g\n",sExEx[i][j].precell,i,Ex[sExEx[i][j].precell].soma.Delay_EPlasSom,sExEx[i][j].gmaxAMPA) } } fconnect.printf("%5d %5d %7.2f %g\n",999,999,999,999) for (i=0;i<nEx;i=i+1) { for (j=0;j<nInh_Ex;j=j+1) { fconnect.printf("%5d %5d %7.2f %g\n",sInhEx[i][j].precell,i,Inh[sInhEx[i][j].precell].soma.Delay_IPlasSom,sInhEx[i][j].gmaxGABA) } } fconnect.printf("%5d %5d %7.2f %g\n",999,999,999,999) ///// Inh ///// for (i=0;i<nInh;i=i+1) { for (j=0;j<nEx_Inh;j=j+1) { fconnect.printf("%5d %5d %7.2f %g\n",sExInh[i][j].precell,i,Ex[sExInh[i][j].precell].soma.Delay_EPlasSom,sExInh[i][j].gmaxAMPA) } } fconnect.printf("%5d %5d %7.2f %g\n",999,999,999,999) for (i=0;i<nInh;i=i+1) { for (j=0;j<nEx_Inh;j=j+1) { fconnect.printf("%5d %5d %5d %g\n",ExInhPost[i][j],i,j,999) } } fconnect.printf("%5d %5d %7.2f %g\n",999,999,999,999) fconnect.close() } //end StoreParam //----- PROCEDURE TO CLOSE OUTPUT FILES -----// proc CLOSEFILES() { fout.close() foutW.close() fraster.close() } objectvar fall fall = new File() proc SAVEALLW() { fall.wopen("allW.asc") fall.printf("nEx= %d\n",nEx) fall.printf("nInh= %d\n",nInh) fall.printf("nEx_Ex= %d\n",nEx_Ex) fall.printf("nEx_Inh= %d\n",nEx_Inh) fall.printf("nInh_Ex= %d\n",nInh_Ex) fall.printf("STOP\n") for (i=0;i<nEx;i=i+1) { for (j=0;j<nEx_Ex;j=j+1) { fall.printf("%g \n",sExEx[i][j].gmaxAMPA) } } for (i=0;i<nInh;i=i+1) { for (j=0;j<nEx_Inh;j=j+1) { fall.printf("%g \n",sExInh[i][j].gmaxAMPA) } } for (i=0;i<nEx;i=i+1) { for (j=0;j<nInh_Ex;j=j+1) { fall.printf("%g \n",sInhEx[i][j].gmaxGABA) } } fall.close() } //----- PROCEDURE TO READ INPUT (Spike Patterns) FILES -----// double SpikeTimes[9][9] objectvar inputfile inputfile = new File() strdef filename proc ReadInput() { //STORE PARAMETERS sprint(filename,"%s%d.spk",$s1,$2) print "READING FROM ",filename inputfile.ropen(filename) maxinputtime=inputfile.scanvar() numinputs=inputfile.scanvar() double SpikeTimes[numinputs][maxinputtime+1] while (!inputfile.eof()) { time = inputfile.scanvar() cell = inputfile.scanvar() SpikeTimes[cell-1][time]=1 //print "time=",time," cell=",cell } inputfile.close() } //end StoreParam