aboutsummaryrefslogtreecommitdiff
path: root/wqflask
diff options
context:
space:
mode:
Diffstat (limited to 'wqflask')
-rwxr-xr-xwqflask/base/trait.py78
-rw-r--r--wqflask/other_config/nginx_conf/gn2python.conf41
-rw-r--r--wqflask/other_config/nginx_conf/gn2python_lei.conf41
-rw-r--r--wqflask/requirements.txt1
-rw-r--r--wqflask/wqflask/search_results.py2
-rw-r--r--wqflask/wqflask/templates/correlation_page.html33
6 files changed, 153 insertions, 43 deletions
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py
index 7847c0a6..db76ddea 100755
--- a/wqflask/base/trait.py
+++ b/wqflask/base/trait.py
@@ -28,7 +28,7 @@ class GeneralTrait(object):
"""
- def __init__(self, **kw):
+ def __init__(self, get_qtl_info=False, **kw):
# xor assertion
assert bool(kw.get('dataset')) != bool(kw.get('dataset_name')), "Needs dataset ob. or name";
if kw.get('dataset_name'):
@@ -41,6 +41,14 @@ class GeneralTrait(object):
self.haveinfo = kw.get('haveinfo', False)
self.sequence = kw.get('sequence') # Blat sequence, available for ProbeSet
self.data = kw.get('data', {})
+
+ # Sets defaultst
+ self.locus = None
+ self.lrs = None
+ self.pvalue = None
+ self.mean = None
+ self.num_overlap = None
+
if kw.get('fullname'):
name2 = value.split("::")
@@ -52,8 +60,9 @@ class GeneralTrait(object):
# Todo: These two lines are necessary most of the time, but perhaps not all of the time
# So we could add a simple if statement to short-circuit this if necessary
- self.retrieve_info()
+ self.retrieve_info(get_qtl_info=get_qtl_info)
self.retrieve_sample_data()
+
def get_name(self):
@@ -237,7 +246,7 @@ class GeneralTrait(object):
#def items(self):
# return self.__dict__.items()
- def retrieve_info(self, QTL=False):
+ def retrieve_info(self, get_qtl_info=False):
assert self.dataset, "Dataset doesn't exist"
if self.dataset.type == 'Publish':
query = """
@@ -259,7 +268,7 @@ class GeneralTrait(object):
PublishXRef.InbredSetId = PublishFreeze.InbredSetId AND
PublishFreeze.Id = %s
""" % (self.name, self.dataset.id)
- traitInfo = g.db.execute(query).fetchone()
+ trait_info = g.db.execute(query).fetchone()
#XZ, 05/08/2009: Xiaodong add this block to use ProbeSet.Id to find the probeset instead of just using ProbeSet.Name
#XZ, 05/08/2009: to avoid the problem of same probeset name from different platforms.
elif self.dataset.type == 'ProbeSet':
@@ -276,8 +285,8 @@ class GeneralTrait(object):
""" % (escape(display_fields_string),
escape(self.dataset.name),
escape(self.name))
- traitInfo = g.db.execute(query).fetchone()
- #print("traitInfo is: ", pf(traitInfo))
+ trait_info = g.db.execute(query).fetchone()
+ #print("trait_info is: ", pf(trait_info))
#XZ, 05/08/2009: We also should use Geno.Id to find marker instead of just using Geno.Name
# to avoid the problem of same marker name from different species.
elif self.dataset.type == 'Geno':
@@ -294,23 +303,24 @@ class GeneralTrait(object):
""" % (escape(display_fields_string),
escape(self.dataset.name),
escape(self.name))
- traitInfo = g.db.execute(query).fetchone()
- #print("traitInfo is: ", pf(traitInfo))
+ trait_info = g.db.execute(query).fetchone()
+ #print("trait_info is: ", pf(trait_info))
else: #Temp type
query = """SELECT %s FROM %s WHERE Name = %s
""" % (string.join(self.dataset.display_fields,','),
self.dataset.type, self.name)
- traitInfo = g.db.execute(query).fetchone()
+ trait_info = g.db.execute(query).fetchone()
#self.cursor.execute(query)
- #traitInfo = self.cursor.fetchone()
- if traitInfo:
+ #trait_info = self.cursor.fetchone()
+ if trait_info:
self.haveinfo = True
#XZ: assign SQL query result to trait attributes.
for i, field in enumerate(self.dataset.display_fields):
- setattr(self, field, str(traitInfo[i]))
+ print(" mike: {} -> {} - {}".format(field, type(trait_info[i]), trait_info[i]))
+ setattr(self, field, trait_info[i])
if self.dataset.type == 'Publish':
self.confidential = 0
@@ -318,6 +328,10 @@ class GeneralTrait(object):
self.confidential = 1
self.homologeneid = None
+
+ print("self.geneid is:", self.geneid)
+ print(" type:", type(self.geneid))
+ print("self.dataset.group.name is:", self.dataset.group.name)
if self.dataset.type == 'ProbeSet' and self.dataset.group and self.geneid:
#XZ, 05/26/2010: From time to time, this query get error message because some geneid values in database are not number.
#XZ: So I have to test if geneid is number before execute the query.
@@ -329,6 +343,8 @@ class GeneralTrait(object):
# geneidIsNumber = False
#if geneidIsNumber:
+
+
query = """
SELECT
HomologeneId
@@ -340,6 +356,7 @@ class GeneralTrait(object):
InbredSet.SpeciesId = Species.Id AND
Species.TaxonomyId = Homologene.TaxonomyId
""" % (escape(str(self.geneid)), escape(self.dataset.group.name))
+ print("-> query is:", query)
result = g.db.execute(query).fetchone()
#else:
# result = None
@@ -347,35 +364,40 @@ class GeneralTrait(object):
if result:
self.homologeneid = result[0]
- if QTL:
+ if get_qtl_info:
if self.dataset.type == 'ProbeSet' and not self.cellid:
- traitQTL = g.db.execute("""
+ query = """
SELECT
ProbeSetXRef.Locus, ProbeSetXRef.LRS, ProbeSetXRef.pValue, ProbeSetXRef.mean
FROM
ProbeSetXRef, ProbeSet
WHERE
ProbeSetXRef.ProbeSetId = ProbeSet.Id AND
- ProbeSet.Name = "%s" AND
- ProbeSetXRef.ProbeSetFreezeId =%s
- """, (self.name, self.dataset.id)).fetchone()
+ ProbeSet.Name = "{}" AND
+ ProbeSetXRef.ProbeSetFreezeId ={}
+ """.format(self.name, self.dataset.id)
+ trait_qtl = g.db.execute(query).fetchone()
#self.cursor.execute(query)
- #traitQTL = self.cursor.fetchone()
- if traitQTL:
- self.locus, self.lrs, self.pvalue, self.mean = traitQTL
+ #trait_qtl = self.cursor.fetchone()
+ if trait_qtl:
+ self.locus, self.lrs, self.pvalue, self.mean = trait_qtl
if self.locus:
- result = g.db.execute("""
+ query = """
select Geno.Chr, Geno.Mb from Geno, Species
- where Species.Name = '%s' and
- Geno.Name = '%s' and
+ where Species.Name = '{}' and
+ Geno.Name = '{}' and
Geno.SpeciesId = Species.Id
- """, (species, self.locus)).fetchone()
+ """.format(self.dataset.group.species, self.locus)
+ print("query is:", query)
+ result = g.db.execute(query).fetchone()
self.locus_chr = result[0]
self.locus_mb = result[1]
else:
self.locus = self.locus_chr = self.locus_mb = self.lrs = self.pvalue = self.mean = ""
+
+
if self.dataset.type == 'Publish':
- traitQTL = g.db.execute("""
+ trait_qtl = g.db.execute("""
SELECT
PublishXRef.Locus, PublishXRef.LRS
FROM
@@ -386,9 +408,9 @@ class GeneralTrait(object):
PublishFreeze.Id =%s
""", (self.name, self.dataset.id)).fetchone()
#self.cursor.execute(query)
- #traitQTL = self.cursor.fetchone()
- if traitQTL:
- self.locus, self.lrs = traitQTL
+ #trait_qtl = self.cursor.fetchone()
+ if trait_qtl:
+ self.locus, self.lrs = trait_qtl
else:
self.locus = self.lrs = ""
else:
diff --git a/wqflask/other_config/nginx_conf/gn2python.conf b/wqflask/other_config/nginx_conf/gn2python.conf
new file mode 100644
index 00000000..f23e325f
--- /dev/null
+++ b/wqflask/other_config/nginx_conf/gn2python.conf
@@ -0,0 +1,41 @@
+server {
+ # Modeled after http://flask.pocoo.org/docs/deploying/wsgi-standalone/
+ listen 80;
+
+ server_name gn2python.genenetwork.org;
+
+ access_log /var/log/nginx/access.log;
+ error_log /var/log/nginx/error.log;
+
+ location ^~ /css/ {
+ root /gene/wqflask/wqflask/static/;
+ }
+
+ location ^~ /javascript/ {
+ root /gene/wqflask/wqflask/static/;
+ }
+
+# location ^~ /image/ {
+# root /gene/wqflask/wqflask/static/;
+# }
+
+ location ^~ /images/ {
+ root /gene/wqflask/wqflask/static/;
+ }
+
+ ### New - added by Sam
+ #location ^~ /static/ {
+ # root /gene/wqflask/wqflask/static/;
+ #}
+
+ location / {
+ proxy_pass http://127.0.0.1:5000/;
+ proxy_redirect off;
+
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+
+ proxy_read_timeout 40m;
+ }
+}
diff --git a/wqflask/other_config/nginx_conf/gn2python_lei.conf b/wqflask/other_config/nginx_conf/gn2python_lei.conf
new file mode 100644
index 00000000..981bda28
--- /dev/null
+++ b/wqflask/other_config/nginx_conf/gn2python_lei.conf
@@ -0,0 +1,41 @@
+server {
+ # Modeled after http://flask.pocoo.org/docs/deploying/wsgi-standalone/
+ listen 80;
+
+ server_name gn2python_lei.genenetwork.org;
+
+ access_log /var/log/nginx/lei_access.log;
+ error_log /var/log/nginx/lei_error.log;
+
+ location ^~ /css/ {
+ root /gene/wqflask/wqflask/static/;
+ }
+
+ location ^~ /javascript/ {
+ root /gene/wqflask/wqflask/static/;
+ }
+
+# location ^~ /image/ {
+# root /gene/wqflask/wqflask/static/;
+# }
+
+ location ^~ /images/ {
+ root /gene/wqflask/wqflask/static/;
+ }
+
+ ### New - added by Sam
+ #location ^~ /static/ {
+ # root /gene/wqflask/wqflask/static/;
+ #}
+
+ location / {
+ proxy_pass http://127.0.0.1:5001/;
+ proxy_redirect off;
+
+ proxy_set_header Host $host;
+ proxy_set_header X-Real-IP $remote_addr;
+ proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
+
+ proxy_read_timeout 40m;
+ }
+} \ No newline at end of file
diff --git a/wqflask/requirements.txt b/wqflask/requirements.txt
index 6b07b380..4449c0e7 100644
--- a/wqflask/requirements.txt
+++ b/wqflask/requirements.txt
@@ -3,7 +3,6 @@ Jinja2==2.6
#MySQL-python==1.2.3
Piddle==0.1-dev
PyYAML==3.10
-#Reaper==1.0
SQLAlchemy==0.7.9
Werkzeug==0.8.3
logging-tree==1.1
diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py
index 8ec6b897..f76af374 100644
--- a/wqflask/wqflask/search_results.py
+++ b/wqflask/wqflask/search_results.py
@@ -107,7 +107,7 @@ class SearchResultPage(object):
print("foo locals are:", locals())
trait_id = result[0]
this_trait = GeneralTrait(dataset=self.dataset, name=trait_id)
- this_trait.retrieve_info(QTL=True)
+ this_trait.retrieve_info(get_qtl_info=True)
self.trait_list.append(this_trait)
self.dataset.get_trait_info(self.trait_list, species)
diff --git a/wqflask/wqflask/templates/correlation_page.html b/wqflask/wqflask/templates/correlation_page.html
index b06f7096..efbf689c 100644
--- a/wqflask/wqflask/templates/correlation_page.html
+++ b/wqflask/wqflask/templates/correlation_page.html
@@ -17,30 +17,37 @@
<thead>
<tr>
<th>Trait</th>
+ <th>Symbol</th>
+ <th>Alias</th>
+ <th>Description</th>
+ <th>Location</th>
+ <th>Mean Expr</th>
+ <th>Max LRS</th>
+ <th>Max LRS Location</th>
{% if corr_method == 'pearson' %}
<th>Sample r</th>
+ <th>N Cases</th>
<th>Sample p(r)</th>
{% else %}
<th>Sample rho</th>
<th>Sample p(rho)</th>
{% endif %}
- <th>Symbol</th>
- <th>Alias</th>
- <th>Description</th>
- <th>Location</th>
</tr>
</thead>
<tbody>
- {% for trait in correlation_data_slice %}
+ {% for trait in correlation_results %}
<tr>
- <td>{{ trait }}</td>
- <td>{{ correlation_data_slice[trait].correlation }}</td>
- <td>{{ correlation_data_slice[trait].p_value }}</td>
- <td>{{ correlation_data_slice[trait].symbol }}</td>
- <td>{{ correlation_data_slice[trait].alias }}</td>
- <td>{{ correlation_data_slice[trait].description }}</td>
- <td>Chr{{ correlation_data_slice[trait].chromosome }}: {{ correlation_data_slice[trait].mb }}</td>
- {# <td>{{ correlation_data_slice[trait][2].__dict__ }}</td> #}
+ <td>{{ trait.name }}</td>
+ <td>{{ trait.symbol }}</td>
+ <td>{{ trait.alias }}</td>
+ <td>{{ trait.description }}</td>
+ <td>Chr{{ trait.chr }}: {{ trait.mb }}</td>
+ <td>{{ trait.mean }}</td>
+ <td>{{ trait.lrs }}</td>
+ <td>Chr{{ trait.locus_chr }}: {{ trait.locus_mb }}</td>
+ <td>{{ trait.sample_r }}</td>
+ <td>{{ trait.num_overlap }}</td>
+ <td>{{ trait.sample_p }}</td>
</tr>
{% endfor %}
</tbody>