aboutsummaryrefslogtreecommitdiff
path: root/web/webqtl/qtlminer
diff options
context:
space:
mode:
Diffstat (limited to 'web/webqtl/qtlminer')
-rwxr-xr-xweb/webqtl/qtlminer/GeneUtil.py658
-rwxr-xr-xweb/webqtl/qtlminer/QTLminer.py1237
-rwxr-xr-xweb/webqtl/qtlminer/__init__.py0
3 files changed, 0 insertions, 1895 deletions
diff --git a/web/webqtl/qtlminer/GeneUtil.py b/web/webqtl/qtlminer/GeneUtil.py
deleted file mode 100755
index 3ae7f3c0..00000000
--- a/web/webqtl/qtlminer/GeneUtil.py
+++ /dev/null
@@ -1,658 +0,0 @@
-import string
-import os
-
-
-from base import webqtlConfig
-
-
-#Just return a list of dictionaries
-#each dictionary contains sub-dictionary
-def loadGenes(cursor, chrName, diffCol, startMb, endMb, webqtlDb =None, species='mouse'):
- #cursor.execute("desc GeneList")
- #results = cursor.fetchall()
- #fetchFields = map(lambda X:X[0], results)
- fetchFields = ['SpeciesId', 'Id', 'GeneSymbol', 'GeneDescription', 'Chromosome', 'TxStart', 'TxEnd',
- 'Strand', 'GeneID', 'NM_ID', 'kgID', 'GenBankID', 'UnigenID', 'ProteinID', 'AlignID',
- 'exonCount', 'exonStarts', 'exonEnds', 'cdsStart', 'cdsEnd']
-
- ##List All Species in the Gene Table
- speciesDict = {}
- cursor.execute("select Species.Name, GeneList.SpeciesId from Species, GeneList where \
- GeneList.SpeciesId = Species.Id group by GeneList.SpeciesId")
- results = cursor.fetchall()
- for item in results:
- speciesDict[item[0]] = item[1]
-
- ##List current Species and other Species
- speciesId = speciesDict[species]
- otherSpecies = map(lambda X: [X, speciesDict[X]], speciesDict.keys())
- otherSpecies.remove([species, speciesId])
-
- cursor.execute("""SELECT %s from GeneList
- where
- SpeciesId = %d AND Chromosome = '%s' AND
- ((TxStart > %f and TxStart <= %f) OR (TxEnd > %f and TxEnd <= %f))
- order by txStart
- """
- % (string.join(fetchFields, ", "), speciesId, chrName, startMb, endMb, startMb, endMb))
- results = cursor.fetchall()
- GeneList = []
-
- if results:
- for result in results:
- newdict = {}
- for j, item in enumerate(fetchFields):
- newdict[item] = result[j]
- #count SNPs if possible
- if diffCol and species=='mouse':
- cursor.execute("""
- select
- count(*) from BXDSnpPosition
- where
- Chr = '%s' AND Mb >= %2.6f AND Mb < %2.6f AND
- StrainId1 = %d AND StrainId2 = %d
- """ % (chrName, newdict["TxStart"], newdict["TxEnd"], diffCol[0], diffCol[1]))
- newdict["snpCount"] = cursor.fetchone()[0]
- newdict["snpDensity"] = newdict["snpCount"]/(newdict["TxEnd"]-newdict["TxStart"])/1000.0
- else:
- newdict["snpDensity"] = newdict["snpCount"] = 0
-
- try:
- newdict['GeneLength'] = 1000.0*(newdict['TxEnd'] - newdict['TxStart'])
- except:
- pass
-
- #load gene from other Species by the same name
- for item in otherSpecies:
- othSpec, othSpecId = item
- newdict2 = {}
-
- cursor.execute("SELECT %s from GeneList where SpeciesId = %d and geneSymbol= '%s' limit 1" %
- (string.join(fetchFields, ", "), othSpecId, newdict["GeneSymbol"]))
- resultsOther = cursor.fetchone()
- if resultsOther:
- for j, item in enumerate(fetchFields):
- newdict2[item] = resultsOther[j]
-
- #count SNPs if possible, could be a separate function
- if diffCol and othSpec == 'mouse':
- cursor.execute("""
- select
- count(*) from BXDSnpPosition
- where
- Chr = '%s' AND Mb >= %2.6f AND Mb < %2.6f AND
- StrainId1 = %d AND StrainId2 = %d
- """ % (chrName, newdict["TxStart"], newdict["TxEnd"], diffCol[0], diffCol[1]))
-
-
-
- newdict2["snpCount"] = cursor.fetchone()[0]
- newdict2["snpDensity"] = newdict2["snpCount"]/(newdict2["TxEnd"]-newdict2["TxStart"])/1000.0
- else:
- newdict2["snpDensity"] = newdict2["snpCount"] = 0
-
- try:
- newdict2['GeneLength'] = 1000.0*(newdict2['TxEnd'] - newdict2['TxStart'])
- except:
- pass
-
- newdict['%sGene' % othSpec] = newdict2
-
- GeneList.append(newdict)
-
- return GeneList
-
-
-
-
-
-
-def loadGenesForQTLminer(cursor, chrName, diffCol, startMb, endMb, webqtlDb =None, species='mouse', databaseA='HC_M2_0606_P', databaseB='HC_M2CB_1205_R', databaseC='Illum_LXS_Hipp_loess0807', str1='C57BL/6J', str2='DBA/2J'):
- #cursor.execute("desc GeneList")
- #results = cursor.fetchall()
- #fetchFields = map(lambda X:X[0], results)
- fetchFields = ['SpeciesId', 'Id', 'GeneSymbol', 'GeneDescription', 'Chromosome', 'TxStart', 'TxEnd',
- 'Strand', 'GeneID', 'NM_ID', 'kgID', 'GenBankID', 'UnigenID', 'ProteinID', 'AlignID',
- 'exonCount', 'exonStarts', 'exonEnds', 'cdsStart', 'cdsEnd']
-
- ##List All Species in the Gene Table
- speciesDict = {}
- cursor.execute("select Species.Name, GeneList.SpeciesId from Species, GeneList where \
- GeneList.SpeciesId = Species.Id group by GeneList.SpeciesId")
- results = cursor.fetchall()
- for item in results:
- speciesDict[item[0]] = item[1]
-
-
-# fpText = open(os.path.join(webqtlConfig.TMPDIR, "strains") + str(j) + '.txt','wb')
-# fpText.write("strain: '%d' \n" % thisone )
-# fpText.close()
-# strainids.append(thisone)
-
-
-
-
- ##List current Species and other Species
- speciesId = speciesDict[species]
- otherSpecies = map(lambda X: [X, speciesDict[X]], speciesDict.keys())
- otherSpecies.remove([species, speciesId])
-
- cursor.execute("""SELECT %s from GeneList
- where
- SpeciesId = %d AND Chromosome = '%s' AND
- ((TxStart > %f and TxStart <= %f) OR (TxEnd > %f and TxEnd <= %f))
- order by txStart
- """
- % (string.join(fetchFields, ", "), speciesId, chrName, startMb, endMb, startMb, endMb))
- results = cursor.fetchall()
- GeneList = []
-
- if results:
- for result in results:
- newdict = {}
- for j, item in enumerate(fetchFields):
- newdict[item] = result[j]
-
-## get pathways
-
- cursor.execute("""
- select
- pathway
- FROM
- kegg.mmuflat
- where
- gene = '%s'
- """ % (newdict["GeneID"]) )
-
- resAAA = cursor.fetchall()
- if resAAA:
- myFields = ['pathways']
- for j, item in enumerate(myFields):
- temp = []
- for k in resAAA:
- temp.append(k[j])
- newdict["pathways"] = temp
-
- cursor.execute("""
- select
- name
- FROM
- kegg.mmuflat
- where
- gene = '%s'
- """ % (newdict["GeneID"]) )
-
- resAAA = cursor.fetchall()
- if resAAA:
- myFields = ['pathwaynames']
- for j, item in enumerate(myFields):
- temp = []
- for k in resAAA:
- temp.append(k[j])
- newdict["pathwaynames"] = temp
-
-## get GO terms
-
- cursor.execute("""
- SELECT
- distinct go.term.name
- FROM go.gene_product
- INNER JOIN go.dbxref ON (go.gene_product.dbxref_id=go.dbxref.id)
- INNER JOIN go.association ON (go.gene_product.id=go.association.gene_product_id)
- INNER JOIN go.term ON (go.association.term_id=go.term.id)
- WHERE
- go.dbxref.xref_key = (select mgi from go.genemgi where gene='%s' limit 1)
- AND
- go.dbxref.xref_dbname = 'MGI'
- AND
- go.term.term_type='biological_process'
- """ % (newdict["GeneID"]) )
-
- resAAA = cursor.fetchall()
- if resAAA:
- myFields = ['goterms']
- for j, item in enumerate(myFields):
- temp = []
- for k in resAAA:
- temp.append(k[j])
- newdict["goterms"] = temp
-
-
-
-
-
-
- newdict["snpDensity"] = newdict["snpCount"] = newdict["snpCountall"] = newdict["snpCountmis"] = newdict["snpCountBXD"] = newdict["snpCountmissel"] = 0
-
- #count SNPs if possible
- if diffCol and species=='mouse':
- cursor.execute("""
- select
- count(*) from BXDSnpPosition
- where
- Chr = '%s' AND Mb >= %2.6f AND Mb < %2.6f AND
- StrainId1 = %d AND StrainId2 = %d
- """ % (chrName, newdict["TxStart"], newdict["TxEnd"], diffCol[0], diffCol[1]))
- newdict["snpCount"] = cursor.fetchone()[0]
- newdict["snpDensity"] = newdict["snpCount"]/(newdict["TxEnd"]-newdict["TxStart"])/1000.0
- else:
- newdict["snpDensity"] = newdict["snpCount"] = 0
-
- try:
- newdict['GeneLength'] = 1000.0*(newdict['TxEnd'] - newdict['TxStart'])
- except:
- pass
-
-
-
-#self.cursor.execute("SELECT geneSymbol, chromosome, txStart, txEnd from GeneList where SpeciesId= 1 and geneSymbol = %s", opt.geneName)
-
-
-
-
- ## search with gene name... doesnt matter. it changed to start and end position anyway
- ##self.cursor.execute("SELECT geneSymbol, chromosome, txStart, txEnd from GeneList where SpeciesId= 1 and geneSymbol = %s", newdict["GeneSymbol"])
-
-
- #count SNPs for all strains
- cursor.execute("""
- SELECT
- distinct SnpAll.Id
- from
- SnpAll
- where
- SpeciesId = '1' and SnpAll.Chromosome = '%s' AND
- SnpAll.Position >= %2.6f and SnpAll.Position < %2.6f AND
- SnpAll.Exon='Y'
- """ % (newdict["Chromosome"], newdict["TxStart"], newdict["TxEnd"]))
- snpfetch = cursor.fetchall()
- newdict["snpCountmis"] = len(snpfetch)
-
-## # count SNPs for selected strains
-
- sql = """SELECT
- distinct SnpAll.Id, `%s`, `%s`
- from
- SnpAll, SnpPattern
- where
- SpeciesId = '1' and SnpAll.Chromosome = '%s' AND
- SnpAll.Position >= %2.6f and SnpAll.Position < %2.6f and SnpAll.Id = SnpPattern.SnpId AND
- SnpPattern.`%s` != SnpPattern.`%s` AND
- SnpAll.Exon='Y'
- """ % (str1, str2, newdict["Chromosome"], newdict["TxStart"], newdict["TxEnd"], str1, str2)
- cursor.execute(sql)
- ressnp = cursor.fetchall()
- newdict["snpCountmissel"] = len(ressnp)
- newdict["hassnp"] = 'n'
- if len(ressnp)>0 :
- newdict["hassnp"]= 'y'
-## ####################################### NEW NEW NEW
-
-
-
-
-
-
-
- # count Indels for BXD mice
- cursor.execute("""
- SELECT
- distinct IndelAll.Name, IndelAll.Chromosome, IndelAll.SourceId, IndelAll.Mb_start,
- IndelAll.Mb_end, IndelAll.Strand, IndelAll.Type, IndelAll.Size, IndelAll.InDelSequence,
- SnpSource.Name
- from
- SnpSource, IndelAll
- where
- IndelAll.SpeciesId = '1' and IndelAll.Chromosome = '%s' AND
- IndelAll.Mb_start >= %2.6f and IndelAll.Mb_start < (%2.6f+.0010) AND
- SnpSource.Id = IndelAll.SourceId
- order by IndelAll.Mb_start
- """ % (newdict["Chromosome"], newdict["TxStart"], newdict["TxEnd"]))
-
- ressnp = cursor.fetchall()
- newdict["indelCountBXD"] = len(ressnp)
- newdict["hasindel"] = 'n'
- newdict["hasexpr"] = 'n'
- newdict["hascis"] = 'n'
- newdict["score"] = 0
- if len(ressnp)>0 :
- newdict["hasindel"]= 'y'
-
-## # cursor.execute("""
-## # select
-## # Name from ProbeSet
-## # where
-## # GeneId = '%s' AND ChipId=4 limit 1
-## # """ % (newdict["GeneID"]))
-## # if species=='mouse':
-## # cursor.execute("""
-## # select
-## # Name from ProbeSet
-## # where
-## # GeneId = '%s' AND ChipId=4
-## # """ % (newdict["GeneID"]))
-## # results = cursor.fetchall()
-## # psets = []
-## # for item in results:
-## # psets.append(item)
-## # newdict["probeset"] = psets
-## #
-## # else:
-## # newdict["probeset"] = "empty"
-
-
-
-
- if species=='mouse':
- cursor.execute("""
- select
- distinct 0,
- ProbeSet.Name as TNAME,
- round(ProbeSetXRef.Mean,1) as TMEAN,
- round(ProbeSetXRef.LRS,1) as TLRS,
- ProbeSet.Chr_num as TCHR_NUM,
- ProbeSet.Mb as TMB,
- ProbeSet.Symbol as TSYMBOL,
- ProbeSet.name_num as TNAME_NUM
- FROM ProbeSetXRef, ProbeSetFreeze, ProbeSet
- where
- ( MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol,
- alias,GenbankId,UniGeneId, Probe_Target_Description)
- AGAINST ('%s' IN BOOLEAN MODE) )
- and ProbeSet.symbol = '%s'
- and ProbeSet.Id = ProbeSetXRef.ProbeSetId
- and ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id
- and ProbeSetFreeze.Id = (select Id from ProbeSetFreeze where Name='%s' limit 1)
- """ % (newdict["GeneSymbol"],newdict["GeneSymbol"],databaseA))
- resA = cursor.fetchall()
-
- if resA:
- myFields = ['dummyA','probesetA','meanA','newlrsA','probesetchrA','probesetmbA','probesetsymbolA','probesetnamenumA']
-
-# fpText = open(os.path.join(webqtlConfig.TMPDIR, "res") + '.txt','wb')
- #fpText.write("newdictgeneid '%s' \n" % newdict["GeneId"])
- for j, item in enumerate(myFields):
- temp = []
- for k in resA:
- # fpText.write("j: result: '%s' \n" % k[j])
- temp.append(k[j])
- newdict[item] = temp
- # fpText.close()
-
-
- # put probesetcisA here
-
- cursor.execute("""
- select
- distinct 0,
- if( (ProbeSet.Chr = Geno.Chr AND ProbeSetXRef.LRS > 10.0000000 and ABS(ProbeSet.Mb-Geno.Mb) < 10.0000000 ) , concat('yes(',round(ProbeSetXRef.LRS,1),')') , 'no') as cis
- FROM Geno, ProbeSetXRef, ProbeSetFreeze, ProbeSet
- where
- ( MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol,
- alias,GenbankId,UniGeneId, Probe_Target_Description)
- AGAINST ('%s' IN BOOLEAN MODE) )
- and ProbeSet.symbol = '%s'
- and ProbeSet.Id = ProbeSetXRef.ProbeSetId
- and Geno.SpeciesId=1 #XZ: I add this line to speed up query
- and ProbeSetXRef.Locus = Geno.name
- and ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id
- and ProbeSetFreeze.Id = (select Id from ProbeSetFreeze where Name='%s' limit 1)
- """ % (newdict["GeneSymbol"],newdict["GeneSymbol"],databaseA))
-
- resA2 = cursor.fetchall()
- if resA2:
- myFields = ['dummyA2','probesetcisA']
- for j, item in enumerate(myFields):
- temp = []
- for k in resA2:
- # fpText.write("j: result: '%s' \n" % k[j])
- temp.append(k[j])
- newdict[item] = temp
- else:
- newdict['probesetcisA'] = ''
-
-
-
- # specially for this dataset only
- newdict["hasexpr"] = 'n'
- if len(newdict["meanA"])>0:
- for mym in newdict["meanA"]:
- if mym>8:
- newdict["hasexpr"] = 'y'
-
- # specially for this dataset only
- newdict["hascis"] = 'n'
- if len(newdict["probesetcisA"])>0:
- for mym in newdict["probesetcisA"]:
- if mym != 'no':
- newdict["hascis"] = 'y'
-
- else:
- myFields = ['dummyA','probesetA,''meanA','newlrsA','probesetchrA','probesetmbA','probesetsymbolA','probesetnamenumA', 'probesetcisA']
- for j, item in enumerate(myFields):
- newdict[item] = "--"
-
- # specially for this dataset only
- newdict["hasexpr"] = 'n'
- newdict["hascis"] = 'n'
- newdict["score"] = 0
-
-########################## FOR B
-
- newdict["score"] = 0
- if newdict["hassnp"] == 'y':
- newdict["score"] = newdict["score"] + 1
- if newdict["hasexpr"] == 'y':
- newdict["score"] = newdict["score"] + 1
- if newdict["hasindel"] == 'y':
- newdict["score"] = newdict["score"] + 1
- if newdict["hascis"] == 'y':
- newdict["score"] = newdict["score"] + 1
-
-
-
- if species=='mouse':
- cursor.execute("""
- select
- distinct 0,
- ProbeSet.Name as TNAME,
- round(ProbeSetXRef.Mean,1) as TMEAN,
- round(ProbeSetXRef.LRS,1) as TLRS,
- ProbeSet.Chr_num as TCHR_NUM,
- ProbeSet.Mb as TMB,
- ProbeSet.Symbol as TSYMBOL,
- ProbeSet.name_num as TNAME_NUM
- FROM ProbeSetXRef, ProbeSetFreeze, ProbeSet
- where
- ( MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol,
- alias,GenbankId,UniGeneId, Probe_Target_Description)
- AGAINST ('%s' IN BOOLEAN MODE) )
- and ProbeSet.symbol = '%s'
- and ProbeSet.Id = ProbeSetXRef.ProbeSetId
- and ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id
- and ProbeSetFreeze.Id = (select Id from ProbeSetFreeze where Name='%s' limit 1)
- """ % (newdict["GeneSymbol"],newdict["GeneSymbol"],databaseB))
-
- resB = cursor.fetchall()
- if resB:
- myFields = ['dummyB','probesetB','meanB','newlrsB','probesetchrB','probesetmbB','probesetsymbolB','probesetnamenumB']
-
-# fpText = open(os.path.join(webqtlConfig.TMPDIR, "res") + '.txt','wb')
- #fpText.write("newdictgeneid '%s' \n" % newdict["GeneId"])
- for j, item in enumerate(myFields):
- temp = []
- for k in resB:
- # fpText.write("j: result: '%s' \n" % k[j])
- temp.append(k[j])
- newdict[item] = temp
- # fpText.close()
-
-
- # put probesetcisB here
- cursor.execute("""
- select
- distinct 0,
- if( (ProbeSet.Chr = Geno.Chr AND ProbeSetXRef.LRS > 10.0000000 and ABS(ProbeSet.Mb-Geno.Mb) < 10.0000000 ) , concat('yes(',round(ProbeSetXRef.LRS,1),')') , 'no') as cis
- FROM Geno, ProbeSetXRef, ProbeSetFreeze, ProbeSet
- where
- ( MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol,
- alias,GenbankId,UniGeneId, Probe_Target_Description)
- AGAINST ('%s' IN BOOLEAN MODE) )
- and ProbeSet.symbol = '%s'
- and ProbeSet.Id = ProbeSetXRef.ProbeSetId
- and Geno.SpeciesId=1 #XZ: I add this line to speed up query
- and ProbeSetXRef.Locus = Geno.name
- and ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id
- and ProbeSetFreeze.Id = (select Id from ProbeSetFreeze where Name='%s' limit 1)
- """ % (newdict["GeneSymbol"],newdict["GeneSymbol"],databaseB))
-
- resB2 = cursor.fetchall()
- if resB2:
- myFields = ['dummyB2','probesetcisB']
- for j, item in enumerate(myFields):
- temp = []
- for k in resB2:
- # fpText.write("j: result: '%s' \n" % k[j])
- temp.append(k[j])
- newdict[item] = temp
- else:
- newdict['probesetcisB'] = ''
-
-
- else:
- myFields = ['dummyB','probesetB,''meanB','newlrsB','probesetchrB','probesetmbB','probesetsymbolB','probesetnamenumB', 'probesetcisB']
- for j, item in enumerate(myFields):
- newdict[item] = "--"
-
-
-
-##########################
-
-
-########################## FOR C
-
-
- if species=='mouse':
- cursor.execute("""
- select
- distinct 0,
- ProbeSet.Name as TNAME,
- round(ProbeSetXRef.Mean,1) as TMEAN,
- round(ProbeSetXRef.LRS,1) as TLRS,
- ProbeSet.Chr_num as TCHR_NUM,
- ProbeSet.Mb as TMB,
- ProbeSet.Symbol as TSYMBOL,
- ProbeSet.name_num as TNAME_NUM
- FROM ProbeSetXRef, ProbeSetFreeze, ProbeSet
- where
- ( MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol,
- alias,GenbankId,UniGeneId, Probe_Target_Description)
- AGAINST ('%s' IN BOOLEAN MODE) )
- and ProbeSet.symbol = '%s'
- and ProbeSet.Id = ProbeSetXRef.ProbeSetId
- and ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id
- and ProbeSetFreeze.Id = (select Id from ProbeSetFreeze where Name='%s' limit 1)
- """ % (newdict["GeneSymbol"],newdict["GeneSymbol"],databaseC))
-
- resC = cursor.fetchall()
- if resC:
- myFields = ['dummyC','probesetC','meanC','newlrsC','probesetchrC','probesetmbC','probesetsymbolC','probesetnamenumC']
-
-# fpText = open(os.path.join(webqtlConfig.TMPDIR, "res") + '.txt','wb')
- #fpText.write("newdictgeneid '%s' \n" % newdict["GeneId"])
- for j, item in enumerate(myFields):
- temp = []
- for k in resC:
- # fpText.write("j: result: '%s' \n" % k[j])
- temp.append(k[j])
- newdict[item] = temp
- # fpText.close()
-
-
- # put probesetcisC here
- cursor.execute("""
- select
- distinct 0,
- if( (ProbeSet.Chr = Geno.Chr AND ProbeSetXRef.LRS > 10.0000000 and ABS(ProbeSet.Mb-Geno.Mb) < 10.0000000 ) , concat('yes(',round(ProbeSetXRef.LRS,1),')') , 'no') as cis
- FROM Geno, ProbeSetXRef, ProbeSetFreeze, ProbeSet
- where
- ( MATCH (ProbeSet.Name,ProbeSet.description,ProbeSet.symbol,
- alias,GenbankId,UniGeneId, Probe_Target_Description)
- AGAINST ('%s' IN BOOLEAN MODE) )
- and ProbeSet.symbol = '%s'
- and ProbeSet.Id = ProbeSetXRef.ProbeSetId
- and Geno.SpeciesId=1 #XZ: I add this line to speed up query
- and ProbeSetXRef.Locus = Geno.name
- and ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id
- and ProbeSetFreeze.Id = (select Id from ProbeSetFreeze where Name='%s' limit 1)
- """ % (newdict["GeneSymbol"],newdict["GeneSymbol"],databaseC))
-
- resC2 = cursor.fetchall()
- if resC2:
- myFields = ['dummyC2','probesetcisC']
- for j, item in enumerate(myFields):
- temp = []
- for k in resC2:
- # fpText.write("j: result: '%s' \n" % k[j])
- temp.append(k[j])
- newdict[item] = temp
- else:
- newdict['probesetcisC'] = ''
-
- else:
- myFields = ['dummyC','probesetC,''meanC','newlrsC','probesetchrC','probesetmbC','probesetsymbolC','probesetnamenumC', 'probesetcisC']
- for j, item in enumerate(myFields):
- newdict[item] = "--"
-
-
-
-
-
-
-
-
- #load gene from other Species by the same name
-
-
- for item in otherSpecies:
- othSpec, othSpecId = item
- newdict2 = {}
-
- cursor.execute("SELECT %s from GeneList where SpeciesId = %d and geneSymbol= '%s' limit 1" %
- (string.join(fetchFields, ", "), othSpecId, newdict["GeneSymbol"]))
- resultsOther = cursor.fetchone()
- if resultsOther:
- for j, item in enumerate(fetchFields):
- newdict2[item] = resultsOther[j]
-
- #count SNPs if possible, could be a separate function
- if diffCol and othSpec == 'mouse':
- cursor.execute("""
- select
- count(*) from BXDSnpPosition
- where
- Chr = '%s' AND Mb >= %2.6f AND Mb < %2.6f AND
- StrainId1 = %d AND StrainId2 = %d
- """ % (chrName, newdict["TxStart"], newdict["TxEnd"], diffCol[0], diffCol[1]))
-
-
- newdict2["snpCount"] = cursor.fetchone()[0]
- newdict2["snpDensity"] = newdict2["snpCount"]/(newdict2["TxEnd"]-newdict2["TxStart"])/1000.0
- else:
- newdict2["snpDensity"] = newdict2["snpCount"] = 0
-
- try:
- newdict2['GeneLength'] = 1000.0*(newdict2['TxEnd'] - newdict2['TxStart'])
- except:
- pass
-
- newdict['%sGene' % othSpec] = newdict2
-
- #newdict['RUDI']='hallo allemaal'
-
- GeneList.append(newdict)
-
-
- return GeneList
-
-
diff --git a/web/webqtl/qtlminer/QTLminer.py b/web/webqtl/qtlminer/QTLminer.py
deleted file mode 100755
index e565cdd7..00000000
--- a/web/webqtl/qtlminer/QTLminer.py
+++ /dev/null
@@ -1,1237 +0,0 @@
-#Note that although this module gets imported a bit, the dict columnNames is never used outside this code.
-#Also note that snpBrowser also defines a columnNames dict; it's different. -KA
-
-from htmlgen import HTMLgen2 as HT
-import os
-import time
-import pyXLWriter as xl
-
-import GeneUtil
-from base.templatePage import templatePage
-from utility import webqtlUtil
-from base import webqtlConfig
-
-
-_scriptfile = "main.py?FormID=qtlminerresult"
-
-#A dictionary that lets us map the html form names "txStart_mm6" -> "Mb Start (mm8)"
-#the first item is the short name (column headers) and the second item is the long name (dropdown list)
-# [short name, long name, category]
-columnNames = {"GeneSymbol" : ["Gene", "Gene Name", 'gene'],
- "GeneDescription" : ["Description", "Gene Description", 'species'],
-# "probeset" : ["ProbeSet", "ProbeSet", 'gene'],
-# "probesetsymbolA" : ["ProbeSet Symbol A", "ProbeSetsymbolA", 'gene'],
-# "probesetchrA" : ["probesetchrA", "probesetchrA", 'gene'],
- "hassnp" : ["Has nsSNP", "Has nsSNP", 'gene'],
- "hasindel" : ["Has indel", "Has indel", 'gene'],
- "hasexpr" : ["Has expr", "Has expression", 'gene'],
- "hascis" : ["Has cis", "Has cis regulation", 'gene'],
- "score" : ["Score", "Score", 'gene'],
- "meanA" : ["Expression A", "Expression in dataset 1", 'gene'],
- "meanB" : ["Expression B", "Expression in dataset 2", 'gene'],
- "meanC" : ["Expression C", "Expression in dataset 3", 'gene'],
- "probesetcisA" : ["Cis A", "Cis regulation in dataset 1", 'gene'],
- "probesetcisB" : ["Cis B", "Cis regulation in dataset 2", 'gene'],
- "probesetcisC" : ["Cis C", "Cis regulation in dataset 3", 'gene'],
- "probesetA" : ["ProbeSet A", "ProbeSet in dataset 1", 'gene'],
- "probesetB" : ["ProbeSet B", "ProbeSet in dataset 2", 'gene'],
- "probesetC" : ["ProbeSet C", "ProbeSet in dataset 3", 'gene'],
- "goterms" : ["GO biological process", "GO biological process", 'gene'],
- "pathways" : ["KEGG PathwayIDs", "KEGG PathwayIDs", 'gene'],
- "pathwaynames" : ["KEGG Pathways", "KEGG Pathways", 'gene'],
-# "newlrsA" : ["Lrs A", "lrs A", 'gene'],
-# "probesetchrB" : ["probesetchrB", "probesetchrB", 'gene'],
-# "newlrsB" : ["lrs B", "lrs B", 'gene'],
-# "probesetchrC" : ["probesetchrC", "probesetchrC", 'gene'],
-# "newlrsC" : ["lrs C", "lrs C", 'gene'],
- 'GeneNeighborsCount' : ["Neighbors", "Gene Neighbors", 'gene'],
- 'GeneNeighborsRange' : ["Neighborhood", "Gene Neighborhood (Mb)", 'gene'],
- 'GeneNeighborsDensity' : ["Gene Density", "Gene Density (Neighbors/Mb)", 'gene'],
- "ProteinID" : ["Prot ID", "Protein ID", 'protein'],
- "Chromosome" : ["Chr", "Chromosome", 'species'],
- "TxStart" : ["Start", "Mb Start", 'species'],
- "TxEnd" : ["End", "Mb End", 'species'],
- "GeneLength" : ["Length", "Kb Length", 'species'],
- "cdsStart" : ["CDS Start", "Mb CDS Start", 'species'],
- "cdsEnd" : ["CDS End", "Mb CDS End", 'species'],
- "exonCount" : ["Num Exons", "Exon Count", 'species'],
- "exonStarts" : ["Exon Starts", "Exon Starts", 'species'],
- "exonEnds" : ["Exon Ends", "Exon Ends", 'species'],
- "Strand" : ["Strand", "Strand", 'species'],
- "GeneID" : ["Gene ID", "Gene ID", 'species'],
- "GenBankID" : ["GenBank", "GenBank ID", 'species'],
- "UnigenID" : ["Unigen", "Unigen ID", 'species'],
- "NM_ID" : ["NM ID", "NM ID", 'species'],
- "kgID" : ["kg ID", "kg ID", 'species'],
- "snpCountall" : ["SNPs", "SNP Count", 'species'],
- "snpCountmis": ["nsSNPs all", "nsSNP Count all strains", 'species'],
- "snpCountmissel": ["nsSNPs selected", "nsSNP Count selected strains", 'species'],
- "snpDensity" : ["SNP Density", "SNP Density", 'species'],
- "indelCountBXD" : ["Indels in BXD mice", "Indel Count in BXD mice", 'species'],
- "lrs" : ["LRS", "Likelihood Ratio Statistic", 'misc'],
- "lod" : ["LOD", "Likelihood Odds Ratio", 'misc'],
- "pearson" : ["Pearson", "Pearson Product Moment", 'misc'],
- "literature" : ["Lit Corr", "Literature Correlation", 'misc'],
- }
-
-###Species Freeze
-speciesFreeze = {'mouse':'mm9', 'rat':'rn3', 'human':'hg19'}
-for key in speciesFreeze.keys():
- speciesFreeze[speciesFreeze[key]] = key
-
-class QTLminer (templatePage): ###
- filename = webqtlUtil.genRandStr("Itan_")
-
- javascript_content = """
-<SCRIPT language="JAVASCRIPT">
-
-function update4(self,form) {
- self.database='leeg';
-
-}
-
-
-
-
-</SCRIPT>
-"""
- def __init__(self, fd):
- templatePage.__init__(self, fd)
- if not self.openMysql():
- return
-
- self.species = fd.formdata.getvalue("species", "mouse")
- try:
- self.startMb = float(fd.formdata.getvalue("startMb"))
- except:
- self.startMb = 173
- try:
- self.endMb = float(fd.formdata.getvalue("endMb"))
- except:
- self.endMb = self.startMb + 1
-
- self.Chr = fd.formdata.getvalue("chromosome", "1")
-
-
-
-######################################################### FOR A
- ###### species
-
- self.cursor.execute("""
- Select
- Name, Id from Species
- Order by
- Id
- """ )
- res = self.cursor.fetchall()
- self.spA = res
- self.spAsel = fd.formdata.getvalue("myspeciesA", "mouse")
-
- if not hasattr(self,"spA"):
- self.spA = res2
- self.spAsel = 'mouse'
-
- ###### group
-
- self.cursor.execute("""
- select
- distinct InbredSet.Name, InbredSet.FullName
- from InbredSet, Species, ProbeFreeze, GenoFreeze, PublishFreeze
- where
- InbredSet.SpeciesId= Species.Id and
- Species.Name='%s' and InbredSet.Name != 'BXD300' and
- (PublishFreeze.InbredSetId = InbredSet.Id or GenoFreeze.InbredSetId = InbredSet.Id or ProbeFreeze.InbredSetId = InbredSet.Id)
- order by
- InbredSet.Name
- """ % self.spAsel)
-
- res = self.cursor.fetchall()
-
- if not hasattr(self,"grA"):
- self.grA = res
- self.grAsel = 'BXD'
-
- if fd.formdata.getvalue('submitter') == 'a1':
- self.grA = res
- self.grAsel = self.grA[0][0]
- else:
- self.grAsel = fd.formdata.getvalue("groupA","BXD")
-
- ###### type
-
- self.cursor.execute("""
- select
- distinct Tissue.Name, concat(Tissue.Name, ' mRNA')
- from ProbeFreeze, ProbeSetFreeze, InbredSet, Tissue
- where
- ProbeFreeze.TissueId = Tissue.Id and
- ProbeFreeze.InbredSetId = InbredSet.Id and
- InbredSet.Name in ('%s') and
- ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and
- ProbeSetFreeze.public > %d
- order by Tissue.Name
- """ % (self.grAsel,webqtlConfig.PUBLICTHRESH))
-
- res = self.cursor.fetchall()
-
- if not hasattr(self,"tyA"):
- self.tyA = res
- self.tyAsel = 'Hippocampus'
-
- if fd.formdata.getvalue('submitter') in ['a1','a2'] :
- self.tyA = res
- self.tyAsel = self.tyA[0][0]
- else:
- self.tyAsel = fd.formdata.getvalue("typeA","Hippocampus")
-
- ###### database
-
- self.cursor.execute("""
- select
- ProbeSetFreeze.Name, ProbeSetFreeze.FullName
- from ProbeSetFreeze, ProbeFreeze, InbredSet, Tissue
- where ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and
- ProbeFreeze.TissueId = Tissue.Id and
- ProbeFreeze.InbredSetId = InbredSet.Id and
- InbredSet.Name in ('%s') and Tissue.name = '%s' and
- ProbeSetFreeze.public > %d
- order by ProbeSetFreeze.CreateTime desc
- """ % (self.grAsel,self.tyAsel,webqtlConfig.PUBLICTHRESH))
-
- res = self.cursor.fetchall()
-
- if not hasattr(self,"daA"):
- self.daA = res
- self.daAsel = 'HC_M2_0606_P'
-
- if fd.formdata.getvalue('submitter') in ['a1','a2','a3'] :
- self.daA = res
- self.daAsel = self.daA[0][0]
- else:
- self.daAsel = fd.formdata.getvalue("databaseA","HC_M2_0606_P")
-
-
-######################################################### FOR B
- ###### species
-
- self.cursor.execute("""
- Select
- Name, Id from Species
- Order by
- Id
- """ )
- res = self.cursor.fetchall()
- self.spB = res
- self.spBsel = fd.formdata.getvalue("myspeciesB", "mouse")
-
- if not hasattr(self,"spB"):
- self.spB = res
- self.spBsel = 'mouse'
-
- ###### group
-
- self.cursor.execute("""
- select
- distinct InbredSet.Name, InbredSet.FullName
- from InbredSet, Species, ProbeFreeze, GenoFreeze, PublishFreeze
- where
- InbredSet.SpeciesId= Species.Id and
- Species.Name='%s' and InbredSet.Name != 'BXD300' and
- (PublishFreeze.InbredSetId = InbredSet.Id or GenoFreeze.InbredSetId = InbredSet.Id or ProbeFreeze.InbredSetId = InbredSet.Id)
- order by
- InbredSet.Name
- """ % self.spBsel)
-
- res = self.cursor.fetchall()
-
- if not hasattr(self,"grB"):
- self.grB = res
- self.grBsel = 'CXB'
-
- if fd.formdata.getvalue('submitter') == 'b1':
- self.grB = res
- self.grBsel = self.grB[0][0]
- else:
- self.grBsel = fd.formdata.getvalue("groupB","CXB")
-
- ###### type
-
- self.cursor.execute("""
- select
- distinct Tissue.Name, concat(Tissue.Name, ' mRNA')
- from ProbeFreeze, ProbeSetFreeze, InbredSet, Tissue
- where
- ProbeFreeze.TissueId = Tissue.Id and
- ProbeFreeze.InbredSetId = InbredSet.Id and
- InbredSet.Name in ('%s') and
- ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and
- ProbeSetFreeze.public > %d
- order by Tissue.Name
- """ % (self.grBsel,webqtlConfig.PUBLICTHRESH))
-
- res = self.cursor.fetchall()
-
- if not hasattr(self,"tyB"):
- self.tyB = res
- self.tyBsel = 'Hippocampus'
-
- if fd.formdata.getvalue('submitter') in ['b1','b2'] :
- self.tyB = res
- self.tyBsel = self.tyB[0][0]
- else:
- self.tyBsel = fd.formdata.getvalue("typeB","Hippocampus")
-
- ###### database
-
- self.cursor.execute("""
- select
- ProbeSetFreeze.Name, ProbeSetFreeze.FullName
- from ProbeSetFreeze, ProbeFreeze, InbredSet, Tissue
- where ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and
- ProbeFreeze.TissueId = Tissue.Id and
- ProbeFreeze.InbredSetId = InbredSet.Id and
- InbredSet.Name in ('%s') and Tissue.name = '%s' and
- ProbeSetFreeze.public > %d
- order by ProbeSetFreeze.CreateTime desc
- """ % (self.grBsel,self.tyBsel,webqtlConfig.PUBLICTHRESH))
-
- res = self.cursor.fetchall()
-
- if not hasattr(self,"daB"):
- self.daB = res
- self.daBsel = 'HC_M2CB_1205_R'
-
- if fd.formdata.getvalue('submitter') in ['b1','b2','b3'] :
- self.daB = res
- self.daBsel = self.daB[0][0]
- else:
- self.daBsel = fd.formdata.getvalue("databaseB","HC_M2CB_1205_R")
-
-
-
-######################################################### FOR C
- ###### species
-
- self.cursor.execute("""
- Select
- Name, Id from Species
- Order by
- Id
- """ )
- res = self.cursor.fetchall()
- self.spC = res
- self.spCsel = fd.formdata.getvalue("myspeciesC", "mouse")
-
- if not hasattr(self,"spC"):
- self.spC = res
- self.spCsel = 'mouse'
-
- ###### group
-
- self.cursor.execute("""
- select
- distinct InbredSet.Name, InbredSet.FullName
- from InbredSet, Species, ProbeFreeze, GenoFreeze, PublishFreeze
- where
- InbredSet.SpeciesId= Species.Id and
- Species.Name='%s' and InbredSet.Name != 'BXD300' and
- (PublishFreeze.InbredSetId = InbredSet.Id or GenoFreeze.InbredSetId = InbredSet.Id or ProbeFreeze.InbredSetId = InbredSet.Id)
- order by
- InbredSet.Name
- """ % self.spCsel)
-
- res = self.cursor.fetchall()
-
- if not hasattr(self,"grC"):
- self.grC = res
- self.grCsel = 'LXS'
-
- if fd.formdata.getvalue('submitter') == 'c1':
- self.grC = res
- self.grCsel = self.grC[0][0]
- else:
- self.grCsel = fd.formdata.getvalue("groupC","LXS")
-
- ###### type
-
- self.cursor.execute("""
- select
- distinct Tissue.Name, concat(Tissue.Name, ' mRNA')
- from ProbeFreeze, ProbeSetFreeze, InbredSet, Tissue
- where
- ProbeFreeze.TissueId = Tissue.Id and
- ProbeFreeze.InbredSetId = InbredSet.Id and
- InbredSet.Name in ('%s') and
- ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and
- ProbeSetFreeze.public > %d
- order by Tissue.Name
- """ % (self.grCsel,webqtlConfig.PUBLICTHRESH))
-
- res = self.cursor.fetchall()
-
- if not hasattr(self,"tyC"):
- self.tyC = res
- self.tyCsel = 'Hippocampus'
-
- if fd.formdata.getvalue('submitter') in ['c1','c2'] :
- self.tyC = res
- self.tyCsel = self.tyC[0][0]
- else:
- self.tyCsel = fd.formdata.getvalue("typeC","Hippocampus")
-
- ###### database
-
-
- self.cursor.execute("""
- select
- ProbeSetFreeze.Name, ProbeSetFreeze.FullName
- from ProbeSetFreeze, ProbeFreeze, InbredSet, Tissue
- where ProbeSetFreeze.ProbeFreezeId = ProbeFreeze.Id and
- ProbeFreeze.TissueId = Tissue.Id and
- ProbeFreeze.InbredSetId = InbredSet.Id and
- InbredSet.Name in ('%s') and Tissue.name = '%s' and
- ProbeSetFreeze.public > %d
- order by ProbeSetFreeze.CreateTime desc
- """ % (self.grCsel,self.tyCsel,webqtlConfig.PUBLICTHRESH))
-
- res = self.cursor.fetchall()
-
- if not hasattr(self,"daC"):
- self.daC = res
- self.daCsel = 'Illum_LXS_Hipp_loess0807'
-
- if fd.formdata.getvalue('submitter') in ['c1','c2','c3'] :
- self.daC = res
- self.daCsel = self.daC[0][0]
- else:
- self.daCsel = fd.formdata.getvalue("databaseC","Illum_LXS_Hipp_loess0807")
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# self.myspeciesA = fd.formdata.getvalue("myspeciesA", "mouse")
-# self.groupA = fd.formdata.getvalue("groupA", "BXD")
-# self.typeA = fd.formdata.getvalue("typeA", "Spleen")
-# self.databaseA = fd.formdata.getvalue("databaseA", "IoP_SPL_RMA_0509")#
-
-# self.myspeciesB = fd.formdata.getvalue("myspeciesB", "mouse")
-# self.groupB = fd.formdata.getvalue("groupB", "BXD")
-# self.typeB = fd.formdata.getvalue("typeB", "Spleen")
-# self.databaseB = fd.formdata.getvalue("databaseB", "IoP_SPL_RMA_0509")
-
- self.xls = fd.formdata.getvalue("xls", "1")
- try:
- s1 = int(fd.formdata.getvalue("s1"))
- s2 = int(fd.formdata.getvalue("s2"))
- self.diffColDefault = self.diffCol = [s1, s2]
- except:
- self.diffColDefault = self.diffCol = []
- if self.species != 'mouse':
- self.diffColDefault = [2, 3]#default is B6 and D2 for other species
-
-
-
- self.str1 = fd.formdata.getvalue("str1", "C57BL/6J")
- self.str2 = fd.formdata.getvalue("str2", "DBA/2J")
- self.sorton = fd.formdata.getvalue("sorton", "Position")
-
- controlFrm, dispFields, dispFields2 = self.genControlForm(fd)
- ## if not fd.formdata.getvalue('submitter') in ['a1','a2','a3''a4'] :
-
- self.cursor.execute("""select Id from Strain where Name='%s'
- """ % self.str1 )
- strain1 = self.cursor.fetchone()[0]
- self.cursor.execute("""select Id from Strain where Name='%s'
- """ % self.str2 )
- strain2 = self.cursor.fetchone()[0]
-
- filename=''
- if fd.formdata.getvalue('submitter') in ['refresh'] or not hasattr(self,"daA"):
- geneTable, filename = self.genGeneTable(fd, dispFields, strain1, strain2)
-
- infoTD = HT.TD(width=400, valign= "top")
- infoTD.append(HT.Paragraph("QTLminer : Chr %s" % self.Chr, Class="title"),
-# HT.Strong("Species : "), self.species.title(), HT.BR(),
-
-# HT.Strong("myspeciesA : "), self.myspeciesA, HT.BR(),
-# HT.Strong("groupA : "), self.groupA, HT.BR(),
-# HT.Strong("typeA : "), self.typeA, HT.BR(),
-# HT.Strong("databaseA : "), self.databaseA, HT.BR(),
-
-# HT.Strong("myspeciesB : "), self.myspeciesB, HT.BR(),
-# HT.Strong("groupB : "), self.groupB, HT.BR(),
-# HT.Strong("typeB : "), self.typeB, HT.BR(),
-# HT.Strong("databaseB : "), self.databaseB, HT.BR(),
-
-# HT.Strong("spAsel : "), self.spAsel, HT.BR(),
-# HT.Strong("grAsel : "), self.grAsel, HT.BR(),
-# HT.Strong("tyAsel : "), self.tyAsel, HT.BR(),
-# HT.Strong("daAsel : "), self.daAsel, HT.BR(),
-
-# HT.Strong("spBsel : "), self.spBsel, HT.BR(),
-# HT.Strong("grBsel : "), self.grBsel, HT.BR(),
-# HT.Strong("tyBsel : "), self.tyBsel, HT.BR(),
-# HT.Strong("daBsel : "), self.daBsel, HT.BR(),
-
-# HT.Strong("chr : "), self.Chr, HT.BR(),
-# HT.Strong("formdata.submitter :"), fd.formdata.getvalue("submitter"), HT.BR(),
-# HT.Strong("formdata.myspeciesA : "), fd.formdata.getvalue("myspeciesA"), HT.BR(),
-# HT.Strong("formdata.groupA: "), fd.formdata.getvalue("groupA") , HT.BR(),
-# HT.Strong("formdata.myspeciesB : "), fd.formdata.getvalue("myspeciesB"), HT.BR(),
-# HT.Strong("formdata.groupB: "), fd.formdata.getvalue("groupB") , HT.BR(),
-# HT.Strong("formdata.type: "), fd.formdata.getvalue("type") , HT.BR(),
-# HT.Strong("formdata.database: "), fd.formdata.getvalue("database") , HT.BR(),
-# HT.Strong("Database : "), "UCSC %s" % speciesFreeze[self.species], HT.BR(),
- HT.Strong("Range : "), "%2.6f Mb - %2.6f Mb" % (self.startMb, self.endMb), HT.BR(),
- )
-
- if filename:
- infoTD.append(HT.BR(), HT.BR(), HT.Href(text="Download", url = "/tmp/" + filename, Class="normalsize")
- , " output in MS excel format.")
-
- mainTable = HT.TableLite(HT.TR(infoTD, HT.TD(controlFrm, Class="doubleBorder", width=400), HT.TD("&nbsp;", width="")), cellpadding=10)
-
- if fd.formdata.getvalue('submitter') in ['refresh'] or not hasattr(self,"daA"):
- mainTable.append(HT.TR(HT.TD(geneTable, colspan=3)))
-
- self.dict['body'] = HT.TD(mainTable)
- self.dict['title'] = "QTLminer"
-
- self.cursor.close();
-
- def genGeneTable(self, fd, dispFields, strain1, strain2):
-
- filename = ""
- if self.xls:
- #import pyXLWriter as xl
- filename = "IntAn_Chr%s_%2.6f-%2.6f" % (self.Chr, self.startMb, self.endMb)
- filename += ".xls"
-
- # Create a new Excel workbook
- workbook = xl.Writer(os.path.join(webqtlConfig.TMPDIR, filename))
- worksheet = workbook.add_worksheet()
- titleStyle = workbook.add_format(align = 'left', bold = 0, size=18, border = 1, border_color="gray")
- headingStyle = workbook.add_format(align = 'center', bold = 1, size=13, fg_color = 0x1E, color="white", border = 1, border_color="gray")
-
- ##Write title Info
- worksheet.write([0, 0], "GeneNetwork Interval Analyst Table", titleStyle)
- worksheet.write([1, 0], "%s%s" % (webqtlConfig.PORTADDR, os.path.join(webqtlConfig.CGIDIR, _scriptfile)))
- #
- worksheet.write([2, 0], "Date : %s" % time.strftime("%B %d, %Y", time.gmtime()))
- worksheet.write([3, 0], "Time : %s GMT" % time.strftime("%H:%M ", time.gmtime()))
- worksheet.write([4, 0], "Search by : %s" % fd.remote_ip)
- worksheet.write([5, 0], "view region : Chr %s %2.6f - %2.6f Mb" % (self.Chr, self.startMb, self.endMb))
- nTitleRow = 7
-
- geneTable = HT.TableLite(Class="collap", cellpadding=5)
- headerRow = HT.TR(HT.TD(" ", Class="fs13 fwb ffl b1 cw cbrb", width="1"))
- if self.xls:
- worksheet.write([nTitleRow, 0], "Index", headingStyle)
-
- for ncol, column in enumerate(dispFields):
- if column[0]=='meanA':
- headerRow.append(HT.TD("Expression in" , HT.BR(), self.grAsel, HT.BR(), self.tyAsel, Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- elif column[0]=='meanB':
- headerRow.append(HT.TD("Expression in" , HT.BR(), self.grBsel, HT.BR(), self.tyBsel, Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- elif column[0]=='meanC':
- headerRow.append(HT.TD("Expression in" , HT.BR(), self.grCsel, HT.BR(), self.tyCsel, Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- elif column[0]=='probesetcisA':
- headerRow.append(HT.TD("Cis regulated in" , HT.BR(), self.grAsel, HT.BR(), self.tyAsel, Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- elif column[0]=='probesetcisB':
- headerRow.append(HT.TD("Cis regulated in" , HT.BR(), self.grBsel, HT.BR(), self.tyBsel, Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- elif column[0]=='probesetcisC':
- headerRow.append(HT.TD("Cis regulated in" , HT.BR(), self.grCsel, HT.BR(), self.tyCsel, Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- elif column[0]=='probesetA':
- headerRow.append(HT.TD("Probeset in" , HT.BR(), self.grAsel, HT.BR(), self.tyAsel, Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- elif column[0]=='probesetB':
- headerRow.append(HT.TD("Probeset in" , HT.BR(), self.grBsel, HT.BR(), self.tyBsel, Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- elif column[0]=='probesetC':
- headerRow.append(HT.TD("Probeset in" , HT.BR(), self.grCsel, HT.BR(), self.tyCsel, Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- elif column[0]=='hasexpr':
- headerRow.append(HT.TD("Has expression in" , HT.BR(), self.grAsel, HT.BR(), self.tyAsel, Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- elif column[0]=='hascis':
- headerRow.append(HT.TD("Cis regulated in" , HT.BR(), self.grAsel, HT.BR(), self.tyAsel, Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- elif column[0]=='snpCountmis':
- headerRow.append(HT.TD("nsSNPs" , HT.BR(), "all strains", HT.BR(), " ", Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- elif column[0]=='snpCountmissel':
- headerRow.append(HT.TD("nsSNPs" , HT.BR(), self.str1, " vs", HT.BR(), self.str2, Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
-
-
-
-
- elif len(column) == 1:
- # header
- headerRow.append(HT.TD(columnNames[column[0]][0], Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1,align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- else:
- # header
- headerRow.append(HT.TD(columnNames[column[0]][0], HT.BR(), " (%s)" % speciesFreeze[column[1]],
- Class="fs13 fwb ffl b1 cw cbrb", NOWRAP=1, align="Center"))
- if self.xls:
- colTitle = columnNames[column[0]][0] + " (%s)" % speciesFreeze[column[1]]
- worksheet.write([nTitleRow, ncol+1], colTitle, headingStyle)
- worksheet.set_column([ncol+1, ncol+1], 2*len(colTitle))
- #headerRow.append(HT.TD(columnNames[column[0]][0], HT.BR(),
- # "(%s %s)" % (column[1].title(), speciesFreeze[column[1]]),
- # Class="colorBlue", NOWRAP=1, align="Center"))
- geneTable.append(headerRow)
-
- geneColnul = GeneUtil.loadGenesForQTLminer(self.cursor, self.Chr, self.diffColDefault, self.startMb, self.endMb, species=self.species, databaseA=self.daAsel, databaseB=self.daBsel, databaseC=self.daCsel, str1=self.str1, str2=self.str2)
-
- # scores = []
- # for gIndex, theGO in enumerate(geneCol):
- # keyValue = ""
- # fieldName = 'score'
- # if theGO.has_key(fieldName):
- # keyValue = theGO[fieldName]
- # scores.append(keyValue)
-
- sort_on = "TxStart"
- myrev = False
- if self.sorton == "Score":
- sort_on = "score"
- myrev = True
- geneColeen = [(dict_[sort_on], dict_) for dict_ in geneColnul]
- geneColeen.sort(reverse=myrev)
- geneCol = [dict_ for (key, dict_) in geneColeen]
-
-
-
- for gIndex, theGO in enumerate(geneCol):
- geneRow = HT.TR(HT.TD(gIndex+1, Class="fs12 fwn b1", align="right"))
- if self.xls:
- nTitleRow += 1
- worksheet.write([nTitleRow, 0], gIndex + 1)
-
- for ncol, column in enumerate(dispFields):
- if len(column) == 1 or column[1]== self.species:
- keyValue = ""
- fieldName = column[0]
- curSpecies = self.species
- curGO = theGO
- if theGO.has_key(fieldName):
- keyValue = theGO[fieldName]
- else:
- fieldName , othSpec = column
- curSpecies = othSpec
- subGO = '%sGene' % othSpec
- keyValue = ""
- curGO = theGO[subGO]
- if theGO[subGO].has_key(fieldName):
- keyValue = theGO[subGO][fieldName]
-
- if self.xls:
- worksheet.write([nTitleRow, ncol+1], keyValue)
- geneRow.append(self.formatTD(keyValue, fieldName, curSpecies, curGO, strain1, strain2))
-
- geneTable.append(geneRow)
-
- if self.xls:
- workbook.close()
- return geneTable, filename
-
- def formatTD(self, keyValue, fieldName, Species, theGO, strain1, strain2):
- if keyValue is None:
- keyValue = ""
- if keyValue != "":
- if fieldName in ("exonStarts", "exonEnds"):
- keyValue = string.replace(keyValue, ',', ' ')
- return HT.TD(HT.Span(keyValue, Class="code", Id="green"), width=350, Class="fs12 fwn b1")
- elif fieldName in ("GeneDescription"):
- if keyValue == "---":
- keyValue = ""
- return HT.TD(keyValue, Class="fs12 fwn b1", width=300)
- elif fieldName in ("GeneSymbol"):
- webqtlLink = HT.Href("./%s/%s?cmd=sch&gene=%s&alias=1&species=%s" % (webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE, keyValue, Species),
- HT.Image("/images/webqtl_search.gif", border=0, valign="top"), target="_blank")
- if theGO['GeneID']:
- geneSymbolLink = HT.Href(webqtlConfig.NCBI_LOCUSID % theGO['GeneID'], keyValue, Class="normalsize", target="_blank")
- else:
- geneSymbolLink = keyValue
- return HT.TD(webqtlLink, geneSymbolLink, Class="fs12 fwn b1",NOWRAP=1)
- elif fieldName == 'UnigenID':
- try:
- gurl = HT.Href(webqtlConfig.UNIGEN_ID % tuple(string.split(keyValue,'.')[:2]), keyValue, Class="normalsize", target="_blank")
- except:
- gurl = keyValue
- return HT.TD(gurl, Class="fs12 fwn b1",NOWRAP=1)
- elif fieldName in ("exonCount", "Chromosome"):
- return HT.TD(keyValue, Class="fs12 fwn b1",align="right")
- elif fieldName in ("snpCount"):
- return HT.TD(keyValue, Class="fs12 fwn b1",NOWRAP=1)
- elif fieldName in ("snpCountmis"):
- snpString = HT.Href(url="%s?FormID=SnpBrowserResultPage&submitStatus=1&chr=%s&start=%s&end=%s&domain=Exon&variant=SNP" % (os.path.join(webqtlConfig.CGIDIR, 'main.py'),theGO["Chromosome"], theGO["TxStart"], theGO["TxEnd"] ), text=theGO["snpCountmis"], target="_blank", Class="normalsize")
- return HT.TD(snpString, Class="fs12 fwn b1",NOWRAP=1)
- elif fieldName in ("snpCountmissel"):
- snpString = HT.Href(url="%s?FormID=SnpBrowserResultPage&submitStatus=1&chr=%s&start=%s&end=%s&domain=Exon&variant=SNP&customStrain=1&diffAlleles=1&chosenStrains=%s,%s" % (os.path.join(webqtlConfig.CGIDIR, 'main.py'),theGO["Chromosome"], theGO["TxStart"], theGO["TxEnd"], self.str1, self.str2 ), text=theGO["snpCountmissel"], target="_blank", Class="normalsize")
- return HT.TD(snpString, Class="fs12 fwn b1",NOWRAP=1)
-
-
-# if keyValue:
-# snpString = HT.Href(url="%s?chr=%s&start=%s&end=%s&geneName=%s&s1=%d&s2=%d" % (os.path.join(webqtlConfig.CGIDIR, 'snpBrowser.py'), theGO["Chromosome"], theGO["TxStart"], theGO["TxEnd"], theGO["GeneSymbol"], self.diffColDefault[0], self.diffColDefault[1]), text=theGO["snpCount"], target="_blank", Class="normalsize")
-# else:
-# snpString = keyValue
-# return HT.TD(snpString, Class="fs12 fwn b1",align="right")
- elif fieldName in ("snpDensity", "GeneLength"):
- if keyValue: keyValue = "%2.3f" % keyValue
- else: keyValue = ""
- return HT.TD(keyValue, Class="fs12 fwn b1",align="right")
- elif fieldName in ("TxStart", "TxEnd"):
- return HT.TD("%2.6f" % keyValue, Class="fs12 fwn b1",align="right")
- elif fieldName in ("score"):
- return HT.TD("%1d" % keyValue, Class="fs12 fwn b1",align="right")
- elif fieldName in ("pathways", "pathwaynames", "goterms"):
- html = HT.Paragraph(Class="fs12 fwn b1")
- for kk in keyValue:
- html.append(kk,HT.BR())
- return HT.TD(html, Class="fs12 fwn b1",align="right",NOWRAP=1)
- elif fieldName in ("probesetA", "probesetB", "probesetC"):
- html = HT.Paragraph(Class="fs12 fwn b1")
- for kk in keyValue:
- html.append(kk,HT.BR())
- return HT.TD(html, Class="fs12 fwn b1",align="right")
- elif fieldName in ("probesetsymbolA"):
- html = HT.Paragraph(Class="fs12 fwn b1")
- for kk in keyValue:
- html.append(kk,HT.BR())
- return HT.TD(html, Class="fs12 fwn b1",align="right")
- elif fieldName in ("meanA", "meanB", "meanC"):
- html = HT.Paragraph(Class="fs12 fwn b1")
- for kk in keyValue:
- html.append(str(round(kk,1)),HT.BR())
- return HT.TD(html, Class="fs12 fwn b1",align="right")
- elif fieldName in ("hassnp", "hasindel", "hasexpr","hascis"):
- html = HT.Paragraph(Class="fs12 fwn b1")
- for kk in keyValue:
- html.append(kk,HT.BR())
- return HT.TD(html, Class="fs12 fwn b1",align="right")
- elif fieldName in ("newlrsA", "newlrsB", "newlrsC"):
- html = HT.Paragraph(Class="fs12 fwn b1")
- for kk in keyValue:
- html.append(str(round(kk,1)),HT.BR())
- return HT.TD(html, Class="fs12 fwn b1",align="right")
- elif fieldName in ("probesetcisA", "probesetcisB", "probesetcisC"):
- html = HT.Paragraph(Class="fs12 fwn b1")
- for kk in keyValue:
- html.append(kk,HT.BR())
-# if kk==0:
-# html.append('no',HT.BR())
-# if kk==1:
-# html.append('yes',HT.BR())
- return HT.TD(html, Class="fs12 fwn b1",align="right")
- else:
- return HT.TD(keyValue, Class="fs12 fwn b1",NOWRAP=1)
- else:
- return HT.TD(keyValue, Class="fs12 fwn b1",NOWRAP=1,align="right")
-
-# def getStrainNameList(self, strain_data):
-# return strain_data[1:]
- def getStrainNamePair(self):
- strainNamePair=[]
- query ='SELECT * FROM SnpPattern limit 1'
- self.cursor.execute(query)
- num_fields = len(self.cursor.description)
- field_names = [i[0] for i in self.cursor.description]
- strainsNameList=field_names[1:]
- for index, name in enumerate(strainsNameList):
- strainNamePair.append((name,name))
- return strainNamePair
-
- def genControlForm(self, fd):
- ##desc GeneList
- self.cursor.execute("Desc GeneList")
- GeneListFields = self.cursor.fetchall()
- GeneListFields = map(lambda X: X[0], GeneListFields)
-
- #group columns by category--used for creating the dropdown list of possible columns
- categories = {}
- for item in columnNames.keys():
- category = columnNames[item]
- if category[-1] not in categories.keys():
- categories[category[-1]] = [item ]
- else:
- categories[category[-1]] = categories[category[-1]]+[item]
-
- ##List All Species in the Gene Table
- speciesDict = {}
- self.cursor.execute("select Species.Name, GeneList.SpeciesId from Species, GeneList where \
- GeneList.SpeciesId = Species.Id group by GeneList.SpeciesId order by Species.Id")
- results = self.cursor.fetchall()
- speciesField = categories.pop('species', [])
- categoriesOrder = ['gene', 'protein']
- for item in results:
- specName, specId = item
- categoriesOrder.append(specName)
- speciesDict[specName] = specId
- AppliedField = []
- for item2 in speciesField:
- if item2 in GeneListFields:
- self.cursor.execute("select %s from GeneList where SpeciesId = %d and %s is not NULL limit 1 " % (item2, specId, item2))
- columnApply = self.cursor.fetchone()
- if not columnApply:
- continue
- elif specName != 'mouse' and item2 in ('snpCount', 'snpDensity'):
- continue
- else:
- pass
- AppliedField.append(item2)
- categories[specName] = AppliedField
-
- categoriesOrder += ['misc']
-
- s1_data = self.getStrainNamePair()
- self.allStrainNames = s1_data[1:]
-
-
-
- ############################################################
- ## Create the list of possible columns for the dropdown list
- ############################################################
- allColumnsList = HT.Select(name="allColumns", Class="snpBrowserDropBox")#onChange="addToList(this.form.allColumns.options[this.form.allColumns.selectedIndex].text, this.form.allColumns.options[this.form.allColumns.selectedIndex].value, this.form.columns)")
-
- for category in categoriesOrder:
- allFields = categories[category]
- if allFields:
- geneOpt = HT.Optgroup(label=category.title())
- for item in allFields:
- if category in speciesFreeze.keys():
- geneOpt.append(("%s (%s %s)" % (columnNames[item][1], category.title(), speciesFreeze[category]),
- "%s__%s" % (item, speciesFreeze[category])))
- else:
- geneOpt.append((columnNames[item][1], item))
- geneOpt.sort()
- allColumnsList.append(geneOpt)
-
- allColumnsList2 = HT.Select(name="allColumns2", Class="snpBrowserDropBox")
- for item in self.allStrainNames:
- allColumnsList2.append(item)
-
- ######################################
- ## Create the list of selected columns
- ######################################
-
- #cols contains the value of all the selected columns
- submitCols = cols = fd.formdata.getvalue("columns", "default")
-
- if cols == "default":
- if self.species=="mouse": #these are the same columns that are shown on intervalPage.py
- cols = ['GeneSymbol', 'GeneDescription', 'goterms', 'pathwaynames', 'Chromosome', 'TxStart', 'snpCountmis', 'snpCountmissel', 'meanA', 'meanB', 'meanC', 'probesetcisA','probesetcisB','probesetcisC', 'probesetA','probesetB','probesetC', 'indelCountBXD','hassnp','hasindel','hasexpr','hascis','score']
- elif self.species=="rat":
- cols = ['GeneSymbol', 'GeneDescription', 'Chromosome', 'TxStart', 'GeneLength', 'Strand', 'GeneID', 'UnigenID']
- else:
- #should not happen
- cols = []
- else:
- if type(cols)==type(""):
- cols = [cols]
-
- colsLst = []
- dispFields = []
- for column in cols:
- if submitCols == "default" and column not in ('GeneSymbol') and (column in GeneListFields or column in speciesField):
- colsLst.append(("%s (%s %s)" % (columnNames[column][1], self.species.title(), speciesFreeze[self.species]),
- "%s__%s" % (column, speciesFreeze[self.species])))
- dispFields.append([column, self.species])
- else:
- column2 = column.split("__")
- if len(column2) == 1:
- colsLst.append((columnNames[column2[0]][1], column))
- dispFields.append([column])
- else:
- thisSpecies = speciesFreeze[column2[1]]
- colsLst.append(("%s (%s %s)" % (columnNames[column2[0]][1], thisSpecies.title(), column2[1]),
- column))
- dispFields.append((column2[0], thisSpecies))
- selectedColumnsList = HT.Select(name="columns", Class="snpBrowserSelectBox", multiple="true", data=colsLst, size=6)
-
-
-
- ######### now for the strains!!!!!!
-
- #cols contains the value of all the selected columns
- submitCols2 = cols2 = fd.formdata.getvalue("columns2", "default")
-
- if cols2 == "default":
- if self.species=="mouse": #these are the same columns that are shown on intervalPage.py
- cols2 = ['C57BL/6J', 'DBA/2J',]
- else:
- #should not happen
- cols2 = []
- else:
- if type(cols2)==type(""):
- cols2 = [cols2]
-
- colsLst2 = []
- dispFields2 = []
- for column2 in cols2:
-# if submitCols2 == "default" and (column in GeneListFields or column in speciesField):
-# colsLst2.append(("%s (%s %s)" % (columnNames[column][1], self.species.title(), speciesFreeze[self.species]),
-# "%s__%s" % (column, speciesFreeze[self.species])))
-# dispFields.append([column, self.species])
-# else:
-# column2 = column.split("__")
-# if len(column2) == 1:
- colsLst2.append((column2, column2))
- dispFields2.append([column2])
- selectedColumnsList2 = HT.Select(name="columns2", Class="snpBrowserSelectBox", multiple="true", data=colsLst2, size=6)
-
- ######### now for the sorton
-
- #cols contains the value of all the selected columns
- submitCols3 = cols3 = fd.formdata.getvalue("columns3", "default")
-
- if cols3 == "default":
- if self.species=="mouse": #these are the same columns that are shown on intervalPage.py
- cols3 = ['Position', 'Score',]
- else:
- #should not happen
- cols3 = []
- else:
- if type(cols3)==type(""):
- cols3 = [cols3]
-
- colsLst3 = []
- dispFields3 = []
- for column3 in cols3:
- colsLst3.append((column3, column3))
- dispFields3.append([column3])
- selectedColumnsList3 = HT.Select(name="columns3", Class="snpBrowserSelectBox", multiple="true", data=colsLst3, size=6)
-
-
-
-
-
- ##########################
- ## Create the columns form
- ##########################
- columnsForm = HT.Form(name="columnsForm", submit=HT.Input(type='hidden'), cgi=os.path.join(webqtlConfig.CGIDIR, _scriptfile), enctype="multipart/form-data")
- columnsForm.append(HT.Input(type="hidden", name="fromdatabase", value= fd.formdata.getvalue("fromdatabase", "unknown")))
- columnsForm.append(HT.Input(type="hidden", name="species", value=self.species))
- columnsForm.append(HT.Input(type="hidden", name="submitter", value="empty"))
- if self.diffCol:
- columnsForm.append(HT.Input(type="hidden", name="s1", value=self.diffCol[0]))
- columnsForm.append(HT.Input(type="hidden", name="s2", value=self.diffCol[1]))
- startBox = HT.Input(type="text", name="startMb", value=self.startMb, size=10)
- endBox = HT.Input(type="text", name="endMb", value=self.endMb, size=10)
- addButton = HT.Input(type="button", name="add", value="Add", Class="button", onClick="addToList(this.form.allColumns.options[this.form.allColumns.selectedIndex].text, this.form.allColumns.options[this.form.allColumns.selectedIndex].value, this.form.columns)")
-# addButton2 = HT.Input(type="button", name="add", value="Add", Class="button", onClick="addToList(this.form.allColumns2.options[this.form.allColumns2.selectedIndex].text, this.form.allColumns2.options[this.form.allColumns2.selectedIndex].value, this.form.columns2)")
- removeButton = HT.Input(type="button", name="remove", value="Remove", Class="button", onClick="removeFromList(this.form.columns.selectedIndex, this.form.columns)")
-# removeButton2 = HT.Input(type="button", name="remove", value="Remove", Class="button", onClick="removeFromList(this.form.columns2.selectedIndex, this.form.columns2)")
- upButton = HT.Input(type="button", name="up", value="Up", Class="button", onClick="swapOptions(this.form.columns.selectedIndex, this.form.columns.selectedIndex-1, this.form.columns)")
- downButton = HT.Input(type="button", name="down", value="Down", Class="button", onClick="swapOptions(this.form.columns.selectedIndex, this.form.columns.selectedIndex+1, this.form.columns)")
- clearButton = HT.Input(type="button", name="clear", value="Clear", Class="button", onClick="deleteAllElements(this.form.columns)")
- submitButton = HT.Input(type="submit", value="Analyze QTL interval", Class="button", onClick="Javascript:this.form.submitter.value='refresh';selectAllElements(this.form.columns)")
-
-
- selectChrBox = HT.Select(name="chromosome")
- self.cursor.execute("""
- Select
- Chr_Length.Name, Length from Chr_Length, Species
- where
- Chr_Length.SpeciesId = Species.Id AND
- Species.Name = '%s'
- Order by
- Chr_Length.OrderId
- """ % self.species)
-
- results = self.cursor.fetchall()
- for chrInfo in results:
- selectChrBox.append((chrInfo[0], chrInfo[0]))
- selectChrBox.selected.append(self.Chr)
-
-############################################ 2 strain boxes
-
- selectstr1 = HT.Select(name="str1")
- for item in self.allStrainNames:
- selectstr1.append(item[0])
- selectstr1.selected.append(self.str1)
-
- selectstr2 = HT.Select(name="str2")
- for item in self.allStrainNames:
- selectstr2.append(item[0])
- selectstr2.selected.append(self.str2)
-
-############################################ select sort on
-
- selectsorton = HT.Select(name="sorton")
- selectsorton.append('Position')
- selectsorton.append('Score')
- selectsorton.selected.append('Position')
-
-
-############################################
- selectSpeciesBoxA = HT.Select(name="myspeciesA",onChange="Javascript:this.form.submitter.value='s2';submit();")
- for speciesInfo in self.spA:
- name = ''
- if speciesInfo[0]=='mouse':
- name='Mouse'
- elif speciesInfo[0]=='rat':
- name='Rat'
- elif speciesInfo[0]=='arabidopsis':
- name='Arabidopsis thaliana'
- elif speciesInfo[0]=='human':
- name='Human'
- elif speciesInfo[0]=='barley':
- name='Barley'
- elif speciesInfo[0]=='drosophila':
- name='Drosophila'
- elif speciesInfo[0]=='macaque monkey':
- name='Macaque Monkey'
-
- selectSpeciesBoxA.append((name, speciesInfo[0]))
- selectSpeciesBoxA.selected.append(self.spAsel)
-
- selectGroupBoxA = HT.Select(name="groupA",onChange="Javascript:this.form.submitter.value='a2';submit();")
- for groupInfo in self.grA:
- selectGroupBoxA.append((groupInfo[1], groupInfo[0]))
- selectGroupBoxA.selected.append(self.grAsel)
-
- selectTypeBoxA = HT.Select(name="typeA",onChange="Javascript:this.form.submitter.value='a3';submit();")
- for typeInfo in self.tyA:
- selectTypeBoxA.append((typeInfo[0] + ' mRNA', typeInfo[0]))
- selectTypeBoxA.selected.append(self.tyAsel)
-
- selectDatabaseBoxA = HT.Select(name="databaseA",onChange="Javascript:this.form.submitter.value='a4';submit();")
- for databaseInfo in self.daA:
- selectDatabaseBoxA.append((databaseInfo[1], databaseInfo[0]))
- selectDatabaseBoxA.selected.append(self.daAsel)
-
-#############################
-############################################
- selectSpeciesBoxB = HT.Select(name="myspeciesB",onChange="Javascript:this.form.submitter.value='b1';submit();")
- for speciesInfo in self.spB:
- name = ''
- if speciesInfo[0]=='mouse':
- name='Mouse'
- elif speciesInfo[0]=='rat':
- name='Rat'
- elif speciesInfo[0]=='arabidopsis':
- name='Arabidopsis thaliana'
- elif speciesInfo[0]=='human':
- name='Human'
- elif speciesInfo[0]=='barley':
- name='Barley'
- elif speciesInfo[0]=='drosophila':
- name='Drosophila'
- elif speciesInfo[0]=='macaque monkey':
- name='Macaque Monkey'
-
- selectSpeciesBoxB.append((name, speciesInfo[0]))
- selectSpeciesBoxB.selected.append(self.spBsel)
-
- selectGroupBoxB = HT.Select(name="groupB",onChange="Javascript:this.form.submitter.value='b2';submit();")
- for groupInfo in self.grB:
- selectGroupBoxB.append((groupInfo[1], groupInfo[0]))
- selectGroupBoxB.selected.append(self.grBsel)
-
- selectTypeBoxB = HT.Select(name="typeB",onChange="Javascript:this.form.submitter.value='b3';submit();")
- for typeInfo in self.tyB:
- selectTypeBoxB.append((typeInfo[0] + ' mRNA', typeInfo[0]))
- selectTypeBoxB.selected.append(self.tyBsel)
-
- selectDatabaseBoxB = HT.Select(name="databaseB",onChange="Javascript:this.form.submitter.value='b4';submit();")
- for databaseInfo in self.daB:
- selectDatabaseBoxB.append((databaseInfo[1], databaseInfo[0]))
- selectDatabaseBoxB.selected.append(self.daBsel)
-
-############################################
-#############################
-############################################
- selectSpeciesBoxC = HT.Select(name="myspeciesC",onChange="Javascript:this.form.submitter.value='c1';submit();")
- for speciesInfo in self.spC:
- name = ''
- if speciesInfo[0]=='mouse':
- name='Mouse'
- elif speciesInfo[0]=='rat':
- name='Rat'
- elif speciesInfo[0]=='arabidopsis':
- name='Arabidopsis thaliana'
- elif speciesInfo[0]=='human':
- name='Human'
- elif speciesInfo[0]=='barley':
- name='Barley'
- elif speciesInfo[0]=='drosophila':
- name='Drosophila'
- elif speciesInfo[0]=='macaque monkey':
- name='Macaque Monkey'
-
- selectSpeciesBoxC.append((name, speciesInfo[0]))
- selectSpeciesBoxC.selected.append(self.spCsel)
-
- selectGroupBoxC = HT.Select(name="groupC",onChange="Javascript:this.form.submitter.value='c2';submit();")
- for groupInfo in self.grC:
- selectGroupBoxC.append((groupInfo[1], groupInfo[0]))
- selectGroupBoxC.selected.append(self.grCsel)
-
- selectTypeBoxC = HT.Select(name="typeC",onChange="Javascript:this.form.submitter.value='c3';submit();")
- for typeInfo in self.tyC:
- selectTypeBoxC.append((typeInfo[0] + ' mRNA', typeInfo[0]))
- selectTypeBoxC.selected.append(self.tyCsel)
-
- selectDatabaseBoxC = HT.Select(name="databaseC",onChange="Javascript:this.form.submitter.value='c4';submit();")
- for databaseInfo in self.daC:
- selectDatabaseBoxC.append((databaseInfo[1], databaseInfo[0]))
- selectDatabaseBoxC.selected.append(self.daCsel)
-
-############################################
-
-
-
-
-#############################
-
-
-
-
- innerColumnsTable = HT.TableLite(border=0, Class="collap", cellpadding = 2)
- innerColumnsTable.append(HT.TR(HT.TD(selectedColumnsList)),
- HT.TR(HT.TD(clearButton, removeButton, upButton, downButton)))
-# innerColumnsTable2 = HT.TableLite(border=0, Class="collap", cellpadding = 2)
-# innerColumnsTable2.append(HT.TR(HT.TD(selectedColumnsList2)),
-# HT.TR(HT.TD(removeButton2)))
- columnsTable = HT.TableLite(border=0, cellpadding=2, cellspacing=0)
- columnsTable.append(
- HT.TR(HT.TD(HT.Font("&nbsp;")),
- HT.TD(HT.Strong("Select the QTL interval"))),
- HT.TR(HT.TD(HT.Font("Chr: ", size=-1)),
- HT.TD(selectChrBox)),
- HT.TR(HT.TD(HT.Font("View: ", size=-1)),
- HT.TD(startBox, HT.Font("Mb to ", size=-1), endBox, HT.Font("Mb", size=-1))),
- HT.TR(HT.TD(HT.Font("&nbsp;", size=-1)),
- HT.TD("&nbsp;")),
- HT.TR(HT.TD(HT.Font("&nbsp;")),
- HT.TD(HT.Strong("Select two mouse strains for inclusion of nsSNP count"))),
- HT.TR(HT.TD(HT.Font("Strains: ", size=-1)),
- HT.TD(selectstr1,selectstr2)),
- HT.TR(HT.TD(HT.Font("&nbsp;", size=-1)),
- HT.TD("&nbsp;")),
- HT.TR(HT.TD(HT.Font("&nbsp;")),
- HT.TD(HT.Strong("Select 3 datasets for inclusion of expression and cis-activity data"))),
- HT.TR(HT.TD(HT.Font("&nbsp;", size=-1)),
- HT.TD("&nbsp;")),
- HT.TR(HT.TD("&nbsp;"),
- HT.TD(HT.Font("Dataset 1", size=-1))),
- HT.TR(HT.TD(HT.Font("Species: ", size=-1)),
- HT.TD(selectSpeciesBoxA)),
- HT.TR(HT.TD(HT.Font("Group: ", size=-1)),
- HT.TD(selectGroupBoxA)),
- HT.TR(HT.TD(HT.Font("Type: ", size=-1)),
- HT.TD(selectTypeBoxA)),
- HT.TR(HT.TD(HT.Font("Database: ", size=-1)),
- HT.TD(selectDatabaseBoxA)),
- HT.TR(HT.TD(HT.Font("&nbsp;", size=-1)),
- HT.TD("&nbsp;")),
- HT.TR(HT.TD("&nbsp;"),
- HT.TD(HT.Font("Dataset 2", size=-1))),
- HT.TR(HT.TD(HT.Font("Species: ", size=-1)),
- HT.TD(selectSpeciesBoxB)),
- HT.TR(HT.TD(HT.Font("Group: ", size=-1)),
- HT.TD(selectGroupBoxB)),
- HT.TR(HT.TD(HT.Font("Type: ", size=-1)),
- HT.TD(selectTypeBoxB)),
- HT.TR(HT.TD(HT.Font("Database: ", size=-1)),
- HT.TD(selectDatabaseBoxB)),
- HT.TR(HT.TD(HT.Font("&nbsp;", size=-1)),
- HT.TD("&nbsp;")),
- HT.TR(HT.TD("&nbsp;"),
- HT.TD(HT.Font("Dataset 3", size=-1))),
- HT.TR(HT.TD(HT.Font("Species: ", size=-1)),
- HT.TD(selectSpeciesBoxC)),
- HT.TR(HT.TD(HT.Font("Group: ", size=-1)),
- HT.TD(selectGroupBoxC)),
- HT.TR(HT.TD(HT.Font("Type: ", size=-1)),
- HT.TD(selectTypeBoxC)),
- HT.TR(HT.TD(HT.Font("Database: ", size=-1)),
- HT.TD(selectDatabaseBoxC)),
-# HT.TR(HT.TD(""),
-# HT.TD(innerColumnsTable2)),
- HT.TR(HT.TD(HT.Font("&nbsp;", size=-1)),
- HT.TD("&nbsp;")),
- HT.TR(HT.TD(HT.Font("&nbsp;")),
- HT.TD(HT.Strong("Optionally, choose additional data to display"))),
- HT.TR(HT.TD(HT.Font("Show: ", size=-1)),
- HT.TD(allColumnsList, addButton)),
- HT.TR(HT.TD(HT.Font("Selected:",size=-1)),
- HT.TD(innerColumnsTable)),
- HT.TR(HT.TD(HT.Font("&nbsp;", size=-1)),
- HT.TD("&nbsp;")),
- HT.TR(HT.TD(HT.Font("Sort by: ", size=-1)),
- HT.TD(selectsorton)),
- HT.TR(HT.TD(HT.Font("&nbsp;", size=-1)),
- HT.TD("&nbsp;")),
- HT.TR(HT.TD(HT.Font("&nbsp;", size=-1)),
- HT.TD(submitButton)),
-
- )
- columnsForm.append(columnsTable)
- #columnsForm.append(HT.Input(type="hidden", name="sort", value=diffCol),
- # HT.Input(type="hidden", name="identification", value=identification),
- # HT.Input(type="hidden", name="traitInfo", value=traitInfo))
-
- return columnsForm, dispFields, dispFields2
diff --git a/web/webqtl/qtlminer/__init__.py b/web/webqtl/qtlminer/__init__.py
deleted file mode 100755
index e69de29b..00000000
--- a/web/webqtl/qtlminer/__init__.py
+++ /dev/null