aboutsummaryrefslogtreecommitdiff
path: root/wqflask/wqflask
diff options
context:
space:
mode:
authorZachary Sloan2013-01-08 17:16:45 -0600
committerZachary Sloan2013-01-08 17:16:45 -0600
commit34b0cc3a931e266b6382c961d6321ccc9b3ac430 (patch)
tree876b9b076b01c9448190c739333ab061cec15611 /wqflask/wqflask
parentc8a4719a83e3ee65a8c03b0b600a3cfea9ff17bf (diff)
downloadgenenetwork2-34b0cc3a931e266b6382c961d6321ccc9b3ac430.tar.gz
Created IndChromosome class in species.py and wrote functions for
chromosome-related attributes Began to try and pass qtlreaper results as js_data to use when drawing graphs
Diffstat (limited to 'wqflask/wqflask')
-rwxr-xr-xwqflask/wqflask/marker_regression/marker_regression.py81
-rw-r--r--wqflask/wqflask/views.py11
2 files changed, 52 insertions, 40 deletions
diff --git a/wqflask/wqflask/marker_regression/marker_regression.py b/wqflask/wqflask/marker_regression/marker_regression.py
index 0aad4e54..73f1246f 100755
--- a/wqflask/wqflask/marker_regression/marker_regression.py
+++ b/wqflask/wqflask/marker_regression/marker_regression.py
@@ -256,54 +256,58 @@ class MarkerRegression(object):
#for i, indChr in enumerate(self.genotype):
# self.ChrList.append((indChr.name, i))
- self.cursor.execute("""
- Select
- Length from Chr_Length, InbredSet
- where
- Chr_Length.SpeciesId = InbredSet.SpeciesId AND
- InbredSet.Name = '%s' AND
- Chr_Length.Name in (%s)
- Order by
- OrderId
- """ % (fd.RISet, string.join(map(lambda X: "'%s'" % X[0], self.ChrList[1:]), ", ")))
-
- self.ChrLengthMbList = self.cursor.fetchall()
- self.ChrLengthMbList = map(lambda x: x[0]/1000000.0, self.ChrLengthMbList)
- self.ChrLengthMbSum = reduce(lambda x, y:x+y, self.ChrLengthMbList, 0.0)
- if self.ChrLengthMbList:
- self.MbGraphInterval = self.ChrLengthMbSum/(len(self.ChrLengthMbList)*12) #Empirical Mb interval
- else:
- self.MbGraphInterval = 1
-
- self.ChrLengthCMList = []
- for i, _chr in enumerate(self.genotype):
- self.ChrLengthCMList.append(_chr[-1].cM - _chr[0].cM)
- self.ChrLengthCMSum = reduce(lambda x, y:x+y, self.ChrLengthCMList, 0.0)# used for calculate plot scale
+ #self.cursor.execute("""
+ # Select
+ # Length from Chr_Length, InbredSet
+ # where
+ # Chr_Length.SpeciesId = InbredSet.SpeciesId AND
+ # InbredSet.Name = '%s' AND
+ # Chr_Length.Name in (%s)
+ # Order by
+ # OrderId
+ # """ % (fd.RISet, string.join(map(lambda X: "'%s'" % X[0], self.ChrList[1:]), ", ")))
+ #
+ #self.ChrLengthMbList = self.cursor.fetchall()
+ #self.ChrLengthMbList = map(lambda x: x[0]/1000000.0, self.ChrLengthMbList)
+ #self.ChrLengthMbSum = reduce(lambda x, y:x+y, self.ChrLengthMbList, 0.0)
+ #if self.ChrLengthMbList:
+ # self.MbGraphInterval = self.ChrLengthMbSum/(len(self.ChrLengthMbList)*12) #Empirical Mb interval
+ #else:
+ # self.MbGraphInterval = 1
+ #
+ #self.ChrLengthCMList = []
+ #for i, _chr in enumerate(self.genotype):
+ # self.ChrLengthCMList.append(_chr[-1].cM - _chr[0].cM)
+ #self.ChrLengthCMSum = reduce(lambda x, y:x+y, self.ChrLengthCMList, 0.0)# used for calculate plot scale
- self.GraphInterval = self.MbGraphInterval #Mb
+ #self.GraphInterval = self.MbGraphInterval #Mb
# begin: common part with human data
- intCanvas = pid.PILCanvas(size=(self.graphWidth,self.graphHeight))
- gifmap = self.plotIntMapping(fd, intCanvas, startMb = self.startMb, endMb = self.endMb, showLocusForm= "")
- filename= webqtlUtil.genRandStr("Itvl_")
- intCanvas.save(os.path.join(webqtlConfig.IMGDIR, filename), format='png')
- intImg=HT.Image('/image/'+filename+'.png', border=0, usemap='#WebQTLImageMap')
+ #intCanvas = pid.PILCanvas(size=(self.graphWidth,self.graphHeight))
+ #gifmap = self.plotIntMapping(fd, intCanvas, startMb = self.startMb, endMb = self.endMb, showLocusForm= "")
+ #filename= webqtlUtil.genRandStr("Itvl_")
+ #intCanvas.save(os.path.join(webqtlConfig.IMGDIR, filename), format='png')
+ #intImg=HT.Image('/image/'+filename+'.png', border=0, usemap='#WebQTLImageMap')
################################################################
# footnote goes here
################################################################
- btminfo = HT.Paragraph(Id="smallsize") #Small('More information about this graph is available here.')
-
- if (self.additiveChecked):
- btminfo.append(HT.BR(), 'A positive additive coefficient (', HT.Font('green', color='green'), ' line) indicates that %s alleles increase trait values. In contrast, a negative additive coefficient (' % fd.ppolar, HT.Font('red', color='red'), ' line) indicates that %s alleles increase trait values.' % fd.mpolar)
+ #btminfo = HT.Paragraph(Id="smallsize") #Small('More information about this graph is available here.')
+ #if (self.additiveChecked):
+ # btminfo.append(HT.BR(), 'A positive additive coefficient (', HT.Font('green', color='green'), ' line) indicates that %s alleles increase trait values. In contrast, a negative additive coefficient (' % fd.ppolar, HT.Font('red', color='red'), ' line) indicates that %s alleles increase trait values.' % fd.mpolar)
- TD_LR = HT.TR(HT.TD(HT.Blockquote(gifmap,intImg, HT.P()), bgColor='#eeeeee', height = 200))
- self.dict['body'] = str(datadiv)+str(TD_LR)+str(resultstable)+str(HT.TR(HT.TD(descriptionTable)))
+ #TD_LR = HT.TR(HT.TD(HT.Blockquote(gifmap,intImg, HT.P()), bgColor='#eeeeee', height = 200))
+ #
+ #self.dict['body'] = str(datadiv)+str(TD_LR)+str(resultstable)+str(HT.TR(HT.TD(descriptionTable)))
# end: common part with human data
-
+
+ self.js_data = dict(
+ qtl_results = self.pure_qtl_results,
+ #lrs_array = vars(self.lrs_array),
+ )
@@ -467,7 +471,12 @@ class MarkerRegression(object):
filtered_results = self.qtl_results
else:
suggestive_results = []
+ self.pure_qtl_results = []
for result in self.qtl_results:
+ self.pure_qtl_results.append(dict(locus=dict(cM=result.locus.cM,
+ chromosome=result.locus.chr),
+ lrs=result.lrs,
+ additive=result.additive))
if result.lrs > self.lrs_thresholds.suggestive:
suggestive_results.append(result)
filtered_results = suggestive_results
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index f6c0dfb0..fc628d77 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -151,10 +151,10 @@ def show_trait_page():
def marker_regression_page():
template_vars = marker_regression.MarkerRegression(request.form)
#print("js_data before dump:", template_vars.js_data)
- #template_vars.js_data = json.dumps(template_vars.js_data,
- # default=json_default_handler,
- # indent=" ")
- #print("js_data after dump:", template_vars.js_data)
+ template_vars.js_data = json.dumps(template_vars.js_data,
+ default=json_default_handler,
+ indent=" ")
+ print("[dub] js_data after dump:", template_vars.js_data)
print("marker_regression template_vars:", pf(template_vars.__dict__))
return render_template("marker_regression.html", **template_vars.__dict__)
@@ -190,6 +190,9 @@ def json_default_handler(obj):
# Handle custom objects
if hasattr(obj, '__dict__'):
return obj.__dict__
+ #elif type(obj) == "Dataset":
+ # print("Not going to serialize Dataset")
+ # return None
else:
raise TypeError, 'Object of type %s with value of %s is not JSON serializable' % (
type(obj), repr(obj))