diff options
Diffstat (limited to 'web/webqtl/qtlminer')
-rwxr-xr-x | web/webqtl/qtlminer/GeneUtil.py | 658 | ||||
-rwxr-xr-x | web/webqtl/qtlminer/QTLminer.py | 1237 | ||||
-rwxr-xr-x | web/webqtl/qtlminer/__init__.py | 0 |
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(" ", 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(" ")), - 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(" ", size=-1)), - HT.TD(" ")), - HT.TR(HT.TD(HT.Font(" ")), - 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(" ", size=-1)), - HT.TD(" ")), - HT.TR(HT.TD(HT.Font(" ")), - HT.TD(HT.Strong("Select 3 datasets for inclusion of expression and cis-activity data"))), - HT.TR(HT.TD(HT.Font(" ", size=-1)), - HT.TD(" ")), - HT.TR(HT.TD(" "), - 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(" ", size=-1)), - HT.TD(" ")), - HT.TR(HT.TD(" "), - 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(" ", size=-1)), - HT.TD(" ")), - HT.TR(HT.TD(" "), - 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(" ", size=-1)), - HT.TD(" ")), - HT.TR(HT.TD(HT.Font(" ")), - 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(" ", size=-1)), - HT.TD(" ")), - HT.TR(HT.TD(HT.Font("Sort by: ", size=-1)), - HT.TD(selectsorton)), - HT.TR(HT.TD(HT.Font(" ", size=-1)), - HT.TD(" ")), - HT.TR(HT.TD(HT.Font(" ", 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 |