aboutsummaryrefslogtreecommitdiff
path: root/wqflask/base
diff options
context:
space:
mode:
authorZachary Sloan2014-05-05 17:09:24 +0000
committerZachary Sloan2014-05-05 17:09:24 +0000
commit759a7a23b0ea848b8c8ffe2804841322254d8696 (patch)
treef2994e8228c96cb8dbf39e69a34dedf65acc6f14 /wqflask/base
parentd2454fe1306b298d5b7a4dd349a4f26ebc7307a2 (diff)
downloadgenenetwork2-759a7a23b0ea848b8c8ffe2804841322254d8696.tar.gz
Committing a bunch of changes related to integrating GEMMA and
adding the correlation matrix page
Diffstat (limited to 'wqflask/base')
-rwxr-xr-x[-rw-r--r--]wqflask/base/JinjaPage.py0
-rwxr-xr-xwqflask/base/anon_collection.py21
-rwxr-xr-xwqflask/base/data_set.py46
-rwxr-xr-x[-rw-r--r--]wqflask/base/generate_probesetfreeze_file.py0
-rwxr-xr-x[-rw-r--r--]wqflask/base/mrna_assay_tissue_data.py0
-rwxr-xr-x[-rw-r--r--]wqflask/base/species.py0
-rwxr-xr-x[-rw-r--r--]wqflask/base/trait_collection.py0
7 files changed, 56 insertions, 11 deletions
diff --git a/wqflask/base/JinjaPage.py b/wqflask/base/JinjaPage.py
index 07e485b1..07e485b1 100644..100755
--- a/wqflask/base/JinjaPage.py
+++ b/wqflask/base/JinjaPage.py
diff --git a/wqflask/base/anon_collection.py b/wqflask/base/anon_collection.py
new file mode 100755
index 00000000..8ee73296
--- /dev/null
+++ b/wqflask/base/anon_collection.py
@@ -0,0 +1,21 @@
+class AnonCollection(TraitCollection):
+
+ def __init__(self, anon_id)
+ self.anon_id = anon_id
+ self.collection_members = Redis.smembers(self.anon_id)
+ print("self.collection_members is:", self.collection_members)
+ self.num_members = len(self.collection_members)
+
+
+ @app.route("/collections/remove", methods=('POST',))
+ def remove_traits(traits_to_remove):
+ print("traits_to_remove:", traits_to_remove)
+ for trait in traits_to_remove:
+ Redis.srem(self.anon_id, trait)
+ members_now = self.collection_members - traits_to_remove
+ print("members_now:", members_now)
+ print("Went from {} to {} members in set.".format(len(self.collection_members), len(members_now)))
+
+ # We need to return something so we'll return this...maybe in the future
+ # we can use it to check the results
+ return str(len(members_now))
diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py
index 3deaa655..f4ca3ae0 100755
--- a/wqflask/base/data_set.py
+++ b/wqflask/base/data_set.py
@@ -23,6 +23,7 @@ import os
import math
import string
import collections
+import codecs
import json
import gzip
@@ -156,18 +157,30 @@ class Markers(object):
"""Todo: Build in cacheing so it saves us reading the same file more than once"""
def __init__(self, name):
json_data_fh = open(os.path.join(webqtlConfig.NEWGENODIR + name + '.json'))
- self.markers = json.load(json_data_fh)
+ markers = json.load(json_data_fh)
+
+ for marker in markers:
+ if (marker['chr'] != "X") and (marker['chr'] != "Y"):
+ marker['chr'] = int(marker['chr'])
+ else:
+ marker['chr'] = 19
+ marker['Mb'] = float(marker['Mb'])
+
+ self.markers = markers
+ print("self.markers:", self.markers)
def add_pvalues(self, p_values):
- #print("length of self.markers:", len(self.markers))
- #print("length of p_values:", len(p_values))
+ print("length of self.markers:", len(self.markers))
+ print("length of p_values:", len(p_values))
# THIS IS only needed for the case when we are limiting the number of p-values calculated
if len(self.markers) < len(p_values):
self.markers = self.markers[:len(p_values)]
for marker, p_value in itertools.izip(self.markers, p_values):
- marker['p_value'] = p_value
+ if not p_value:
+ continue
+ marker['p_value'] = float(p_value)
if math.isnan(marker['p_value']) or marker['p_value'] <= 0:
marker['lod_score'] = 0
marker['lrs_value'] = 0
@@ -179,16 +192,25 @@ class Markers(object):
class HumanMarkers(Markers):
- def __init__(self, name):
+ def __init__(self, name, specified_markers = []):
marker_data_fh = open(os.path.join(webqtlConfig.PYLMM_PATH + name + '.bim'))
self.markers = []
for line in marker_data_fh:
splat = line.strip().split()
#print("splat:", splat)
- marker = {}
- marker['chr'] = int(splat[0])
- marker['name'] = splat[1]
- marker['Mb'] = float(splat[3]) / 1000000
+ if len(specified_markers) > 0:
+ if splat[1] in specified_markers:
+ marker = {}
+ marker['chr'] = int(splat[0])
+ marker['name'] = splat[1]
+ marker['Mb'] = float(splat[3]) / 1000000
+ else:
+ continue
+ else:
+ marker = {}
+ marker['chr'] = int(splat[0])
+ marker['name'] = splat[1]
+ marker['Mb'] = float(splat[3]) / 1000000
self.markers.append(marker)
#print("markers is: ", pf(self.markers))
@@ -241,6 +263,8 @@ class DatasetGroup(object):
self.incparentsf1 = False
self.allsamples = None
+ def get_specified_markers(self, markers = []):
+ self.markers = HumanMarkers(self.name, markers)
def get_markers(self):
#print("self.species is:", self.species)
@@ -954,8 +978,8 @@ class MrnaAssayDataSet(DataSet):
#XZ, 12/08/2008: description
#XZ, 06/05/2009: Rob asked to add probe target description
- description_string = str(this_trait.description).strip()
- target_string = str(this_trait.probe_target_description).strip()
+ description_string = unicode(str(this_trait.description).strip(codecs.BOM_UTF8), 'utf-8')
+ target_string = unicode(str(this_trait.probe_target_description).strip(codecs.BOM_UTF8), 'utf-8')
if len(description_string) > 1 and description_string != 'None':
description_display = description_string
diff --git a/wqflask/base/generate_probesetfreeze_file.py b/wqflask/base/generate_probesetfreeze_file.py
index a0ff804b..a0ff804b 100644..100755
--- a/wqflask/base/generate_probesetfreeze_file.py
+++ b/wqflask/base/generate_probesetfreeze_file.py
diff --git a/wqflask/base/mrna_assay_tissue_data.py b/wqflask/base/mrna_assay_tissue_data.py
index be5df657..be5df657 100644..100755
--- a/wqflask/base/mrna_assay_tissue_data.py
+++ b/wqflask/base/mrna_assay_tissue_data.py
diff --git a/wqflask/base/species.py b/wqflask/base/species.py
index ebc2bfed..ebc2bfed 100644..100755
--- a/wqflask/base/species.py
+++ b/wqflask/base/species.py
diff --git a/wqflask/base/trait_collection.py b/wqflask/base/trait_collection.py
index d388a3af..d388a3af 100644..100755
--- a/wqflask/base/trait_collection.py
+++ b/wqflask/base/trait_collection.py