about summary refs log tree commit diff
path: root/wqflask
diff options
context:
space:
mode:
Diffstat (limited to 'wqflask')
-rw-r--r--wqflask/wqflask/correlation/rust_correlation.py4
-rw-r--r--wqflask/wqflask/database.py36
-rw-r--r--wqflask/wqflask/marker_regression/gemma_mapping.py2
-rw-r--r--wqflask/wqflask/templates/collections/view.html13
4 files changed, 33 insertions, 22 deletions
diff --git a/wqflask/wqflask/correlation/rust_correlation.py b/wqflask/wqflask/correlation/rust_correlation.py
index c7dc665f..5109c72e 100644
--- a/wqflask/wqflask/correlation/rust_correlation.py
+++ b/wqflask/wqflask/correlation/rust_correlation.py
@@ -252,14 +252,14 @@ def __compute_lit_corr__(
     target_dataset_type = target_dataset.type
     this_dataset_type = this_dataset.type
     (this_trait_geneid, geneid_dict, species) = do_lit_correlation(
-        this_trait, this_dataset)
+        this_trait, target_dataset)
 
     with database_connector() as conn:
         return reduce(
             lambda acc, lit: {**acc, **lit},
             compute_all_lit_correlation(
                 conn=conn, trait_lists=list(geneid_dict.items()),
-                species=species, gene_id=this_trait_geneid),
+                species=species, gene_id=this_trait_geneid)[:n_top],
             {})
     return {}
 
diff --git a/wqflask/wqflask/database.py b/wqflask/wqflask/database.py
index f0ce0a77..2063190c 100644
--- a/wqflask/wqflask/database.py
+++ b/wqflask/wqflask/database.py
@@ -5,19 +5,10 @@ from string import Template
 from typing import Tuple
 from urllib.parse import urlparse
 import importlib
+import contextlib
 
 import MySQLdb
 
-from sqlalchemy import create_engine
-from sqlalchemy.orm import scoped_session, sessionmaker
-from sqlalchemy.ext.declarative import declarative_base
-
-def read_from_pyfile(pyfile, setting):
-    orig_sys_path = sys.path[:]
-    sys.path.insert(0, os.path.dirname(pyfile))
-    module = importlib.import_module(os.path.basename(pyfile).strip(".py"))
-    sys.path = orig_sys_path[:]
-    return module.__dict__.get(setting)
 
 def sql_uri():
     """Read the SQL_URI from the environment or settings file."""
@@ -37,8 +28,27 @@ def parse_db_url(sql_uri: str) -> Tuple:
         parsed_db.hostname, parsed_db.username, parsed_db.password,
         parsed_db.path[1:], parsed_db.port)
 
+
+@contextlib.contextmanager
 def database_connection():
-    """Returns a database connection"""
+    """Provide a context manager for opening, closing, and rolling
+    back - if supported - a database connection.  Should an error occur,
+    and if the table supports transactions, the connection will be
+    rolled back.
+
+    """
     host, user, passwd, db_name, port = parse_db_url(sql_uri())
-    return MySQLdb.connect(
-        db=db_name, user=user, passwd=passwd, host=host, port=port)
+    connection = MySQLdb.connect(
+        db=db_name, user=user, passwd=passwd, host=host, port=port,
+        autocommit=False  # Required for roll-backs
+    )
+    try:
+        yield connection
+        connection.close()
+    except Exception:
+        connection.rollback()
+        raise
+    else:
+        connection.commit()
+    finally:
+        connection.close()
diff --git a/wqflask/wqflask/marker_regression/gemma_mapping.py b/wqflask/wqflask/marker_regression/gemma_mapping.py
index ec12f9b7..6b525733 100644
--- a/wqflask/wqflask/marker_regression/gemma_mapping.py
+++ b/wqflask/wqflask/marker_regression/gemma_mapping.py
@@ -220,7 +220,7 @@ def parse_loco_output(this_dataset, gwa_output_filename, loco="True"):
                         marker['chr'] = line.split("\t")[0]
                     marker['Mb'] = float(line.split("\t")[2]) / 1000000
                     marker['p_value'] = float(line.split("\t")[10])
-                    marker['additive'] = -(float(line.split("\t")[7]))
+                    marker['additive'] = -(float(line.split("\t")[7])/2)
                     if math.isnan(marker['p_value']) or (marker['p_value'] <= 0):
                         marker['lod_score'] = 0
                     else:
diff --git a/wqflask/wqflask/templates/collections/view.html b/wqflask/wqflask/templates/collections/view.html
index 39df161d..2f385987 100644
--- a/wqflask/wqflask/templates/collections/view.html
+++ b/wqflask/wqflask/templates/collections/view.html
@@ -19,7 +19,7 @@
         <h3>This collection has {{ '{}'.format(numify(trait_obs|count, "record", "records")) }}</h3>
 
         <div class="tool-button-container">
-          <form id="collection_form" action="/delete" method="post" target="_blank">
+          <form id="collection_form" action="/delete" method="post">
             <input type="hidden" name="uc_id" id="uc_id" value="{{ uc.id }}" />
             <input type="hidden" name="collection_name" id="collection_name" value="{{ uc.name }}" />
             <input type="hidden" name="tool_used" value="" />
@@ -242,13 +242,14 @@
 
             submit_special = function(url) {
                 $("#collection_form").attr("action", url);
-                e.stopImmediatePropagation();
-                return $("#collection_form").submit();
+                $("#collection_form").attr('target', '_blank').submit();
+                return false;
             };
 
             $("#delete").on("click", function() {
                 url = $(this).data("url")
-                return submit_special(url)
+                $("#collection_form").attr("action", url);
+                return $("#collection_form").removeAttr('target').submit();
             });
 
             $("#remove").on("click", function() {
@@ -257,8 +258,8 @@
                     return $(this).val();
                 }).get();
                 $("#trait_list").val(traits)
-
-                return submit_special(url)
+                $("#collection_form").attr("action", url);
+                return $("#collection_form").removeAttr('target').submit();
             });
 
             $("#change_collection_name").on("click", function() {