def readNtwFile(self): """ read network file """ filename = os.path.join(self.filePath, self.fileName) with open(filename) as f: self.text = f.read() print("Reading network file : ", filename) # extract useful lines from the the text lineArr = util.cleanupFileText(self.text) i = 0 while i < len(lineArr): line = lineArr[i] if len(line) < 2: i = i + 1 continue if line[0] == "LIST_NEURONS:": i = self.extractNeurons(i + 1, lineArr) elif line[0] == "CHEMSYN:": i = self.extractChemSynapses(i + 1, lineArr) elif line[0] == "ELCTRCPL:": i = self.extractElecSynapses(i + 1, lineArr) elif line[0] == "MODULSYN:": i = self.extractModularySynapses(i + 1, lineArr) else: i = i + 1
def readModByRegulatorFile(self): """ read fBR file """ filename = os.path.join(self.filePath, self.fileName) print("FBR FIle", filename) with open(filename) as f: self.text = f.read() print("Reading fBR file : ", filename) lineArr = util.cleanupFileText(self.text) i = 0 while i < len(lineArr): line = lineArr[i] if len(line) < 2: i = i + 1 continue if re.search("^fBR", line[0]) is not None: self.fBRType = self.extractfBR(i + 1, lineArr) if re.search("^BR", line[0]) is not None: self.BRType, self.BR_a = self.extractBR(i + 1, lineArr) i = i + 1 pass
def readSMFile(self): """ read .sm file """ filename = os.path.join(self.filePath, self.fileName) with open(filename) as f: self.text = f.read() print("Reading second messenger file : ", filename) lineArr = util.cleanupFileText(self.text) i = 0 while i < len(lineArr): line = lineArr[i] if len(line) < 2: i = i + 1 continue if re.search("^Csm", line[0]) is not None: self.smType, self.iv, self.tau = self.extractSM( i + 1, lineArr) if re.search("^xCsm", line[0]) is not None: self.xCsmType = lineArr[i + 1][0] i = i + 1 pass
def readfATFile(self): """ read SNNAP time dependent activation function of chemical synapse """ fileName = os.path.join(self.filePath,self.fAtFileName) with open(fileName) as f: self.text = f.read() # extract useful lines from the the text lineArr = util.cleanupFileText(self.text) i=0 while i < len(lineArr): line = lineArr[i] if re.search("^fAt", line[0]) is not None: self.fATType = lineArr[i+1][0] if self.fATType in ['3', '5', '6']: self.fAT_a = self.findNextFeature(i+1, lineArr, feature="a") #self.fAT_b = self.findNextFeature(i+1, lineArr, feature="b") if self.fATType in ['3', '4', '5']: self.fAT_b = self.findNextFeature(i+1, lineArr, feature="b") if re.search("^At", line[0]) is not None: self.extractAt(i, lineArr) i = i+1
def readVDGFile(self): filename = os.path.join(self.filePath,self.fileName) with open(filename) as f: self.text = f.read() print("Reading .vdg file : ", filename) lineArr = util.cleanupFileText(self.text) i = 0 while i< len(lineArr): line = lineArr[i] if re.search("^Ivd", line[0]) is not None: self.extractIvd(i+1, lineArr) i = i+1 return
def readNeuronFile(self): """ read .neu file """ filename = os.path.join(self.filePath, self.fileName) with open(filename) as f: self.text = f.read() print("Reading neuron file : ", filename) lineArr = util.cleanupFileText(self.text) i = 0 while i < len(lineArr): line = lineArr[i] if len(line) < 2: i = i + 1 continue if re.search("THRESHOLD", line[0]) is not None: self.treshold = self.extractNeuronsFeature(i + 1, line[0]) elif re.search("SPIKDUR", line[0]) is not None: self.spikeDur = self.extractNeuronsFeature(i + 1, line[0]) elif re.search("VMINIT", line[0]) is not None: self.vmInit = self.extractNeuronsFeature(i + 1, line[0]) elif re.search("CM", line[0]) is not None: self.cm = self.extractNeuronsFeature(i + 1, line[0]) elif re.search("^MEM_AREA", line[0]) is not None: self.memAreaType = lineArr[i + 1][0] elif line[0] == "CONDUCTANCES:": i = self.extractConductance(i + 1, lineArr) elif line[0] == "LIST_ION:": i = self.extractIonPools(i + 1, lineArr) elif line[0] == "LIST_SM:": i = self.extractSMPools(i + 1, lineArr) elif line[0] == "CURRENT_TO_ION:": i = self.extractCurr2Ions(i + 1, lineArr) elif line[0] == "COND_BY_ION:": i = self.extractConductanceByIon(i + 1, lineArr) elif line[0] == "COND_BY_SM:": i = self.extractConductanceBySM(i + 1, lineArr) i = i + 1
def readTrtFile(self): filename = os.path.join(self.filePath, self.fileName) with open(filename) as f: self.text = f.read() print "Reading treatment file : ", filename lineArr = util.cleanupFileText(self.text) i = 0 while i < len(lineArr): line = lineArr[i] if len(line) < 2: i = i + 1 continue if re.search("CURNT_INJ", line[0]) is not None: self.extractCurntInj(i, lineArr) i = i + 1
def read_BFile(self): filename = os.path.join(self.filePath,self.B) with open(filename) as f: self.text = f.read() print("Reading .B file : ", filename) lineArr = util.cleanupFileText(self.text) i = 0 while i< len(lineArr): line = lineArr[i] if re.search("^B", line[0]) is not None: self.BType, self.B_IV = self.extractActivation_timeConst(i+1, lineArr) if re.search("^ssB", line[0]) is not None: self.ssBType, self.ssB_h, self.ssB_s, self.ssB_p, self.ssB_Bn = self.extractSteadyState(i+1, lineArr, 0) if self.BType == "2" and re.search("^tB", line[0]) is not None: self.tBType, self.tB_tx, self.tB_tn, self.tB_h1, self.tB_h2, self.tB_s1, self.tB_s2, self.tB_p1, self.tB_p2 = self.extractTimeConstant(i+1, lineArr) i = i+1 return
def readXtFile(self): """ read .Xt file """ fileName = os.path.join(self.filePath,self.XtFileName) with open(fileName) as f: self.text = f.read() # extract useful lines from the the text lineArr = util.cleanupFileText(self.text) i=0 while i < len(lineArr): line = lineArr[i] if re.search("^Xt", line[0]) is not None: self.XtType = lineArr[i+1][0] if self.XtType == "3": self.extractPSM(i+1, lineArr) i = i+1
def read_AFile(self): filename = os.path.join(self.filePath,self.A) with open(filename) as f: self.text = f.read() print "Reading .A file : ", filename lineArr = util.cleanupFileText(self.text) i = 0 while i< len(lineArr): line = lineArr[i] if re.search("^A", line[0]) is not None: self.AType, self.A_IV = self.extractActivation_timeConst(i+1, lineArr) if re.search("^ssA", line[0]) is not None: self.ssAType, self.ssA_h, self.ssA_s, self.ssA_p, self.ssA_An = self.extractSteadyState(i+1, lineArr, 1) if re.search("^tA", line[0]) is not None: self.tAType, self.tA_tx, self.tA_tn, self.tA_h1, self.tA_h2, self.tA_s1, self.tA_s2, self.tA_p1, self.tA_p2 = self.extractTimeConstant(i+1, lineArr) i = i+1 return
def read_hFile(self): filename = os.path.join(self.filePath,self.h) with open(filename) as f: self.text = f.read() print("Reading .h file : ", filename) lineArr = util.cleanupFileText(self.text) i = 0 while i< len(lineArr): line = lineArr[i] if re.search("^h", line[0]) is not None: self.hType, self.h_IV, self.h_L = self.extractActivation_rateConst(i+1, lineArr) if re.search("^ah", line[0]) is not None: self.ahType, self.ah_A, self.ah_B, self.ah_C, self.ah_D = self.extractRateParameter(i+1, lineArr) if re.search("^bh", line[0]) is not None: self.bhType, self.bh_A, self.bh_B, self.bh_C, self.bh_D = self.extractRateParameter(i+1, lineArr) i = i+1 return
def read_mFile(self): filename = os.path.join(self.filePath,self.m) with open(filename) as f: self.text = f.read() print "Reading .m file : ", filename lineArr = util.cleanupFileText(self.text) i = 0 while i< len(lineArr): line = lineArr[i] if re.search("^m", line[0]) is not None: self.mType, self.m_IV, self.m_L = self.extractActivation_rateConst(i+1, lineArr) if re.search("^am", line[0]) is not None: self.amType, self.am_A, self.am_B, self.am_C, self.am_D = self.extractRateParameter(i+1, lineArr) if re.search("^bm", line[0]) is not None: self.bmType, self.bm_A, self.bm_B, self.bm_C, self.bm_D = self.extractRateParameter(i+1, lineArr) i = i+1 return
def readCSFile(self): """ read SNNAP chemical synapse (.cs) file """ fileName = os.path.join(self.filePath,self.fileName) with open(fileName) as f: self.text = f.read() print("Reading chemical synapse file : ", fileName) # extract useful lines from the the text lineArr = util.cleanupFileText(self.text) i=0 while i < len(lineArr): line = lineArr[i] if len(line) < 2: i = i+1 continue if re.search("Ics", line[0]) is not None: self.extractCS(i+1, lineArr) i = i+1
def readSimFile(self, filePath, fileName): """ read simulation file """ fileName = os.path.join(filePath,fileName) with open(fileName) as f: self.text = f.read() print("Reading simulaiton file : ", fileName) # extract useful lines from the the text lineArr = util.cleanupFileText(self.text) i = 0 while i < len(lineArr): l = lineArr[i] # get 1st word fo the line word1 = l[0][:-1] if word1 in self.parameters.keys(): i = self.extractParam(i, lineArr, word1) else: i = i+1
def readESFile(self): """ read electrical coupling file """ filename = os.path.join(self.filePath, self.fileName) with open(filename) as f: self.text = f.read() print("Reading electrical coupling file : ", filename) # extract useful lines from the the text lineArr = util.cleanupFileText(self.text) i = 0 while i < len(lineArr): line = lineArr[i] if len(lineArr[i]) > 1: if not re.search("G1", lineArr[i][1]) is None: self.g1 = lineArr[i][0] if not re.search("G2", lineArr[i][1]) is None: self.g2 = lineArr[i][0] i = i + 1 return
def readNeuronFile(self): """ read .neu file """ filename = os.path.join(self.filePath,self.fileName) with open(filename) as f: self.text = f.read() print "Reading neuron file : ", filename lineArr = util.cleanupFileText(self.text) i = 0 while i< len(lineArr): line = lineArr[i] if len(line) < 2: i = i+1 continue if re.search("THRESHOLD", line[0]) is not None: self.treshold = self.extractNeuronsFeature(i+1, line[0]) elif re.search("SPIKDUR", line[0]) is not None: self.spikeDur = self.extractNeuronsFeature(i+1, line[0]) elif re.search("VMINIT", line[0]) is not None: self.vmInit = self.extractNeuronsFeature(i+1, line[0]) elif re.search("CM", line[0]) is not None: self.cm = self.extractNeuronsFeature(i+1, line[0]) elif re.search("^MEM_AREA", line[0]) is not None: self.memAreaType = lineArr[i+1][0] elif re.search("Name of conductance", line[1]) is not None: self.extractConductance(i, lineArr) i = i+1
def readIonFile(self): """ read .ion file """ filename = os.path.join(self.filePath, self.fileName) with open(filename) as f: self.text = f.read() print("Reading ion file : ", filename) lineArr = util.cleanupFileText(self.text) i = 0 while i < len(lineArr): line = lineArr[i] if len(line) < 2: i = i + 1 continue if re.search("Cion", line[0]) is not None: self.cionType, self.k1, self.k2 = self.extractIon( i + 1, lineArr) i = i + 1 pass