コード例 #1
0
    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])
コード例 #2
0
 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))
コード例 #5
0
	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
コード例 #6
0
 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)}
コード例 #7
0
    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))