aboutsummaryrefslogtreecommitdiff
path: root/web/webqtl/showTrait/ShowProbeInfoPage.py
diff options
context:
space:
mode:
Diffstat (limited to 'web/webqtl/showTrait/ShowProbeInfoPage.py')
-rwxr-xr-xweb/webqtl/showTrait/ShowProbeInfoPage.py486
1 files changed, 0 insertions, 486 deletions
diff --git a/web/webqtl/showTrait/ShowProbeInfoPage.py b/web/webqtl/showTrait/ShowProbeInfoPage.py
deleted file mode 100755
index 989238b4..00000000
--- a/web/webqtl/showTrait/ShowProbeInfoPage.py
+++ /dev/null
@@ -1,486 +0,0 @@
-# Copyright (C) University of Tennessee Health Science Center, Memphis, TN.
-#
-# This program is free software: you can redistribute it and/or modify it
-# under the terms of the GNU Affero General Public License
-# as published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# See the GNU Affero General Public License for more details.
-#
-# This program is available from Source Forge: at GeneNetwork Project
-# (sourceforge.net/projects/genenetwork/).
-#
-# Contact Drs. Robert W. Williams and Xiaodong Zhou (2010)
-# at rwilliams@uthsc.edu and xzhou15@uthsc.edu
-#
-#
-#
-# This module is used by GeneNetwork project (www.genenetwork.org)
-#
-# Created by GeneNetwork Core Team 2010/08/10
-#
-# Last updated by GeneNetwork Core Team 2010/10/20
-
-import string
-import sys,os
-
-import cPickle
-
-import reaper
-from htmlgen import HTMLgen2 as HT
-
-from base import webqtlConfig
-from utility import webqtlUtil
-from dbFunction import webqtlDatabaseFunction
-from base.templatePage import templatePage
-from base.webqtlDataset import webqtlDataset
-from base.webqtlTrait import webqtlTrait
-from utility.THCell import THCell
-from utility.TDCell import TDCell
-
-#########################################
-# Probe Infomation Page
-#########################################
-
-class ShowProbeInfoPage(templatePage):
-
- def __init__(self, fd):
-
- templatePage.__init__(self, fd)
-
- if not self.openMysql():
- return
-
- fd.readGenotype()
- TD_LR = HT.TD(height=200,width="100%",bgColor='#eeeeee')
- self.database = fd.formdata.getfirst('database')
- self.ProbeSetID = fd.formdata.getfirst('ProbeSetID')
- self.CellID = fd.formdata.getfirst('CellID')
-
- self.db = webqtlDataset(self.database, self.cursor)
- thisTrait = webqtlTrait(db= self.db, cursor=self.cursor, name=self.ProbeSetID) #, cellid=CellID)
- thisTrait.retrieveInfo()
-
- try:
- self.cursor.execute('SELECT ProbeFreeze.Name FROM ProbeFreeze,ProbeSetFreeze WHERE ProbeFreeze.Id = ProbeSetFreeze.ProbeFreezeId and ProbeSetFreeze.Name = "%s"' % self.db.name)
- self.probeDatabase = self.cursor.fetchall()[0][0]
- self.probeInfoDatabase = 'Probe'
- except:
- heading = 'Probe Information'
- intro = ['Trying to retrieve the probe information for ProbeSet ',HT.Span('%s' % self.ProbeSetID, Class="fwb cdg"),' in Database ',HT.Href(text='%s' % self.db.fullname,url=webqtlConfig.infopagehref % self.database)]
- detail = ['The information you just requested is not available at this time.']
- self.error(heading=heading,intro=intro,detail=detail)
- return
-
-
- form = HT.Form(cgi= os.path.join(webqtlConfig.CGIDIR, webqtlConfig.SCRIPTFILE), enctype='multipart/form-data', name='showDatabase', submit=HT.Input(type='hidden'))
- hddn = {'FormID':'showDatabase','ProbeSetID':'_','database':'_','CellID':'_','RISet':fd.RISet, 'incparentsf1':'on'}
- if fd.RISet == 'BXD':
- hddn['parentsf1']='ON'
-
- for key in hddn.keys():
- form.append(HT.Input(name=key, value=hddn[key], type='hidden'))
-
-
- #Buttons on search page
- linkinfo ="%s/probeInfo.html" % webqtlConfig.PORTADDR
- mintmap = ""
- probeinfo = HT.Input(type='button' ,name='mintmap',value='Info', onClick="openNewWin('%s');" % linkinfo, Class="button")
- cormatrix = HT.Href(url="#redirect", onClick="databaseFunc(document.getElementsByName('showDatabase')[0], 'corMatrix');")
- cormatrix_img = HT.Image("/images/correlation_matrix1_final.jpg", alt="Correlation Matrix and PCA", title="Correlation Matrix and PCA", style="border:none;")
- cormatrix.append(cormatrix_img)
- heatmap = HT.Href(url="#redirect", onClick="databaseFunc(document.getElementsByName('showDatabase')[0], 'heatmap');")
- heatmap_img = HT.Image("/images/heatmap2_final.jpg", name='mintmap', alt="QTL Heat Map and Clustering", title="QTL Heatmap and Clustering", style="border:none;")
- heatmap.append(heatmap_img)
- if self.ProbeSetID[-2:] in ('_A', '_B'):
- thisProbeSetID = self.ProbeSetID[:-2]
- else:
- thisProbeSetID = self.ProbeSetID
- thisurl = 'http://www.ensembl.org/Mus_musculus/featureview?type=AffyProbe&id=%s' % thisProbeSetID
- verifyButton = HT.Input(type="button",value="Verify Ensembl",onClick= "openNewWin('%s')" % thisurl, Class="button")
-
- addselect = HT.Input(type='button' ,name='addselect',value='Add to Collection', onClick="addRmvSelection('%s', this.form, 'addToSelection');" % fd.RISet,Class="button")
- selectall = HT.Input(type='button' ,name='selectall',value='Select All', onClick="checkAll(this.form);",Class="button")
- selectpm = HT.Input(type='button' ,name='selectall',value='Select PM', onClick="checkPM(this.form);",Class="button")
- selectmm = HT.Input(type='button' ,name='selectall',value='Select MM', onClick="checkMM(this.form);",Class="button")
- selectinvert = HT.Input(type='button' ,name='selectinvert',value='Select Invert', onClick="checkInvert(this.form);",Class="button")
- reset = HT.Input(type='reset',name='',value='Select None',Class="button")
- chrMenu = HT.Input(type='hidden',name='chromosomes',value='all')
- probedata = HT.Input(type='hidden',name='probedata',value='all')
-
- url_rudi_track = self.getProbeTrackURL(self.probeDatabase, self.ProbeSetID)
- if url_rudi_track:
- rudi_track = HT.Input(type='button', name='ruditrack', value='Probe Track', onClick="openNewWin('%s')"%url_rudi_track, Class="button")
- else: rudi_track = None
-
- pinfopage = "/probeInfo.html"
-
- #updated by NL: 07-22-2011 get chosenStrains
- _f1, _f12, _mat, _pat = webqtlUtil.ParInfo[fd.RISet]
- chosenStrains="%s,%s"%(_mat,_pat)
- tblobj = {}
- tblobj['header']=[]
-
- tblobj['header'].append([
- THCell(HT.TD("", Class="cbrb cw fwb fs13 b1", rowspan=2,nowrap='ON'), sort=0),
- THCell(HT.TD(HT.Href(target="_PROBEINFO", url=pinfopage+"#probe", text=HT.Span('Probe', Class="cw fwb fs13")), HT.Sup(HT.Italic('1')), Class="cbrb cw fwb fs13 b1",align='center',rowspan=2,nowrap='ON'), text="probe", idx=1),
- THCell(HT.TD(HT.Href(text=HT.Span('Sequence', Class="cw fwb fs13"), target="_PROBEINFO", url=pinfopage+"#Sequence"),HT.Sup(HT.Italic('2')), Class="cbrb cw fwb fs13 b1", align='center',rowspan=2,nowrap='ON'), text="seq", idx=2),
- THCell(HT.TD(HT.Href(text=HT.Span('bl2seq', Class="cw fwb fs13"), target="_PROBEINFO", url=pinfopage+"#bl2seq"),HT.Sup(HT.Italic('3')), Class="cbrb cw fwb fs13 b1", align='center',rowspan=2,nowrap='ON'), sort=0),
- THCell(HT.TD(HT.Href(text=HT.Span('Exons', Class="cw fwb fs13"), target="_PROBEINFO", url=pinfopage+"#Exon"),HT.Sup(HT.Italic('4')), Class="cbrb cw fwb fs13 b1",align='center',rowspan=2,nowrap='ON'), sort=0),
- THCell(HT.TD(HT.Href(text=HT.Span('Tm °C', Class="cw fwb fs13"), target="_PROBEINFO", url=pinfopage+"#Tm"),HT.Sup(HT.Italic('5')), Class="cbrb cw fwb fs13 b1",align='center',rowspan=2,nowrap='ON'), text="tm", idx=5),
- THCell(HT.TD(HT.Href(text=HT.Span('Stacking Energy K', HT.Sub('B'),'T', Class="cw fwb fs13"), target="_PROBEINFO", url=pinfopage+"#KBT"),HT.Sup(HT.Italic('6')), Class="cbrb cw fwb fs13 b1",align='center',colspan=2,NOWRAP="yes",nowrap='ON'), sort=0),
- THCell(HT.TD(HT.Href(text=HT.Span('Mean', Class="cw fwb fs13"), target="_PROBEINFO", url=pinfopage+"#Mean"),HT.Sup(HT.Italic('7')), Class="cbrb cw fwb fs13 b1",align='center',rowspan=2,nowrap='ON'), text="mean", idx=8),
- THCell(HT.TD(HT.Href(text=HT.Span('Stdev', Class="cw fwb fs13"), target="_PROBEINFO", url=pinfopage+"#Stdev"),HT.Sup(HT.Italic('8')), Class="cbrb cw fwb fs13 b1",align='center',rowspan=2,nowrap='ON'), text="std", idx=9),
- THCell(HT.TD(HT.Href(text=HT.Span('Probe h2', Class="cw fwb fs13"), target="_PROBEINFO", url=pinfopage+"#h2"),HT.Sup(HT.Italic('9')), Class="cbrb cw fwb fs13 b1",align='center',rowspan=2,NOWRAP="yes"), text="h2", idx=10),
- THCell(HT.TD(HT.Href(text=HT.Span('Probe Location', Class="cw fwb fs13"), target="_PROBEINFO", url=pinfopage+"#location"), HT.Sup(HT.Italic('10')),Class="cbrb cw fwb fs13 b1",align='center',colspan=3)),
- THCell(HT.TD(HT.Href(text=HT.Span('SNPs', HT.BR(), '(Across all strains)', Class="cw fwb fs13"), target="_PROBEINFO", url=pinfopage+"#snps"), HT.Sup(HT.Italic('11')),Class="cbrb cw fwb fs13 b1",align='center',rowspan=2,NOWRAP="yes")),
- THCell(HT.TD(HT.Href(text=HT.Span('SNPs', HT.BR(),'(Different alleles only between %s and %s)'%(_mat,_pat), Class="cw fwb fs13"), target="_PROBEINFO", url=pinfopage+"#snps"), HT.Sup(HT.Italic('11')),Class="cbrb cw fwb fs13 b1",align='center',rowspan=2,NOWRAP="yes"))
-
- ])
-
- tblobj['header'].append([
- THCell(HT.TD(HT.Span('GSB', Class="cw fwb fs13"),align='center', Class="cbrb ffl fwb fs13 b1",), text="gsb", idx=6),
- THCell(HT.TD(HT.Span('NSB', Class="cw fwb fs13"),align='center', Class="cbrb ffl fwb fs13 b1",), text="nsb", idx=7),
- THCell(HT.TD(HT.Span('Chr', Class="cw fwb fs13"), align='center', Class="cbrb ffl2 fwb fs13 b1",)),
- THCell(HT.TD(HT.Span('Start', Class="cw fwb fs13"),align='center', Class="cbrb ffl fwb fs13 b1",)),
- THCell(HT.TD(HT.Span('End', Class="cw fwb fs13"),align='center', Class="cbrb ffl fwb fs13 b1",)),
- ])
-
- tblobj['body'] = []
-
- blatbutton = ''
-
- fetchField = ['Probe.Name','Probe.Sequence','Probe.ExonNo','Probe.Tm', 'Probe.E_GSB','Probe.E_NSB', 'ProbeH2.h2', 'ProbeH2.weight']
-
- query = "SELECT %s FROM (Probe, ProbeSet, ProbeFreeze) left join ProbeH2 on ProbeH2.ProbeId = Probe.Id and ProbeH2.ProbeFreezeId = ProbeFreeze.Id WHERE ProbeSet.Name = '%s' and Probe.ProbeSetId = ProbeSet.Id and ProbeFreeze.Name = '%s' order by Probe.SerialOrder" % (string.join(fetchField,','), self.ProbeSetID, self.probeDatabase)
- self.cursor.execute(query)
- results = self.cursor.fetchall()
-
- blatsequence = ""
-
- # add by NL: get strains' name in SnpPattern database table
- strainsInSnpPatternDBtable=self.getStrainNameIndexPair() # after snpBrowserPage.py change to MVC, this function can be removed in this class and called from other class;
- allStrainNameList=[v[0] for v in strainsInSnpPatternDBtable]
-
- speciesid = webqtlDatabaseFunction.retrieveSpeciesId(cursor=self.cursor,RISet=fd.RISet)
- for result in results:
- """
- ProbeId, CellID,Sequence,ExonNo,Tm, E_GSB,E_NSB = map(self.nullRecord,result)
- h2 = ''
- query = "SELECT h2 FROM ProbeH2 WHERE ProbeFreezeId = '%s' and ProbeId=%s" % (self.probeDatabase, ProbeId)
- self.cursor.execute(query)
- results = self.cursor.fetchall()
- """
-
- CellID,Sequence,ExonNo,Tm, E_GSB,E_NSB,h2, weight = map(self.nullRecord,result)
-
-
- Average = ''
- STDEV = ''
- mean = -10000.0
- stdev = -10000.0
- try:
- thisTrait.cellid = CellID
- thisTrait.retrieveData()
-
- mean, median, var, stdev, sem, N = reaper.anova(thisTrait.exportInformative()[1])
-
- if mean:
- Average = '%2.2f' % mean
- if stdev:
- STDEV = '%2.2f' % stdev
- except:
- pass
-
- if CellID == self.CellID:
- bkColor = "cbrdull fs11 b1"
- else:
- bkColor = "fs11 b1"
- seqcolor= ''
-
- if thisTrait.blatseq:
- blatsequence = thisTrait.blatseq
- if int(CellID[-1]) % 2 == 1:
- seqcolor= 'cdg'
- else:
- if int(CellID[-1]) % 2 == 1:
- seqcolor= 'cdg'
- blatsequence += string.strip(Sequence)
-
- if thisTrait.genbankid and (int(CellID[-1]) % 2 == 1):
- probeurl = 'http://www.ncbi.nlm.nih.gov/blast/bl2seq/wblast2.cgi?one=%s&sseq=%s' % (thisTrait.genbankid, Sequence)
- probefy1 = HT.Input(type="button",value="Blast",onClick= "openNewWin('%s')" % probeurl, Class="buttonsmaller")
- else:
- probefy1 = ''
-
- traitName = str(thisTrait)
-
- #XZ, Aug 08, 2011: Note that probesets on some affy chips are not name as "xxx_at" (i.e., Affy Mouse Gene 1.0 ST (GPL6246)).
- #EnsemblProbeSetID = self.ProbeSetID[0:self.ProbeSetID.index('_at')+3]
- EnsemblProbeSetID = self.ProbeSetID
- if '_at' in self.ProbeSetID:
- EnsemblProbeSetID = self.ProbeSetID[0:self.ProbeSetID.index('_at')+3]
-
- self.cursor.execute('''
- SELECT EnsemblProbeLocation.*
- FROM EnsemblProbeLocation, EnsemblProbe, EnsemblChip, GeneChipEnsemblXRef, ProbeFreeze
- WHERE EnsemblProbeLocation.ProbeId=EnsemblProbe.Id and EnsemblProbe.ChipId=GeneChipEnsemblXRef.EnsemblChipId and
- GeneChipEnsemblXRef.GeneChipId=ProbeFreeze.ChipId and EnsemblProbe.Name=%s and EnsemblProbe.ProbeSet=%s and
- ProbeFreeze.Name=%s group by Chr, Start, End'''
- ,(CellID, EnsemblProbeSetID, self.probeDatabase))
- LocationFields = self.cursor.fetchall()
-
- Chr=''
- Start=''
- End=''
- if (len(LocationFields)>=1):
- Chr,Start,End,Strand,MisMatch,ProbeId = map(self.nullRecord,LocationFields[0])
- Start /= 1000000.0
- End /= 1000000.0
- if (len(LocationFields)>1):
- self.cursor.execute('''
- SELECT ProbeSet.Chr, ProbeSet.Mb FROM ProbeSet, ProbeFreeze
- WHERE ProbeSet.ChipId=ProbeFreeze.ChipId and ProbeSet.Name=%s and ProbeFreeze.Name=%s'''
- ,(self.ProbeSetID, self.probeDatabase))
- ProbeSetChr, ProbeSetMb = map(self.nullRecord,self.cursor.fetchall()[0])
-
- self.cursor.execute('''
- SELECT EnsemblProbeLocation.*, ABS(EnsemblProbeLocation.Start/1000000-%s) as Mb
- FROM EnsemblProbeLocation, EnsemblProbe, EnsemblChip, GeneChipEnsemblXRef, ProbeFreeze
- WHERE EnsemblProbeLocation.ProbeId=EnsemblProbe.Id and EnsemblProbe.ChipId=GeneChipEnsemblXRef.EnsemblChipId and
- GeneChipEnsemblXRef.GeneChipId=ProbeFreeze.ChipId and EnsemblProbe.Name=%s and EnsemblProbe.ProbeSet=%s and
- EnsemblProbeLocation.Chr=%s and ProbeFreeze.Name=%s order by Mb limit 1'''
- ,(ProbeSetMb, CellID, EnsemblProbeSetID, ProbeSetChr, self.probeDatabase))
- NewLocationFields = self.cursor.fetchall()
- if (len(NewLocationFields)>0):
- Chr,Start,End,Strand,MisMatch,ProbeId,Mb = map(self.nullRecord,NewLocationFields[0])
- Start /= 1000000.0
- End /= 1000000.0
-
- snp_collection = []
- snpDiff_collection=[]
-
- startIndex=3
- if Chr != '' and Start != '' and End != '' and speciesid != None:
-
- self.cursor.execute('''
- SELECT a.SnpName, a.Id, b.* FROM SnpAll a, SnpPattern b
- WHERE a.Chromosome=%s and a.Position>=%s and a.Position<=%s
- and a.SpeciesId=%s and a.Id=b.SnpId'''
- ,(Chr, Start, End, speciesid)) #chr,Start, End, 1))
- snpresults = self.cursor.fetchall()
-
- index1=allStrainNameList.index(_mat) #_mat index in results
- index2=allStrainNameList.index(_pat) #_pat index in results
-
- for v in snpresults:
- #updated by NL: 07-22-2011 check 'limit to' to get snpBrowser snpresults
- snp_collection.append(HT.Href(text=v[0], url=os.path.join(webqtlConfig.CGIDIR,
- "main.py?FormID=SnpBrowserResultPage&submitStatus=1&customStrain=1")+ "&geneName=%s" % v[0], Class="fs12 fwn", target="_blank"))
- snp_collection.append(HT.BR())
- #updated by NL: 07-27-2011 link snp info for different allele only
- strain1_allele=v[startIndex+index1]
- strain2_allele=v[startIndex+index2]
-
- if strain1_allele!=strain2_allele:
- snpDiff_collection.append(HT.Href(text=v[0], url=os.path.join(webqtlConfig.CGIDIR,
- "main.py?FormID=SnpBrowserResultPage&submitStatus=1&customStrain=1&diffAlleles=1&chosenStrains=%s"%chosenStrains)+ "&geneName=%s" % v[0], Class="fs12 fwn", target="_blank"))
- snpDiff_collection.append(HT.BR())
-
-
- tr = []
- tr.append(TDCell(HT.TD(HT.Input(type="checkbox", Class='checkbox', name="searchResult",value=traitName, onClick="highlight(this)"), align="right", Class=bkColor, nowrap="on"), text=traitName))
-
- tr.append(TDCell(HT.TD(HT.Href(text=CellID, url = "javascript:showDatabase2('%s','%s','%s');" % (self.database,self.ProbeSetID,CellID),Class="fs12 fwn"),Class=bkColor), traitName, traitName.upper()))
-
- tr.append(TDCell(HT.TD(Sequence, Class=bkColor + " %s ffmono fs14" % seqcolor),Sequence,Sequence.upper()))
- tr.append(TDCell(HT.TD(probefy1,align='center',Class=bkColor)))
- tr.append(TDCell(HT.TD(ExonNo,align='center',Class=bkColor)))
-
- try:
- TmValue = float(Tm)
- except:
- TmValue = 0.0
- tr.append(TDCell(HT.TD(Tm,align='center',Class=bkColor), Tm, TmValue))
-
- try:
- E_GSBValue = float(E_GSB)
- except:
- E_GSBValue = -10000.0
- tr.append(TDCell(HT.TD(E_GSB,align='center',Class=bkColor), E_GSB, E_GSBValue))
-
- try:
- E_NSBValue = float(E_NSB)
- except:
- E_NSBValue = -10000.0
- tr.append(TDCell(HT.TD(E_NSB,align='center',Class=bkColor), E_NSB, E_NSBValue))
-
- tr.append(TDCell(HT.TD(Average,align='center',Class=bkColor), Average, mean))
- tr.append(TDCell(HT.TD(STDEV,align='center',Class=bkColor), STDEV, stdev))
-
- try:
- h2Value = float(h2)
- except:
- h2Value = -10000.0
- tr.append(TDCell(HT.TD(h2,align='center',Class=bkColor), h2, h2Value))
-
- tr.append(TDCell(HT.TD(Chr,align='left',Class=bkColor)))
- tr.append(TDCell(HT.TD(Start,align='left',Class=bkColor)))
- tr.append(TDCell(HT.TD(End,align='left',Class=bkColor)))
-
- snp_td = HT.TD(align='left',Class=bkColor)
- for one_snp_href in snp_collection:
- snp_td.append(one_snp_href)
-
- tr.append(TDCell(snp_td))
-
- #07-27-2011:add by NL: show SNP results for different allele only
- snpDiff_td= HT.TD(align='left', valign='top', Class=bkColor)
- for one_snpDiff_href in snpDiff_collection:
- snpDiff_td.append(one_snpDiff_href)
- tr.append(TDCell(snpDiff_td))
-
- tblobj['body'].append(tr)
-
- # import cPickle
- filename = webqtlUtil.genRandStr("Probe_")
- objfile = open('%s.obj' % (webqtlConfig.TMPDIR+filename), 'wb')
- cPickle.dump(tblobj, objfile)
- objfile.close()
- # NL, 07/27/2010. genTableObj function has been moved from templatePage.py to webqtlUtil.py;
- div = HT.Div(webqtlUtil.genTableObj(tblobj=tblobj, file=filename, sortby=("", ""), tableID = "sortable", addIndex = "1"), Id="sortable")
-
- #UCSC
- _Species = webqtlDatabaseFunction.retrieveSpecies(cursor=self.cursor, RISet=fd.RISet)
- if _Species == "rat":
- thisurl = webqtlConfig.UCSC_BLAT % ('rat', 'rn3', blatsequence)
- elif _Species == "mouse":
- thisurl = webqtlConfig.UCSC_BLAT % ('mouse', 'mm9', blatsequence)
- else:
- thisurl = ""
- if thisurl:
- blatbutton = HT.Input(type='button' ,name='blatPM',value='Verify UCSC', onClick="window.open('%s','_blank')" % thisurl,Class="button")
- else:
- blatbutton = ""
-
- #GenBank
- genbankSeq = ""
- if thisTrait.genbankid:
- self.cursor.execute("SELECT Sequence FROM Genbank WHERE Id = '%s'" % thisTrait.genbankid )
- genbankSeq = self.cursor.fetchone()
- if genbankSeq:
- genbankSeq = genbankSeq[0]
-
- if genbankSeq:
- if _Species == "rat":
- thisurl2 = webqtlConfig.UCSC_BLAT % ('rat', 'rn3', genbankSeq)
- if _Species == "mouse":
- thisurl2 = webqtlConfig.UCSC_BLAT % ('mouse', 'mm9', genbankSeq)
- else:
- thisurl2 = ''
- if thisurl2:
- blatbutton2 = HT.Input(type='button' ,name='blatPM',value='Verify GenBank', onClick="window.open('%s','_blank')" % thisurl2,Class="button")
- else:
- blatbutton2 = ""
-
- #Snp
- snpBrowser = ""
- if thisTrait.symbol and _Species == 'mouse':
- self.cursor.execute("select geneSymbol from GeneList where geneSymbol = %s", thisTrait.symbol)
- geneName = self.cursor.fetchone()
- if geneName:
- snpurl = os.path.join(webqtlConfig.CGIDIR, "main.py?FormID=snpBrowser") + "&geneName=%s" % geneName[0]
- else:
- if thisTrait.chr and thisTrait.mb:
- snpurl = os.path.join(webqtlConfig.CGIDIR, "main.py?FormID=snpBrowser") + \
- "&chr=%s&start=%2.6f&end=%2.6f" % (thisTrait.chr, thisTrait.mb-0.002, thisTrait.mb+0.002)
- else:
- snpurl = ""
-
- if snpurl:
- snpBrowser = HT.Input(type="button",value="SNP Browser",onClick= \
- "openNewWin('%s')" % snpurl, Class="button")
-
- else:
- snpBrowser = ""
- #end if
-
- heading = HT.Paragraph('Probe Information', Class="title")
- intro = HT.Paragraph('The table below lists information of all probes of probe set ',HT.Span(self.ProbeSetID, Class="fwb fs13"),' from database ', HT.Span(self.probeDatabase, Class="fwb fs13"), ".")
- buttons = HT.Paragraph(probedata,probeinfo,heatmap,cormatrix,blatbutton,blatbutton2,verifyButton,snpBrowser, HT.P(),selectall,selectpm,selectmm,selectinvert,reset,addselect)
- if rudi_track:
- buttons.append(rudi_track)
- form.append(buttons,div,HT.P())
-
- TD_LR.append(heading,intro,form, HT.P())
- self.dict['basehref'] = ''
- self.dict['body'] = str(TD_LR)
- self.dict['title'] = self.db.shortname + ' : ' + self.ProbeSetID +' / Probe Information'
- # updated by NL, javascript function xmlhttpPost(strURL, div, querystring) and function updatepage(Id, str)
- # have been moved to dhtml.js
- self.dict['js1'] = ''
-
- def nullRecord(self,x):
- if x or x == 0:
- return x
- else:
- return ""
-
-##########################
-# UCSC Probe track by Ridi Albert
-##########################
- def convertChipName2Rudi(self, officialName):
- rudiName = None
- if officialName == 'Hu6800':
- rudiName = "ANHuGeneFL"
- else:
- rudiName = officialName.replace('_','')
- rudiName = rudiName.replace('-','')
- rudiName = "AN%s"%rudiName
- return rudiName
-
- def getProbeTrackURL(self, probesetfreeze_id, probeset_id):
- try:
- self.cursor.execute('SELECT GeneChip.Name, GeneChip.SpeciesId FROM ProbeFreeze,GeneChip WHERE ProbeFreeze.ChipId = GeneChip.Id and ProbeFreeze.Name = "%s"' % probesetfreeze_id)
- chipname, species = self.cursor.fetchall()[0]
- except:
- return None
-
- if not species:
- return None
-
- chipname_in_url = self.convertChipName2Rudi(chipname)
- orgs = {1:"mouse", 2:"rat"}
- dbs = {1:"mm8", 2:"mm6"}
-
- try:
- url = webqtlConfig.UCSC_RUDI_TRACK_URL%(orgs[species], dbs[species],chipname_in_url, probeset_id)
- except:
- url = ''
-
- return url
-
-
- #NL 05-13-2011: get field_names in query
- def getStrainNameIndexPair(self):
-
- strainNameIndexPair=[]
- 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:]
-
- # index for strain name starts from 1
- for index, name in enumerate(strainsNameList):
- index=index+1
- strainNameIndexPair.append((name,index))
-
- return strainNameIndexPair
-
-
-