def readData(self, strainlst=[], incf1=[]): "read user input data or from trait data and analysis form" if not self.genotype: self.readGenotype() if not strainlst: if incf1: strainlst = self.f1list + self.strainlist else: strainlst = self.strainlist traitfiledata = self.formdata.getfirst("traitfile") traitpastedata = self.formdata.getfirst("traitpaste") variancefiledata = self.formdata.getfirst("variancefile") variancepastedata = self.formdata.getfirst("variancepaste") Nfiledata = self.formdata.getfirst("Nfile") if traitfiledata: tt = string.split(traitfiledata) vals = map(webqtlUtil.StringAsFloat, tt) elif traitpastedata: tt = string.split(traitpastedata) vals = map(webqtlUtil.StringAsFloat, tt) else: vals = map(self.FormDataAsFloat, strainlst) if len(vals) < len(strainlst): vals += [None] * (len(strainlst) - len(vals)) elif len(vals) > len(strainlst): vals = vals[: len(strainlst)] else: pass if variancefiledata: tt = string.split(variancefiledata) vars = map(webqtlUtil.StringAsFloat, tt) elif variancepastedata: tt = string.split(variancepastedata) vars = map(webqtlUtil.StringAsFloat, tt) else: vars = map(self.FormVarianceAsFloat, strainlst) if len(vars) < len(strainlst): vars += [None] * (len(strainlst) - len(vars)) elif len(vars) > len(strainlst): vars = vars[: len(strainlst)] else: pass if Nfiledata: tt = string.split(Nfiledata) nstrains = map(webqtlUtil.IntAsFloat, tt) if len(nstrains) < len(strainlst): nstrains += [None] * (len(strainlst) - len(nstrains)) else: nstrains = map(self.FormNAsFloat, strainlst) ##vals, vars, nstrains is obsolete self.allTraitData = {} for i, _strain in enumerate(strainlst): if vals[i] != None: self.allTraitData[_strain] = webqtlCaseData(vals[i], vars[i], nstrains[i])
def Sample(self): "Create some dummy data for testing" self.RISet = "BXD" self.incparentsf1 = "on" # self.display = 9.2 # self.significance = 16.1 self.readGenotype() self.identification = "BXD : Coat color example by Lu Lu, et al" # self.readGenotype() # self.genotype.ReadMM('AXBXAforQTL') # self.strainlist = map((lambda x, y='': '%s%s' % (y,x)), self.genotype.prgy) # self.strainlist.sort() self.allTraitData = { "BXD29": webqtlCaseData(3), "BXD28": webqtlCaseData(2), "BXD25": webqtlCaseData(2), "BXD24": webqtlCaseData(2), "BXD27": webqtlCaseData(2), "BXD21": webqtlCaseData(1), "BXD20": webqtlCaseData(4), "BXD23": webqtlCaseData(4), "BXD22": webqtlCaseData(3), "BXD14": webqtlCaseData(4), "BXD15": webqtlCaseData(2), "BXD16": webqtlCaseData(3), "BXD11": webqtlCaseData(4), "BXD12": webqtlCaseData(3), "BXD13": webqtlCaseData(2), "BXD18": webqtlCaseData(3), "BXD19": webqtlCaseData(3), "BXD38": webqtlCaseData(3), "BXD39": webqtlCaseData(3), "BXD36": webqtlCaseData(2), "BXD34": webqtlCaseData(4), "BXD35": webqtlCaseData(4), "BXD32": webqtlCaseData(4), "BXD33": webqtlCaseData(3), "BXD30": webqtlCaseData(1), "BXD31": webqtlCaseData(4), "DBA/2J": webqtlCaseData(1), "BXD8": webqtlCaseData(3), "BXD9": webqtlCaseData(1), "BXD6": webqtlCaseData(3), "BXD5": webqtlCaseData(3), "BXD2": webqtlCaseData(4), "BXD1": webqtlCaseData(1), "C57BL/6J": webqtlCaseData(4), "B6D2F1": webqtlCaseData(4), "BXD42": webqtlCaseData(4), "BXD40": webqtlCaseData(3), }
def Sample(self): 'Create some dummy data for testing' self.group = 'BXD' self.incparentsf1 = 'on' #self.display = 9.2 #self.significance = 16.1 self.readGenotype() self.identification = 'BXD : Coat color example by Lu Lu, et al' #self.readGenotype() #self.genotype.ReadMM('AXBXAforQTL') #self.samplelist = map((lambda x, y='': '%s%s' % (y,x)), self.genotype.prgy) #self.samplelist.sort() self.allTraitData = { 'BXD29': webqtlCaseData(3), 'BXD28': webqtlCaseData(2), 'BXD25': webqtlCaseData(2), 'BXD24': webqtlCaseData(2), 'BXD27': webqtlCaseData(2), 'BXD21': webqtlCaseData(1), 'BXD20': webqtlCaseData(4), 'BXD23': webqtlCaseData(4), 'BXD22': webqtlCaseData(3), 'BXD14': webqtlCaseData(4), 'BXD15': webqtlCaseData(2), 'BXD16': webqtlCaseData(3), 'BXD11': webqtlCaseData(4), 'BXD12': webqtlCaseData(3), 'BXD13': webqtlCaseData(2), 'BXD18': webqtlCaseData(3), 'BXD19': webqtlCaseData(3), 'BXD38': webqtlCaseData(3), 'BXD39': webqtlCaseData(3), 'BXD36': webqtlCaseData(2), 'BXD34': webqtlCaseData(4), 'BXD35': webqtlCaseData(4), 'BXD32': webqtlCaseData(4), 'BXD33': webqtlCaseData(3), 'BXD30': webqtlCaseData(1), 'BXD31': webqtlCaseData(4), 'DBA/2J': webqtlCaseData(1), 'BXD8': webqtlCaseData(3), 'BXD9': webqtlCaseData(1), 'BXD6': webqtlCaseData(3), 'BXD5': webqtlCaseData(3), 'BXD2': webqtlCaseData(4), 'BXD1': webqtlCaseData(1), 'C57BL/6J': webqtlCaseData(4), 'B6D2F1': webqtlCaseData(4), 'BXD42': webqtlCaseData(4), 'BXD40': webqtlCaseData(3) }
def readData(self, samplelist, incf1=None): '''read user input data or from trait data and analysis form''' if incf1 == None: incf1 = [] if not self.genotype: self.readGenotype() if not samplelist: if incf1: samplelist = self.f1list + self.samplelist else: samplelist = self.samplelist #print("before traitfiledata self.traitfile is:", pf(self.traitfile)) traitfiledata = getattr(self, "traitfile", None) traitpastedata = getattr(self, "traitpaste", None) variancefiledata = getattr(self, "variancefile", None) variancepastedata = getattr(self, "variancepaste", None) Nfiledata = getattr(self, "Nfile", None) #### Todo: Rewrite below when we get to someone submitting their own trait ##### def to_float(item): try: return float(item) except ValueError: return None print("bottle samplelist is:", samplelist) if traitfiledata: tt = traitfiledata.split() values = map(webqtlUtil.StringAsFloat, tt) elif traitpastedata: tt = traitpastedata.split() values = map(webqtlUtil.StringAsFloat, tt) else: print("mapping formdataasfloat") #values = map(self.FormDataAsFloat, samplelist) values = [to_float(getattr(self, key)) for key in samplelist] print("rocket values is:", values) if len(values) < len(samplelist): values += [None] * (len(samplelist) - len(values)) elif len(values) > len(samplelist): values = values[:len(samplelist)] print("now values is:", values) if variancefiledata: tt = variancefiledata.split() variances = map(webqtlUtil.StringAsFloat, tt) elif variancepastedata: tt = variancepastedata.split() variances = map(webqtlUtil.StringAsFloat, tt) else: variances = map(self.FormVarianceAsFloat, samplelist) if len(variances) < len(samplelist): variances += [None] * (len(samplelist) - len(variances)) elif len(variances) > len(samplelist): variances = variances[:len(samplelist)] if Nfiledata: tt = string.split(Nfiledata) nsamples = map(webqtlUtil.IntAsFloat, tt) if len(nsamples) < len(samplelist): nsamples += [None] * (len(samplelist) - len(nsamples)) else: nsamples = map(self.FormNAsFloat, samplelist) ##values, variances, nsamples is obsolete self.allTraitData = {} for i, _sample in enumerate(samplelist): if values[i] != None: self.allTraitData[_sample] = webqtlCaseData( _sample, values[i], variances[i], nsamples[i]) print("allTraitData is:", pf(self.allTraitData))
def retrieveData(self, strainlist=[]): assert self.db and self.cursor if self.db.type == 'Temp': query = ''' SELECT Strain.Name, TempData.value, TempData.SE, TempData.NStrain, TempData.Id FROM TempData, Temp, Strain WHERE TempData.StrainId = Strain.Id AND TempData.Id = Temp.DataId AND Temp.name = '%s' Order BY Strain.Name ''' % self.name #XZ, 03/02/2009: Xiaodong changed Data to PublishData, SE to PublishSE elif self.db.type == 'Publish': query = ''' SELECT Strain.Name, PublishData.value, PublishSE.error, NStrain.count, PublishData.Id FROM (PublishData, Strain, PublishXRef, PublishFreeze) left join PublishSE on (PublishSE.DataId = PublishData.Id AND PublishSE.StrainId = PublishData.StrainId) left join NStrain on (NStrain.DataId = PublishData.Id AND NStrain.StrainId = PublishData.StrainId) WHERE PublishXRef.InbredSetId = PublishFreeze.InbredSetId AND PublishData.Id = PublishXRef.DataId AND PublishXRef.Id = %s AND PublishFreeze.Id = %d AND PublishData.StrainId = Strain.Id Order BY Strain.Name ''' % (self.name, self.db.id) #XZ, 03/02/2009: Xiaodong changed Data to ProbeData, SE to ProbeSE elif self.cellid: #Probe Data query = ''' SELECT Strain.Name, ProbeData.value, ProbeSE.error, ProbeData.Id FROM (ProbeData, ProbeFreeze, ProbeSetFreeze, ProbeXRef, Strain, Probe, ProbeSet) left join ProbeSE on (ProbeSE.DataId = ProbeData.Id AND ProbeSE.StrainId = ProbeData.StrainId) WHERE Probe.Name = '%s' AND ProbeSet.Name = '%s' AND Probe.ProbeSetId = ProbeSet.Id AND ProbeXRef.ProbeId = Probe.Id AND ProbeXRef.ProbeFreezeId = ProbeFreeze.Id AND ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id AND ProbeSetFreeze.Name = '%s' AND ProbeXRef.DataId = ProbeData.Id AND ProbeData.StrainId = Strain.Id Order BY Strain.Name ''' % (self.cellid, self.name, self.db.name) #XZ, 03/02/2009: Xiaodong added this block for ProbeSetData and ProbeSetSE elif self.db.type == 'ProbeSet': #ProbeSet Data query = ''' SELECT Strain.Name, ProbeSetData.value, ProbeSetSE.error, ProbeSetData.Id FROM (ProbeSetData, ProbeSetFreeze, Strain, ProbeSet, ProbeSetXRef) left join ProbeSetSE on (ProbeSetSE.DataId = ProbeSetData.Id AND ProbeSetSE.StrainId = ProbeSetData.StrainId) WHERE ProbeSet.Name = '%s' AND ProbeSetXRef.ProbeSetId = ProbeSet.Id AND ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id AND ProbeSetFreeze.Name = '%s' AND ProbeSetXRef.DataId = ProbeSetData.Id AND ProbeSetData.StrainId = Strain.Id Order BY Strain.Name ''' % (self.name, self.db.name) #XZ, 03/02/2009: Xiaodong changeded Data to GenoData, SE to GenoSE else: #Geno Data #XZ: The SpeciesId is not necessary, but it's nice to keep it to speed up database search. query = ''' SELECT Strain.Name, GenoData.value, GenoSE.error, GenoData.Id FROM (GenoData, GenoFreeze, Strain, Geno, GenoXRef) left join GenoSE on (GenoSE.DataId = GenoData.Id AND GenoSE.StrainId = GenoData.StrainId) WHERE Geno.SpeciesId = %s AND Geno.Name = '%s' AND GenoXRef.GenoId = Geno.Id AND GenoXRef.GenoFreezeId = GenoFreeze.Id AND GenoFreeze.Name = '%s' AND GenoXRef.DataId = GenoData.Id AND GenoData.StrainId = Strain.Id Order BY Strain.Name ''' % (webqtlDatabaseFunction.retrieveSpeciesId(self.cursor, self.db.riset), self.name, self.db.name) self.cursor.execute(query) results = self.cursor.fetchall() self.data.clear() if results: self.mysqlid = results[0][-1] if strainlist: for item in results: if item[0] in strainlist: val = item[1] if val != None: var = item[2] ndata = None if self.db.type in ('Publish', 'Temp'): ndata = item[3] self.data[item[0]] = webqtlCaseData(val, var, ndata) #end for else: for item in results: val = item[1] if val != None: var = item[2] ndata = None if self.db.type in ('Publish', 'Temp'): ndata = item[3] self.data[item[0]] = webqtlCaseData(val, var, ndata) #end for #end if else: pass
def Sample(self): 'Create some dummy data for testing' self.group = 'BXD' self.incparentsf1 = 'on' #self.display = 9.2 #self.significance = 16.1 self.readGenotype() self.identification = 'BXD : Coat color example by Lu Lu, et al' #self.readGenotype() #self.genotype.ReadMM('AXBXAforQTL') #self.samplelist = map((lambda x, y='': '%s%s' % (y,x)), self.genotype.prgy) #self.samplelist.sort() self.allTraitData = {'BXD29': webqtlCaseData(3), 'BXD28': webqtlCaseData(2), 'BXD25': webqtlCaseData(2), 'BXD24': webqtlCaseData(2), 'BXD27': webqtlCaseData(2), 'BXD21': webqtlCaseData(1), 'BXD20': webqtlCaseData(4), 'BXD23': webqtlCaseData(4), 'BXD22': webqtlCaseData(3), 'BXD14': webqtlCaseData(4), 'BXD15': webqtlCaseData(2), 'BXD16': webqtlCaseData(3), 'BXD11': webqtlCaseData(4), 'BXD12': webqtlCaseData(3), 'BXD13': webqtlCaseData(2), 'BXD18': webqtlCaseData(3), 'BXD19': webqtlCaseData(3), 'BXD38': webqtlCaseData(3), 'BXD39': webqtlCaseData(3), 'BXD36': webqtlCaseData(2), 'BXD34': webqtlCaseData(4), 'BXD35': webqtlCaseData(4), 'BXD32': webqtlCaseData(4), 'BXD33': webqtlCaseData(3), 'BXD30': webqtlCaseData(1), 'BXD31': webqtlCaseData(4), 'DBA/2J': webqtlCaseData(1), 'BXD8': webqtlCaseData(3), 'BXD9': webqtlCaseData(1), 'BXD6': webqtlCaseData(3), 'BXD5': webqtlCaseData(3), 'BXD2': webqtlCaseData(4), 'BXD1': webqtlCaseData(1), 'C57BL/6J': webqtlCaseData(4), 'B6D2F1': webqtlCaseData(4), 'BXD42': webqtlCaseData(4), 'BXD40': webqtlCaseData(3)}
def readData(self, samplelist, incf1=None): '''read user input data or from trait data and analysis form''' if incf1 == None: incf1 = [] if not self.genotype: self.readGenotype() if not samplelist: if incf1: samplelist = self.f1list + self.samplelist else: samplelist = self.samplelist #print("before traitfiledata self.traitfile is:", pf(self.traitfile)) traitfiledata = getattr(self, "traitfile", None) traitpastedata = getattr(self, "traitpaste", None) variancefiledata = getattr(self, "variancefile", None) variancepastedata = getattr(self, "variancepaste", None) Nfiledata = getattr(self, "Nfile", None) #### Todo: Rewrite below when we get to someone submitting their own trait ##### def to_float(item): try: return float(item) except ValueError: return None print("bottle samplelist is:", samplelist) if traitfiledata: tt = traitfiledata.split() values = map(webqtlUtil.StringAsFloat, tt) elif traitpastedata: tt = traitpastedata.split() values = map(webqtlUtil.StringAsFloat, tt) else: print("mapping formdataasfloat") #values = map(self.FormDataAsFloat, samplelist) values = [to_float(getattr(self, key)) for key in samplelist] print("rocket values is:", values) if len(values) < len(samplelist): values += [None] * (len(samplelist) - len(values)) elif len(values) > len(samplelist): values = values[:len(samplelist)] print("now values is:", values) if variancefiledata: tt = variancefiledata.split() variances = map(webqtlUtil.StringAsFloat, tt) elif variancepastedata: tt = variancepastedata.split() variances = map(webqtlUtil.StringAsFloat, tt) else: variances = map(self.FormVarianceAsFloat, samplelist) if len(variances) < len(samplelist): variances += [None]*(len(samplelist) - len(variances)) elif len(variances) > len(samplelist): variances = variances[:len(samplelist)] if Nfiledata: tt = string.split(Nfiledata) nsamples = map(webqtlUtil.IntAsFloat, tt) if len(nsamples) < len(samplelist): nsamples += [None]*(len(samplelist) - len(nsamples)) else: nsamples = map(self.FormNAsFloat, samplelist) ##values, variances, nsamples is obsolete self.allTraitData = {} for i, _sample in enumerate(samplelist): if values[i] != None: self.allTraitData[_sample] = webqtlCaseData( _sample, values[i], variances[i], nsamples[i]) print("allTraitData is:", pf(self.allTraitData))