def addSample(self, newSampleName,newSampleRefType=None): # # Imports # import sys import time # # open connection to database # self.getConnection() sampleNames = [] sampleIds = [] # # check if any of the fastqs already in database # data = self.c.execute('SELECT sampleId,sampleName,refType FROM samples').fetchall() if data: for (sampleId,sampleName,sampleRefType) in data: #sampleName = sampleName[0] sampleNames.append(sampleName) sampleIds.append(sampleId) if newSampleName in sampleNames: msg = '#ERROR_MSG#'+time.strftime("%Y-%m-%d:%H:%M:%S",time.localtime())+'#'+str(self.analysispipe.masterPid)+'# SampleName must be uniq, there is already a sample with name '+newSampleName+' , exiting.\n' self.analysispipe.logfile.write(msg) sys.stderr.write(msg) sys.exit(1) if sampleIds: sampleId = max(sampleIds)+1 else: sampleId = 0 self.analysispipe.logfile.write('#LOGMSG#'+time.strftime("%Y-%m-%d:%H:%M:%S",time.localtime())+'#'+str(self.analysispipe.masterPid)+'# Adding sample '+newSampleName+' to database with id '+str(sampleId)+'.\n') values = (sampleId,newSampleName,newSampleRefType) self.c.execute('INSERT INTO samples VALUES (?,?,?)', values) from sample import Sample sample = Sample(sampleName=newSampleName, sampleId=sampleId,refType=newSampleRefType, analysispipe=self.analysispipe) sample.createDirs() self.commitAndClose() return 0