aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.DS_Storebin6148 -> 0 bytes
-rw-r--r--.gitignore3
-rw-r--r--README.md11
-rwxr-xr-xbin/genenetwork22
-rw-r--r--doc/API_readme.md42
-rw-r--r--doc/GUIX-Reproducible-from-source.org1
-rw-r--r--doc/README.org151
-rw-r--r--etc/default_settings.py22
-rw-r--r--scripts/add_missing_columns.sh24
-rwxr-xr-xscripts/run_debug.sh20
-rw-r--r--wqflask/base/data_set.py113
-rw-r--r--wqflask/base/trait.py19
-rw-r--r--wqflask/base/webqtlConfig.py1
-rw-r--r--wqflask/runserver.py1
-rw-r--r--wqflask/utility/hmac.py2
-rw-r--r--wqflask/utility/redis_tools.py142
-rw-r--r--wqflask/utility/startup_config.py4
-rw-r--r--wqflask/utility/tools.py13
-rw-r--r--wqflask/wqflask/__init__.py4
-rw-r--r--wqflask/wqflask/api/gen_menu.py24
-rw-r--r--wqflask/wqflask/collect.py4
-rw-r--r--wqflask/wqflask/correlation/show_corr_results.py2
-rw-r--r--wqflask/wqflask/ctl/ctl_analysis.py4
-rw-r--r--wqflask/wqflask/do_search.py3
-rw-r--r--wqflask/wqflask/gsearch.py5
-rw-r--r--wqflask/wqflask/marker_regression/display_mapping_results.py33
-rw-r--r--wqflask/wqflask/marker_regression/rqtl_mapping.py194
-rw-r--r--wqflask/wqflask/marker_regression/run_mapping.py25
-rw-r--r--wqflask/wqflask/network_graph/network_graph.py2
-rw-r--r--wqflask/wqflask/search_results.py3
-rw-r--r--wqflask/wqflask/show_trait/SampleList.py84
-rw-r--r--wqflask/wqflask/show_trait/export_trait_data.py30
-rw-r--r--wqflask/wqflask/show_trait/show_trait.py127
-rw-r--r--wqflask/wqflask/static/new/css/show_trait.css4
-rw-r--r--wqflask/wqflask/static/new/javascript/ctl_graph.js8
-rw-r--r--wqflask/wqflask/static/new/javascript/dataset_menu_structure.json5782
-rw-r--r--wqflask/wqflask/static/new/javascript/dataset_select_menu_orig.js2
-rw-r--r--wqflask/wqflask/static/new/javascript/draw_corr_scatterplot.js2
-rw-r--r--wqflask/wqflask/static/new/javascript/network_graph.js4
-rw-r--r--wqflask/wqflask/static/new/javascript/show_trait.js40
-rw-r--r--wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js24
-rw-r--r--wqflask/wqflask/templates/admin/group_manager.html137
-rw-r--r--wqflask/wqflask/templates/base.html9
-rw-r--r--wqflask/wqflask/templates/collections/list.html4
-rw-r--r--wqflask/wqflask/templates/collections/view.html12
-rw-r--r--wqflask/wqflask/templates/corr_scatterplot.html2
-rw-r--r--wqflask/wqflask/templates/correlation_matrix.html4
-rw-r--r--wqflask/wqflask/templates/correlation_page.html44
-rw-r--r--wqflask/wqflask/templates/credits.html55
-rw-r--r--wqflask/wqflask/templates/ctl_results.html1
-rw-r--r--wqflask/wqflask/templates/gsearch_gene.html4
-rw-r--r--wqflask/wqflask/templates/gsearch_pheno.html4
-rw-r--r--wqflask/wqflask/templates/index_page.html4
-rwxr-xr-xwqflask/wqflask/templates/index_page_orig.html4
-rw-r--r--wqflask/wqflask/templates/mapping_results.html30
-rw-r--r--wqflask/wqflask/templates/network_graph.html1
-rw-r--r--wqflask/wqflask/templates/pair_scan_results.html4
-rw-r--r--wqflask/wqflask/templates/search_error.html2
-rw-r--r--wqflask/wqflask/templates/search_result_page.html71
-rw-r--r--wqflask/wqflask/templates/show_trait.html5
-rw-r--r--wqflask/wqflask/templates/show_trait_details.html8
-rwxr-xr-x[-rw-r--r--]wqflask/wqflask/templates/show_trait_mapping_tools.html24
-rw-r--r--wqflask/wqflask/templates/show_trait_transform_and_filter.html2
-rw-r--r--wqflask/wqflask/templates/snp_browser.html2
-rw-r--r--wqflask/wqflask/templates/tutorials.html17
-rw-r--r--wqflask/wqflask/user_login.py41
-rw-r--r--wqflask/wqflask/user_manager.py25
-rw-r--r--wqflask/wqflask/user_session.py46
-rw-r--r--wqflask/wqflask/views.py34
69 files changed, 1277 insertions, 6300 deletions
diff --git a/.DS_Store b/.DS_Store
deleted file mode 100644
index d992942f..00000000
--- a/.DS_Store
+++ /dev/null
Binary files differ
diff --git a/.gitignore b/.gitignore
index 0006d9a8..701623e7 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,9 +1,10 @@
-# gitignore
*.pyc
*.orig
*.bak
*.cross
*~
+*.swo
+*.swp
genotype_files/genotype/HSNIH_copy.geno
web/new_genotypes/HSNIH.json
wqflask/secure_server.py
diff --git a/README.md b/README.md
index 523eeb76..47519118 100644
--- a/README.md
+++ b/README.md
@@ -25,16 +25,15 @@ Once installed GN2 can be run online through a browser interface
genenetwork2
```
-(default is http://localhost:5003/). For full examples (you'll need to
-set a number of environment variables), including running scripts and
-a Python REPL, for example
+(default is http://localhost:5003/). A quick example is
```sh
-env GN2_PROFILE=~/opt/gn-latest GENENETWORK_FILES=~/data/gn2_data ./bin/genenetwork2
+env GN2_PROFILE=~/opt/gn-latest SERVER_PORT=5300 GENENETWORK_FILES=~/data/gn2_data/ ./bin/genenetwork2 ./etc/default_settings.py -gunicorn-dev
```
-see the startup script
-[./bin/genenetwork2](https://github.com/genenetwork/genenetwork2/blob/testing/bin/genenetwork2).
+For full examples (you may need to set a number of environment
+variables), including running scripts and a Python REPL, also see the
+startup script [./bin/genenetwork2](https://github.com/genenetwork/genenetwork2/blob/testing/bin/genenetwork2).
Also Mysql and Elasticsearch need to be running, see
[INSTALL](./doc/README.org).
diff --git a/bin/genenetwork2 b/bin/genenetwork2
index 1c538e86..3ae08e0a 100755
--- a/bin/genenetwork2
+++ b/bin/genenetwork2
@@ -209,7 +209,7 @@ if [ "$1" = '-gunicorn-prod' ] ; then
echo PYTHONPATH=$PYTHONPATH
if [ -z $SERVER_PORT ]; then echo "ERROR: Provide a SERVER_PORT" ; exit 1 ; fi
PID=$TMPDIR/gunicorn.$USER.pid
- cmd="--bind 0.0.0.0:$SERVER_PORT --pid $PID -k eventlet --workers 20 --keep-alive 1200 --max-requests 1000 --timeout 1200 wsgi"
+ cmd="--bind 0.0.0.0:$SERVER_PORT --pid $PID --workers 20 --keep-alive 6000 --max-requests 1000 --timeout 1200 wsgi"
echo RUNNING gunicorn $cmd
gunicorn $cmd
exit $?
diff --git a/doc/API_readme.md b/doc/API_readme.md
index 652376a0..be6668dc 100644
--- a/doc/API_readme.md
+++ b/doc/API_readme.md
@@ -6,17 +6,17 @@
To get a list of species with data available in GN (and their associated names and ids):
```
-curl http://gn2.genenetwork.org/api/v_pre1/species
+curl http://genenetwork.org/api/v_pre1/species
[ { "FullName": "Mus musculus", "Id": 1, "Name": "mouse", "TaxonomyId": 10090 }, ... { "FullName": "Populus trichocarpa", "Id": 10, "Name": "poplar", "TaxonomyId": 3689 } ]
```
Or to get a single species info:
```
-curl http://gn2.genenetwork.org/api/v_pre1/species/mouse
+curl http://genenetwork.org/api/v_pre1/species/mouse
```
OR
```
-curl http://gn2.genenetwork.org/api/v_pre1/species/mouse.json
+curl http://genenetwork.org/api/v_pre1/species/mouse.json
```
*For all queries where the last field is a user-specified name/ID, there will be the option to append a file format type. Currently there is only JSON (and it will default to JSON if none is provided), but other formats will be added later*
@@ -26,33 +26,33 @@ curl http://gn2.genenetwork.org/api/v_pre1/species/mouse.json
This query can optionally filter by species:
```
-curl http://gn2.genenetwork.org/api/v_pre1/groups (for all species)
+curl http://genenetwork.org/api/v_pre1/groups (for all species)
```
OR
```
-curl http://gn2.genenetwork.org/api/v_pre1/groups/mouse (for just mouse groups/RISets)
+curl http://genenetwork.org/api/v_pre1/groups/mouse (for just mouse groups/RISets)
[ { "DisplayName": "BXD", "FullName": "BXD RI Family", "GeneticType": "riset", "Id": 1, "MappingMethodId": "1", "Name": "BXD", "SpeciesId": 1, "public": 2 }, ... { "DisplayName": "AIL LGSM F34 and F39-43 (GBS)", "FullName": "AIL LGSM F34 and F39-43 (GBS)", "GeneticType": "intercross", "Id": 72, "MappingMethodId": "2", "Name": "AIL-LGSM-F34-F39-43-GBS", "SpeciesId": 1, "public": 2 } ]
```
## Fetch Genotypes for Group/RISet ##
```
-curl http://gn2.genenetwork.org/api/v_pre1/genotypes/bimbam/BXD
-curl http://gn2.genenetwork.org/api/v_pre1/genotypes/BXD.bimbam
+curl http://genenetwork.org/api/v_pre1/genotypes/bimbam/BXD
+curl http://genenetwork.org/api/v_pre1/genotypes/BXD.bimbam
```
Returns a group's genotypes in one of several formats - bimbam, rqtl2, or geno (a format used by qtlreaper which is just a CSV file consisting of marker positions and genotypes)
Rqtl2 genotype queries can also include the dataset name and will return a zip of the genotypes, phenotypes, and gene map (marker names/positions). For example:
```
-curl http://gn2.genenetwork.org/api/v_pre1/genotypes/rqtl2/BXD/HC_M2_0606_P.zip
+curl http://genenetwork.org/api/v_pre1/genotypes/rqtl2/BXD/HC_M2_0606_P.zip
```
## Fetch Datasets ##
```
-curl http://gn2.genenetwork.org/api/v_pre1/datasets/bxd
+curl http://genenetwork.org/api/v_pre1/datasets/bxd
```
OR
```
-curl http://gn2.genenetwork.org/api/v_pre1/datasets/mouse/bxd
+curl http://genenetwork.org/api/v_pre1/datasets/mouse/bxd
[ { "AvgID": 1, "CreateTime": "Fri, 01 Aug 2003 00:00:00 GMT", "DataScale": "log2", "FullName": "UTHSC/ETHZ/EPFL BXD Liver Polar Metabolites Extraction A, CD Cohorts (Mar 2017) log2", "Id": 1, "Long_Abbreviation": "BXDMicroArray_ProbeSet_August03", "ProbeFreezeId": 3, "ShortName": "Brain U74Av2 08/03 MAS5", "Short_Abbreviation": "Br_U_0803_M", "confidentiality": 0, "public": 0 }, ... { "AvgID": 3, "CreateTime": "Tue, 14 Aug 2018 00:00:00 GMT", "DataScale": "log2", "FullName": "EPFL/LISP BXD CD Liver Affy Mouse Gene 1.0 ST (Aug18) RMA", "Id": 859, "Long_Abbreviation": "EPFLMouseLiverCDRMAApr18", "ProbeFreezeId": 181, "ShortName": "EPFL/LISP BXD CD Liver Affy Mouse Gene 1.0 ST (Aug18) RMA", "Short_Abbreviation": "EPFLMouseLiverCDRMA0818", "confidentiality": 0, "public": 1 } ]
```
(I added the option to specify species just in case we end up with the same group name across multiple species at some point, though it's currently unnecessary)
@@ -61,11 +61,11 @@ curl http://gn2.genenetwork.org/api/v_pre1/datasets/mouse/bxd
### For mRNA Assay/"ProbeSet" ###
```
-curl http://gn2.genenetwork.org/api/v_pre1/dataset/HC_M2_0606_P
+curl http://genenetwork.org/api/v_pre1/dataset/HC_M2_0606_P
```
OR
```
-curl http://gn2.genenetwork.org/api/v_pre1/dataset/bxd/HC_M2_0606_P```
+curl http://genenetwork.org/api/v_pre1/dataset/bxd/HC_M2_0606_P```
{ "confidential": 0, "data_scale": "log2", "dataset_type": "mRNA expression", "full_name": "Hippocampus Consortium M430v2 (Jun06) PDNN", "id": 112, "name": "HC_M2_0606_P", "public": 2, "short_name": "Hippocampus M430v2 BXD 06/06 PDNN", "tissue": "Hippocampus mRNA", "tissue_id": 9 }
```
(This also has the option to specify group/riset)
@@ -73,26 +73,26 @@ curl http://gn2.genenetwork.org/api/v_pre1/dataset/bxd/HC_M2_0606_P```
### For "Phenotypes" (basically non-mRNA Expression; stuff like weight, sex, etc) ###
For these traits, the query fetches publication info and takes the group and phenotype 'ID' as input. For example:
```
-curl http://gn2.genenetwork.org/api/v_pre1/dataset/bxd/10001
+curl http://genenetwork.org/api/v_pre1/dataset/bxd/10001
{ "dataset_type": "phenotype", "description": "Central nervous system, morphology: Cerebellum weight, whole, bilateral in adults of both sexes [mg]", "id": 10001, "name": "CBLWT2", "pubmed_id": 11438585, "title": "Genetic control of the mouse cerebellum: identification of quantitative trait loci modulating size and architecture", "year": "2001" }
```
## Fetch Sample Data for Dataset ##
```
-curl http://gn2.genenetwork.org/api/v_pre1/sample_data/HSNIH-PalmerPublish.csv
+curl http://genenetwork.org/api/v_pre1/sample_data/HSNIH-PalmerPublish.csv
```
Returns a CSV file with sample/strain names as the columns and trait IDs as rows
## Fetch Sample Data for Single Trait ##
```
-curl http://gn2.genenetwork.org/api/v_pre1/sample_data/HC_M2_0606_P/1436869_at
+curl http://genenetwork.org/api/v_pre1/sample_data/HC_M2_0606_P/1436869_at
[ { "data_id": 23415463, "sample_name": "129S1/SvImJ", "sample_name_2": "129S1/SvImJ", "se": 0.123, "value": 8.201 }, { "data_id": 23415463, "sample_name": "A/J", "sample_name_2": "A/J", "se": 0.046, "value": 8.413 }, { "data_id": 23415463, "sample_name": "AKR/J", "sample_name_2": "AKR/J", "se": 0.134, "value": 8.856 }, ... ]
```
## Fetch Trait List for Dataset ##
```
-curl http://gn2.genenetwork.org/api/v_pre1/traits/HXBBXHPublish.json
+curl http://genenetwork.org/api/v_pre1/traits/HXBBXHPublish.json
[ { "Additive": 0.0499967532467532, "Id": 10001, "LRS": 16.2831307029479, "Locus": "rs106114574", "PhenotypeId": 1449, "PublicationId": 319, "Sequence": 1 }, ... ]
```
@@ -101,7 +101,7 @@ Both JSON and CSV formats can be specified, with JSON as default. There is also
## Fetch Trait Info (Name, Description, Location, etc) ##
### For mRNA Expression/"ProbeSet" ###
```
-curl http://gn2.genenetwork.org/api/v_pre1/trait/HC_M2_0606_P/1436869_at
+curl http://genenetwork.org/api/v_pre1/trait/HC_M2_0606_P/1436869_at
{ "additive": -0.214087568058076, "alias": "HHG1; HLP3; HPE3; SMMCI; Dsh; Hhg1", "chr": "5", "description": "sonic hedgehog (hedgehog)", "id": 99602, "locus": "rs8253327", "lrs": 12.7711275309832, "mb": 28.457155, "mean": 9.27909090909091, "name": "1436869_at", "p_value": 0.306, "se": null, "symbol": "Shh" }
```
@@ -110,7 +110,7 @@ For phenotypes this just gets the max LRS, its location, and additive effect (a
Since each group/riset only has one phenotype "dataset", this query takes either the group/riset name or the group/riset name + "Publish" (for example "BXDPublish", which is the dataset name in the DB) as input
```
-curl http://gn2.genenetwork.org/api/v_pre1/trait/BXD/10001
+curl http://genenetwork.org/api/v_pre1/trait/BXD/10001
{ "additive": 2.39444435069444, "id": 4, "locus": "rs48756159", "lrs": 13.4974911471087 }
```
@@ -130,7 +130,7 @@ Each method's query takes the following parameters respectively (more will be ad
Example query:
```
-curl http://gn2.genenetwork.org/api/v_pre1/mapping?trait_id=10015&db=BXDPublish&method=gemma&use_loco=true
+curl http://genenetwork.org/api/v_pre1/mapping?trait_id=10015&db=BXDPublish&method=gemma&use_loco=true
```
### R/qtl ###
@@ -146,7 +146,7 @@ curl http://gn2.genenetwork.org/api/v_pre1/mapping?trait_id=10015&db=BXDPublish&
Example query:
```
-curl http://gn2.genenetwork.org/api/v_pre1/mapping?trait_id=1418701_at&db=HC_M2_0606_P&method=rqtl&num_perm=100
+curl http://genenetwork.org/api/v_pre1/mapping?trait_id=1418701_at&db=HC_M2_0606_P&method=rqtl&num_perm=100
```
Some combinations of methods/models may not make sense. The R/qtl manual should be referred to for any questions on its use (specifically the scanone function in this case)
@@ -164,6 +164,6 @@ This query currently takes the following parameters (though more will be added):
Example query:
```
-curl http://gn2.genenetwork.org/api/v_pre1/correlation?trait_id=1427571_at&db=HC_M2_0606_P&target_db=BXDPublish&type=sample&return_count=100
+curl http://genenetwork.org/api/v_pre1/correlation?trait_id=1427571_at&db=HC_M2_0606_P&target_db=BXDPublish&type=sample&return_count=100
[ { "#_strains": 6, "p_value": 0.004804664723032055, "sample_r": -0.942857142857143, "trait": 20511 }, { "#_strains": 6, "p_value": 0.004804664723032055, "sample_r": -0.942857142857143, "trait": 20724 }, { "#_strains": 12, "p_value": 1.8288943424888848e-05, "sample_r": -0.9233615170820528, "trait": 13536 }, { "#_strains": 7, "p_value": 0.006807187408935392, "sample_r": 0.8928571428571429, "trait": 10157 }, { "#_strains": 7, "p_value": 0.006807187408935392, "sample_r": -0.8928571428571429, "trait": 20392 }, ... ]
```
diff --git a/doc/GUIX-Reproducible-from-source.org b/doc/GUIX-Reproducible-from-source.org
index 83adce99..19e4d14f 100644
--- a/doc/GUIX-Reproducible-from-source.org
+++ b/doc/GUIX-Reproducible-from-source.org
@@ -33,7 +33,6 @@ GNU Guix has to be installed as root. I tested this recipe on a fresh
install of Debian 8.3.0 (in KVM) though it should work on any modern
Linux distribution (including CentOS).
-
Note that GN2 consists of an approx. 5 GB installation including
database. If you use a virtual machine we recommend to use at least
double.
diff --git a/doc/README.org b/doc/README.org
index 620c946c..c2ef2d57 100644
--- a/doc/README.org
+++ b/doc/README.org
@@ -3,17 +3,12 @@
* Table of Contents :TOC:
- [[#introduction][Introduction]]
- [[#install][Install]]
- - [[#tarball][Tarball]]
- - [[#docker][Docker]]
- - [[#with-source][With source]]
- [[#running-gn2][Running GN2]]
- - [[#run-mysql-server][Run MySQL server]]
- - [[#install-mysql-with-gnu-guix][Install MySQL with GNU GUIx]]
+ - [[#run-mariadb-server][Run MariaDB server]]
+ - [[#install-mariadb-with-gnu-guix][Install MariaDB with GNU GUIx]]
- [[#load-the-small-database-in-mysql][Load the small database in MySQL]]
- [[#gn2-dependency-graph][GN2 Dependency Graph]]
- [[#working-with-the-gn2-source-code][Working with the GN2 source code]]
- - [[#running-elasticsearch][Running ElasticSearch]]
- - [[#systemd][SystemD]]
- [[#read-more][Read more]]
- [[#trouble-shooting][Trouble shooting]]
- [[#importerror-no-module-named-jinja2][ImportError: No module named jinja2]]
@@ -22,6 +17,8 @@
- [[#rpy2-error-show-now-found][Rpy2 error 'show' now found]]
- [[#mysql-cant-connect-server-through-socket-error][Mysql can't connect server through socket ERROR]]
- [[#irc-session][IRC session]]
+ - [[#notes][NOTES]]
+ - [[#deploying-gn2-official][Deploying GN2 official]]
* Introduction
@@ -40,44 +37,10 @@ an example of the [[#gn2-dependency-graph][GN2 Dependency Graph]].
* Install
-The quickest way to install GN2 is by using a binary installation
-(tarball or Docker image). These installations are bundled by GNU
-Guix and include all dependencies. You can install GeneNetwork on most
-Linux distributions, including Debian, Ubuntu, Fedora and CentOS,
-provided you have administrator privileges (root). The alternative is
-a Docker installation.
-
-** Tarball
-
-Download the ~800Mb tarball from
-[[http://files.genenetwork.org/software/binary_tarball/]]. Validate the checksum and
-unpack to root, for example
-
-: tar xvzf genenetwork2-2.10rc3-1538ffd-tarball-pack.tar.gz
-: mv /gnu /
-: mv /opt/genenetwork2 /opt/
-
-Now you shoud be able to start the server with
-
-: /opt/genenetwork2/bin/genenetwork2
-
-When the server stops with a MySQL error [[#run-mysql-server][Run MySQL server]]
-and set SQL_URI to point at it. For example:
-
-: export SQL_URI=mysql://gn2:mysql_password@127.0.0.1/db_webqtl_s
-
-See also [[#mysql-cant-connect-server-through-socket-error][Mysql can't connect server through socket ERROR]].
-
-** Docker
-
-Docker images are also available through
-[[http://files.genenetwork.org/software/]]. Validate the checksum and run
-with [[https://docs.docker.com/engine/reference/commandline/load/][Docker load]].
-
-** With source
-
-For more elaborate installation instructions on deploying GeneNetwork from
-source see [[#source-deployment][Source deployment]].
+Make sure to install GNU Guix using the binary download instructions
+on the main website. Follow the instructions on
+[[GUIX-Reproducible-from-source.org]] to download pre-built binaries. Note
+the download amounts to several GBs of data.
* Running GN2
@@ -94,39 +57,54 @@ or you can set environment variables to override individual parameters, e.g.
the debug and logging switches can be particularly useful when
developing GN2.
-* Run MySQL server
-** Install MySQL with GNU GUIx
+* Running Redis
+
+Install redis. Make sure you add the setting:
+
+: appendonly yes
+
+* Run MariaDB server
+** Install MariaDB with GNU GUIx
+
+/Note: we moved to MariaDB/
These are the steps you can take to install a fresh installation of
-mysql (which comes as part of the GNU Guix genenetwork2 install).
+mariadb (which comes as part of the GNU Guix genenetwork2 install).
As root configure and run
#+BEGIN_SRC bash
-adduser mysql && addgroup mysql
-mysqld --datadir=/var/mysql --initialize-insecure
-mkdir -p /var/run/mysqld
-chown mysql.mysql ~/mysql /var/run/mysqld
-mysqld -u mysql --datadir=/var/mysql --explicit_defaults_for_timestamp -P 12048"
+adduser mariadb && addgroup mariadb
+mysqld --datadir=/home/mariadb/database --initialize-insecure
+mkdir -p /var/run/mariadbd
+chown mariadb.mariadb /var/run/mariadbd
+mysqld -u mariadb --datadir=/home/mariadb/database/mariadb --explicit_defaults_for_timestamp -P 12048"
#+END_SRC
If you want to run as root you may have to set
: /etc/my.cnf
-: [mysqld]
+: [mariadbd]
: user=root
+You also need to set
+
+: ft_min_word_len = 3
+
+To make sure word text searches (shh) work and rebuild the tables if
+required.
+
To check error output in a file on start-up run with something like
-: mysqld -u mysql --console --explicit_defaults_for_timestamp --datadir=/gnu/mysql --log-error=~/test.log
+: mariadbd -u mariadb --console --explicit_defaults_for_timestamp --datadir=/gnu/mariadb --log-error=~/test.log
-Other tips are that Guix installs mysqld in your profile, so this may work
+Other tips are that Guix installs mariadbd in your profile, so this may work
-: /home/user/.guix-profile/bin/mysqld -u mysql --explicit_defaults_for_timestamp --datadir=/gnu/mysql
+: /home/user/.guix-profile/bin/mariadbd -u mariadb --explicit_defaults_for_timestamp --datadir=/gnu/mariadb
When you get errors like:
-: qlalchemy.exc.IntegrityError: (_mysql_exceptions.IntegrityError) (1215, 'Cannot add foreign key constraint')
+: qlalchemy.exc.IntegrityError: (_mariadb_exceptions.IntegrityError) (1215, 'Cannot add foreign key constraint')
you may need to set
@@ -196,35 +174,6 @@ http://biogems.info/contrib/genenetwork/gn2.svg
See [[development.org]].
-* Running ElasticSearch
-
-In order to start up elasticsearch:
-Penguin - change user to "elasticsearch" and use the following command: "env JAVA_HOME=/opt/jdk-9.0.4 /opt/elasticsearch-6.2.1/bin/elasticsearch"
-
-
-** SystemD
-
-New server - as root run "systemctl restart elasticsearch"
-
-#+BEGIN_SRC
-tux01:/etc/systemd/system# cat elasticsearch.service
-[Unit]
-Description=Run Elasticsearch
-
-[Service]
-ExecStart=/opt/elasticsearch-6.2.1/bin/elasticsearch
-Environment=JAVA_HOME=/opt/jdk-9.0.4
-Environment="ES_JAVA_OPTS=-Xms1g -Xmx8g"
-Environment="PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/opt/jdk-9.0.4/bin"
-LimitNOFILE=65536
-StandardOutput=syslog
-StandardError=syslog
-User=elasticsearch
-
-[Install]
-WantedBy=multi-user.target
-#+END_SRC
-
* Read more
If you want to understand the architecture of GN2 read
@@ -708,3 +657,31 @@ The following derivations would be built:
<pjotrp> I am building it on guix.genenetwork.org right now [10:09]
<user01> nice [10:10]
#+end_src
+
+* NOTES
+
+** Deploying GN2 official
+
+Let's see how fast we can deploy a second copy of GN2.
+
+- [-] Base install
+ + [X] First install a Debian server with GNU Guix on board
+ + [X] Get Guix build going
+ - [X] Build the correct version of Guix
+ - [X] Check out the correct gn-stable version of guix-bioinformatics http://git.genenetwork.org/pjotrp/guix-bioinformatics
+ - [X] guix package -i genenetwork2 -p /usr/local/guix-profiles/gn2-stable
+ + [X] Create a gn2 user and home with space
+ + [X] Install redis (currently debian)
+ - [X] add to systemd
+ - [X] update redis.cnf
+ - [X] update database
+ + [X] Install mariadb (currently debian mariadb-server)
+ - [X] add to systemd
+ - [X] system stop mysql
+ - [X] update mysql.cnf
+ - [X] update database (see gn-services/services/mariadb.md)
+ - [X] check tables
+ + [ ] run gn2 (rust-qtlreaper not working)
+ + [X] update nginx
+ + [ ] install genenetwork3
+ - [ ] add to systemd
diff --git a/etc/default_settings.py b/etc/default_settings.py
index 75f84dc4..f368237b 100644
--- a/etc/default_settings.py
+++ b/etc/default_settings.py
@@ -25,9 +25,15 @@ import os
import sys
GN_VERSION = open("../etc/VERSION","r").read()
+GN_SERVER_URL = "http://localhost:8880/" # REST API server
+
+# ---- MySQL
+
SQL_URI = "mysql://gn2:mysql_password@localhost/db_webqtl_s"
SQL_ALCHEMY_POOL_RECYCLE = 3600
GN_SERVER_URL = "http://localhost:8880/" # REST API server
+GN2_BASE_URL = "http://genenetwork.org/" # to pick up REST API
+GN2_BRANCH_URL = GN2_BASE_URL
# ---- Flask configuration (see website)
TRAP_BAD_REQUEST_ERRORS = True
@@ -38,18 +44,24 @@ SECURITY_RECOVERABLE = True
SECURITY_EMAIL_SENDER = "no-reply@genenetwork.org"
SECURITY_POST_LOGIN_VIEW = "/thank_you"
-SERVER_PORT = 5003 # running on localhost
+# ---- SERVER_PORT needs an override before firing up the server
+SERVER_PORT = os.environ['SERVER_PORT']
+if isinstance(SERVER_PORT, str):
+ SERVER_PORT = int(SERVER_PORT) # don't do this for other settings!
+else:
+ SERVER_PORT = 5003
+
SECRET_HMAC_CODE = '\x08\xdf\xfa\x93N\x80\xd9\\H@\\\x9f`\x98d^\xb4a;\xc6OM\x946a\xbc\xfc\x80:*\xebc'
GITHUB_CLIENT_ID = "UNKNOWN"
GITHUB_CLIENT_SECRET = "UNKNOWN"
-GITHUB_AUTH_URL = "UNKNOWN"
-GITHUB_API_URL = "UNKNOWN"
+GITHUB_AUTH_URL = "https://github.com/login/oauth/authorize"
+GITHUB_API_URL = "https://api.github.com/user"
ORCID_CLIENT_ID = "UNKNOWN"
ORCID_CLIENT_SECRET = "UNKNOWN"
-ORCID_AUTH_URL = "UNKNOWN"
-ORCID_TOKEN_URL = "UNKNOWN"
+ORCID_AUTH_URL = "https://orcid.org/oauth/authorize"
+ORCID_TOKEN_URL = "https://orcid.org/oauth/token"
ELASTICSEARCH_HOST = "localhost"
ELASTICSEARCH_PORT = '9200'
diff --git a/scripts/add_missing_columns.sh b/scripts/add_missing_columns.sh
new file mode 100644
index 00000000..70d5fdeb
--- /dev/null
+++ b/scripts/add_missing_columns.sh
@@ -0,0 +1,24 @@
+ #! /bin/bash
+ #
+ # Add missing columns to test db downloaded from:
+ # https://s3.amazonaws.com/genenetwork2/db_webqtl_s.zip
+
+ QUERY="
+ ALTER TABLE InbredSet
+ ADD Family varchar(20) AFTER FullName,
+ ADD FamilyOrder varchar(20) AFTER Family,
+ ADD MenuOrderId smallint(6) AFTER FamilyOrder,
+ ADD InbredSetCode varchar(5) AFTER MenuOrderId;
+
+ ALTER TABLE PublishXRef
+ ADD mean double AFTER DataId;
+
+ -- This takes some time
+ ALTER TABLE ProbeSet
+ ADD UniProtID varchar(20) AFTER ProteinName;
+ "
+
+ USER=gn2
+ DBNAME=db_webqtl_s
+ PASS=mysql_password
+ mysql -u"$USER" -p"$PASS" -h localhost -D "$DBNAME" -e "$QUERY"
diff --git a/scripts/run_debug.sh b/scripts/run_debug.sh
new file mode 100755
index 00000000..be7ecdb8
--- /dev/null
+++ b/scripts/run_debug.sh
@@ -0,0 +1,20 @@
+#! /bin/bash
+#
+# PLEASE DO NOT CHANGE THIS FILE - copy it elsewhere to run
+#
+# Run with GN2_PROFILE and SERVER_PORT overrides, e.g.
+#
+# env GN2_PROFILE=/usr/local/guix-profiles/gn-latest SERVER_PORT=5010 scripts/run_debug.sh
+
+[ -z $GN2_PROFILE ] && export GN2_PROFILE=/usr/local/guix-profiles/gn-latest
+[ -z $SERVER_PORT ] && export SERVER_PORT=5010
+
+echo Running on port $SERVER_PORT from $GN2_PROFILE
+
+cwd=`pwd`
+echo Running source from $cwd
+
+mkdir -p ~/tmp
+
+env TMPDIR=~/tmp WEBSERVER_MODE=DEBUG LOG_LEVEL=DEBUG GENENETWORK_FILES=/export/data/genenetwork/genotype_files/ SQL_URI=mysql://webqtlout:webqtlout@localhost/db_webqtl ./bin/genenetwork2 etc/default_settings.py -gunicorn-dev
+
diff --git a/wqflask/base/data_set.py b/wqflask/base/data_set.py
index ebf3f021..1457ba8d 100644
--- a/wqflask/base/data_set.py
+++ b/wqflask/base/data_set.py
@@ -56,7 +56,7 @@ from pprint import pformat as pf
from db.gn_server import menu_main
from db.call import fetchall,fetchone,fetch1
-from utility.tools import USE_GN_SERVER, USE_REDIS, flat_files, flat_file_exists
+from utility.tools import USE_GN_SERVER, USE_REDIS, flat_files, flat_file_exists, GN2_BASE_URL
from utility.logger import getLogger
logger = getLogger(__name__ )
@@ -64,10 +64,9 @@ logger = getLogger(__name__ )
# Each subclass will add to this
DS_NAME_MAP = {}
-def create_dataset(dataset_name, rebuild=True, dataset_type = None, get_samplelist = True, group_name = None):
+def create_dataset(dataset_name, dataset_type = None, get_samplelist = True, group_name = None):
if not dataset_type:
dataset_type = Dataset_Getter(dataset_name)
- logger.debug("dataset_type", dataset_type)
dataset_ob = DS_NAME_MAP[dataset_type]
dataset_class = globals()[dataset_ob]
@@ -78,7 +77,7 @@ def create_dataset(dataset_name, rebuild=True, dataset_type = None, get_sampleli
class Dataset_Types(object):
- def __init__(self, rebuild=False):
+ def __init__(self):
"""Create a dictionary of samples where the value is set to Geno,
Publish or ProbeSet. E.g.
@@ -94,33 +93,95 @@ Publish or ProbeSet. E.g.
"""
self.datasets = {}
- if rebuild: #ZS: May make this the only option
- data = json.loads(requests.get("http://gn2.genenetwork.org/api/v_pre1/gen_dropdown").content)
- logger.debug("THE DATA:", data)
- #data = gen_menu.gen_dropdown_json()
- else:
- file_name = "wqflask/static/new/javascript/dataset_menu_structure.json"
- with open(file_name, 'r') as fh:
- data = json.load(fh)
-
- for species in data['datasets']:
- for group in data['datasets'][species]:
- for dataset_type in data['datasets'][species][group]:
- for dataset in data['datasets'][species][group][dataset_type]:
- short_dataset_name = dataset[1]
- if dataset_type == "Phenotypes":
- new_type = "Publish"
- elif dataset_type == "Genotypes":
- new_type = "Geno"
- else:
- new_type = "ProbeSet"
- self.datasets[short_dataset_name] = new_type
+
+ data = Redis.get("dataset_structure")
+ if data:
+ self.datasets = json.loads(data)
+ else: #ZS: I don't think this should ever run unless Redis is emptied
+ try:
+ data = json.loads(requests.get(GN2_BASE_URL + "/api/v_pre1/gen_dropdown", timeout = 5).content)
+ for species in data['datasets']:
+ for group in data['datasets'][species]:
+ for dataset_type in data['datasets'][species][group]:
+ for dataset in data['datasets'][species][group][dataset_type]:
+ short_dataset_name = dataset[1]
+ if dataset_type == "Phenotypes":
+ new_type = "Publish"
+ elif dataset_type == "Genotypes":
+ new_type = "Geno"
+ else:
+ new_type = "ProbeSet"
+ self.datasets[short_dataset_name] = new_type
+ except:
+ pass
+
+ Redis.set("dataset_structure", json.dumps(self.datasets))
# Set LOG_LEVEL_DEBUG=5 to see the following:
logger.debugf(5, "datasets",self.datasets)
def __call__(self, name):
- return self.datasets[name]
+ if name not in self.datasets:
+ mrna_expr_query = """
+ SELECT
+ ProbeSetFreeze.Id
+ FROM
+ ProbeSetFreeze
+ WHERE
+ ProbeSetFreeze.Name = "{0}"
+ """.format(name)
+
+ results = g.db.execute(mrna_expr_query).fetchall()
+ if len(results):
+ self.datasets[name] = "ProbeSet"
+ Redis.set("dataset_structure", json.dumps(self.datasets))
+ return self.datasets[name]
+
+ group_name = name.replace("Publish", "")
+
+ pheno_query = """SELECT InfoFiles.GN_AccesionId
+ FROM InfoFiles, PublishFreeze, InbredSet
+ WHERE InbredSet.Name = '{0}' AND
+ PublishFreeze.InbredSetId = InbredSet.Id AND
+ InfoFiles.InfoPageName = PublishFreeze.Name""".format(group_name)
+
+ results = g.db.execute(pheno_query).fetchall()
+ if len(results):
+ self.datasets[name] = "Publish"
+ Redis.set("dataset_structure", json.dumps(self.datasets))
+ return self.datasets[name]
+
+ #ZS: For when there isn't an InfoFiles ID; not sure if this and the preceding query are both necessary
+ other_pheno_query = """SELECT PublishFreeze.Name
+ FROM PublishFreeze, InbredSet
+ WHERE InbredSet.Name = '{}' AND
+ PublishFreeze.InbredSetId = InbredSet.Id""".format(group_name)
+
+ results = g.db.execute(other_pheno_query).fetchall()
+ if len(results):
+ self.datasets[name] = "Publish"
+ Redis.set("dataset_structure", json.dumps(self.datasets))
+ return self.datasets[name]
+
+ geno_query = """
+ SELECT
+ GenoFreeze.Id
+ FROM
+ GenoFreeze
+ WHERE
+ GenoFreeze.Name = "{0}"
+ """.format(name)
+
+ results = g.db.execute(geno_query).fetchall()
+ if len(results):
+ self.datasets[name] = "Geno"
+ Redis.set("dataset_structure", json.dumps(self.datasets))
+ return self.datasets[name]
+
+ #ZS: It shouldn't ever reach this
+ return None
+ else:
+ return self.datasets[name]
# Do the intensive work at startup one time only
Dataset_Getter = Dataset_Types()
diff --git a/wqflask/base/trait.py b/wqflask/base/trait.py
index 5525472e..1b7cb23c 100644
--- a/wqflask/base/trait.py
+++ b/wqflask/base/trait.py
@@ -5,15 +5,15 @@ import resource
import codecs
import requests
-import redis
-Redis = redis.StrictRedis()
-
from base import webqtlConfig
from base.webqtlCaseData import webqtlCaseData
from base.data_set import create_dataset
from db import webqtlDatabaseFunction
from utility import webqtlUtil
from utility import hmac
+from utility.tools import GN2_BASE_URL
+from utility.redis_tools import get_redis_conn
+Redis = get_redis_conn()
from wqflask import app
@@ -135,9 +135,9 @@ class GeneralTrait(object):
alias = 'Not available'
if self.symbol:
- human_response = requests.get("http://gn2.genenetwork.org/gn3/gene/aliases/" + self.symbol.upper())
- mouse_response = requests.get("http://gn2.genenetwork.org/gn3/gene/aliases/" + self.symbol.capitalize())
- other_response = requests.get("http://gn2.genenetwork.org/gn3/gene/aliases/" + self.symbol.lower())
+ human_response = requests.get(GN2_BASE_URL + "gn3/gene/aliases/" + self.symbol.upper())
+ mouse_response = requests.get(GN2_BASE_URL + "gn3/gene/aliases/" + self.symbol.capitalize())
+ other_response = requests.get(GN2_BASE_URL + "gn3/gene/aliases/" + self.symbol.lower())
if human_response and mouse_response and other_response:
alias_list = json.loads(human_response.content) + json.loads(mouse_response.content) + json.loads(other_response.content)
@@ -348,8 +348,13 @@ def jsonable_table_row(trait, dataset_name, index):
def retrieve_trait_info(trait, dataset, get_qtl_info=False):
assert dataset, "Dataset doesn't exist"
-
+
if dataset.type == 'Publish':
+ resource_id = hmac.data_hmac("{}:{}".format(dataset.id, trait.name))
+
+ the_url = "http://localhost:8080/run_action/?resource={}&user={}&branch=data&action=view".format(resource_id, g.user_session.user_id)
+ trait_data = json.loads(requests.get("http://localhost:8080/run_action/?resource={}&user={}&branch=data&action=view".format(resource_id, g.user_session.user_id)))
+
query = """
SELECT
PublishXRef.Id, InbredSet.InbredSetCode, Publication.PubMed_ID,
diff --git a/wqflask/base/webqtlConfig.py b/wqflask/base/webqtlConfig.py
index 018d5d54..55407123 100644
--- a/wqflask/base/webqtlConfig.py
+++ b/wqflask/base/webqtlConfig.py
@@ -58,6 +58,7 @@ PROTEIN_ATLAS_URL = "http://www.proteinatlas.org/search/%s"
OPEN_TARGETS_URL = "https://genetics.opentargets.org/gene/%s"
UNIPROT_URL = "https://www.uniprot.org/uniprot/%s"
RGD_URL = "https://rgd.mcw.edu/rgdweb/elasticResults.html?term=%s&category=Gene&species=%s"
+PHENOGEN_URL = "https://phenogen.org/gene.jsp?speciesCB=Rn&auto=Y&geneTxt=%s&genomeVer=rn6&section=geneEQTL"
# Temporary storage (note that this TMPDIR can be set as an
# environment variable - use utility.tools.TEMPDIR when you
diff --git a/wqflask/runserver.py b/wqflask/runserver.py
index 7c06356b..15572d97 100644
--- a/wqflask/runserver.py
+++ b/wqflask/runserver.py
@@ -9,6 +9,7 @@
from wqflask import app
+
import logging
import utility.logger
logger = utility.logger.getLogger(__name__ )
diff --git a/wqflask/utility/hmac.py b/wqflask/utility/hmac.py
index d8a0eace..b08be97e 100644
--- a/wqflask/utility/hmac.py
+++ b/wqflask/utility/hmac.py
@@ -3,6 +3,8 @@ from __future__ import print_function, division, absolute_import
import hmac
import hashlib
+from flask import url_for
+
from wqflask import app
def hmac_creation(stringy):
diff --git a/wqflask/utility/redis_tools.py b/wqflask/utility/redis_tools.py
index 0754e16f..15841032 100644
--- a/wqflask/utility/redis_tools.py
+++ b/wqflask/utility/redis_tools.py
@@ -1,17 +1,25 @@
from __future__ import print_function, division, absolute_import
+import uuid
import simplejson as json
import redis # used for collections
-Redis = redis.StrictRedis()
import logging
from flask import (render_template, flash)
+from utility import hmac
+
from utility.logger import getLogger
logger = getLogger(__name__)
+def get_redis_conn():
+ Redis = redis.StrictRedis(port=6380)
+ return Redis
+
+Redis = get_redis_conn()
+
def is_redis_available():
try:
Redis.ping()
@@ -70,11 +78,137 @@ def check_verification_code(code):
email_address = None
user_details = None
email_address = Redis.hget("verification_codes", code)
- return email_address
if email_address:
user_details = get_user_by_unique_column('email_address', email_address)
- return user_details
+ if user_details:
+ return user_details
+ else:
+ return None
+ else:
+ return None
+
+def get_user_groups(user_id):
+ #ZS: Get the groups where a user is an admin or a member and return lists corresponding to those two sets of groups
+ admin_group_ids = [] #ZS: Group IDs where user is an admin
+ user_group_ids = [] #ZS: Group IDs where user is a regular user
+ groups_list = Redis.hgetall("groups")
+ for key in groups_list:
+ group_ob = json.loads(groups_list[key])
+ group_admins = set(group_ob['admins'])
+ group_users = set(group_ob['users'])
+ if user_id in group_admins:
+ admin_group_ids.append(group_ob['id'])
+ elif user_id in group_users:
+ user_group_ids.append(group_ob['id'])
+ else:
+ continue
+
+ return admin_group_ids, user_group_ids
+
+def get_group_info(group_id):
+ group_json = Redis.hget("groups", group_id)
+ group_info = None
+ if group_json:
+ group_info = json.loads(group_json)
+
+ return group_info
+
+def create_group(admin_member_ids, user_member_ids = [], group_name = ""):
+ group_id = str(uuid.uuid4())
+ new_group = {
+ "id" : group_id,
+ "admins": admin_member_ids,
+ "users" : user_member_ids,
+ "name" : group_name,
+ "created_timestamp": datetime.datetime.utcnow().strftime('%b %d %Y %I:%M%p'),
+ "changed_timestamp": datetime.datetime.utcnow().strftime('%b %d %Y %I:%M%p')
+ }
+
+ Redis.hset("groups", group_id, new_group)
+
+ return new_group
+
+def delete_group(user_id, group_id):
+ #ZS: If user is an admin of a group, remove it from the groups hash
+ group_info = get_group_info(group_id)
+ if user_id in group_info["admins"]:
+ Redis.hdel("groups", group_id)
+ return get_user_groups(user_id)
+ else:
+ None
+
+def add_users_to_group(user_id, group_id, user_emails = [], admins = False): #ZS "admins" is just to indicate whether the users should be added to the groups admins or regular users set
+ group_info = get_group_info(group_id)
+ if user_id in group_info["admins"]: #ZS: Just to make sure that the user is an admin for the group, even though they shouldn't be able to reach this point unless they are
+ if admins:
+ group_users = set(group_info["admins"])
+ else:
+ group_users = set(group_info["users"])
+
+ for email in user_emails:
+ user_id = get_user_id("email_address", email)
+ group_users.add(user_id)
+
+ if admins:
+ group_info["admins"] = list(group_users)
+ else:
+ group_info["users"] = list(group_users)
+
+ group_info["changed_timestamp"] = datetime.datetime.utcnow().strftime('%b %d %Y %I:%M%p')
+ Redis.hset("groups", group_id, json.dumps(group_info))
+ return group_info
+ else:
+ return None
+
+def remove_users_from_group(user_id, users_to_remove_ids, group_id, user_type = "users"): #ZS: User type is because I assume admins can remove other admins
+ group_info = get_group_info(group_id)
+ if user_id in group_info["admins"]:
+ group_users = set(group_info[user_type])
+ group_users -= set(users_to_remove_ids)
+ group_info[user_type] = list(group_users)
+ group_info["changed_timestamp"] = datetime.datetime.utcnow().strftime('%b %d %Y %I:%M%p')
+ Redis.hset("groups", group_id, json.dumps(group_info))
+
+def change_group_name(user_id, group_id, new_name):
+ group_info = get_group_info(group_id)
+ if user_id in group_info["admins"]:
+ group_info["name"] = new_name
+ return group_info
else:
return None
- flash("Invalid code: Password reset code does not exist or might have expired!", "error")
+
+def get_resources():
+ resource_list = Redis.hgetall("resources")
+ return resource_list
+
+def get_resource_id(dataset_type, dataset_id, trait_id = None, all_resources = None):
+ if not all_resources:
+ all_resources = get_resources()
+
+ resource_list = [[key, json.loads(value)] for key, value in all_resources.items()]
+
+ if not trait_id:
+ matched_resources = [resource[0] for resource in resource_list if resource[1]['data']['dataset'] == dataset_id]
+ else:
+ matched_resources = [resource[0] for resource in resource_list if resource[1]['data']['dataset'] == dataset_id and resource[1]['data']['trait'] == trait_id]
+
+ if len(matched_resources):
+ return matched_resources[0]
+ else:
+ return False
+
+def get_resource_info(resource_id):
+ resource_info = Redis.hget("resources", resource_id)
+ return json.loads(resource_info)
+
+def add_resource(resource_info):
+
+ if 'trait' in resource_info['data']:
+ resource_id = hmac.data_hmac('{}:{}'.format(str(resource_info['data']['dataset']), str(resource_info['data']['trait'])))
+ else:
+ resource_id = hmac.data_hmac('{}'.format(str(resource_info['data']['dataset'])))
+
+ Redis.hset("resources", resource_id, json.dumps(resource_info))
+
+ return resource_info
diff --git a/wqflask/utility/startup_config.py b/wqflask/utility/startup_config.py
index 5a62cc50..817284dd 100644
--- a/wqflask/utility/startup_config.py
+++ b/wqflask/utility/startup_config.py
@@ -33,7 +33,7 @@ def app_config():
if page.status_code != 200:
raise Exception("API server not found!")
- import utility.elasticsearch_tools as es
- es.test_elasticsearch_connection()
+ # import utility.elasticsearch_tools as es
+ # es.test_elasticsearch_connection()
print("GN2 is running. Visit %s[http://localhost:%s/%s](%s)" % (BLUE,str(port),ENDC,get_setting("WEBSERVER_URL")))
diff --git a/wqflask/utility/tools.py b/wqflask/utility/tools.py
index 75bddb24..89d88516 100644
--- a/wqflask/utility/tools.py
+++ b/wqflask/utility/tools.py
@@ -233,7 +233,10 @@ def show_settings():
# Cached values
GN_VERSION = get_setting('GN_VERSION')
HOME = get_setting('HOME')
+SERVER_PORT = get_setting('SERVER_PORT')
WEBSERVER_MODE = get_setting('WEBSERVER_MODE')
+GN2_BASE_URL = get_setting('GN2_BASE_URL')
+GN2_BRANCH_URL = get_setting('GN2_BRANCH_URL')
GN_SERVER_URL = get_setting('GN_SERVER_URL')
SERVER_PORT = get_setting_int('SERVER_PORT')
SQL_URI = get_setting('SQL_URI')
@@ -267,10 +270,10 @@ if ORCID_CLIENT_ID != 'UNKNOWN' and ORCID_CLIENT_SECRET:
ORCID_CLIENT_ID+"&client_secret="+ORCID_CLIENT_SECRET
ORCID_TOKEN_URL = get_setting('ORCID_TOKEN_URL')
-ELASTICSEARCH_HOST = get_setting('ELASTICSEARCH_HOST')
-ELASTICSEARCH_PORT = get_setting('ELASTICSEARCH_PORT')
-import utility.elasticsearch_tools as es
-es.test_elasticsearch_connection()
+# ELASTICSEARCH_HOST = get_setting('ELASTICSEARCH_HOST')
+# ELASTICSEARCH_PORT = get_setting('ELASTICSEARCH_PORT')
+# import utility.elasticsearch_tools as es
+# es.test_elasticsearch_connection()
SMTP_CONNECT = get_setting('SMTP_CONNECT')
SMTP_USERNAME = get_setting('SMTP_USERNAME')
@@ -289,7 +292,7 @@ JS_GUIX_PATH = get_setting("JS_GUIX_PATH")
assert_dir(JS_GUIX_PATH)
assert_dir(JS_GUIX_PATH+'/cytoscape-panzoom')
-CSS_PATH = "UNKNOWN"
+CSS_PATH = JS_GUIX_PATH # The CSS is bundled together with the JS
# assert_dir(JS_PATH)
JS_TWITTER_POST_FETCHER_PATH = get_setting("JS_TWITTER_POST_FETCHER_PATH",js_path("javascript-twitter-post-fetcher"))
diff --git a/wqflask/wqflask/__init__.py b/wqflask/wqflask/__init__.py
index 399e794d..62e98b36 100644
--- a/wqflask/wqflask/__init__.py
+++ b/wqflask/wqflask/__init__.py
@@ -21,5 +21,5 @@ app.jinja_env.globals.update(
numify = formatting.numify
)
-import wqflask.views
-from wqflask.api import router \ No newline at end of file
+from wqflask.api import router
+import wqflask.views \ No newline at end of file
diff --git a/wqflask/wqflask/api/gen_menu.py b/wqflask/wqflask/api/gen_menu.py
index 7d2d243c..c7bcb65d 100644
--- a/wqflask/wqflask/api/gen_menu.py
+++ b/wqflask/wqflask/api/gen_menu.py
@@ -1,7 +1,6 @@
from __future__ import print_function, division
import sys
-import json
from flask import g
@@ -23,31 +22,17 @@ def gen_dropdown_json():
types = get_types(groups)
datasets = get_datasets(types)
- #species.append(('All Species', 'All Species'))
- #groups['All Species'] = [('All Groups', 'All Groups')]
- #types['All Species'] = {}
- #types['All Species']['All Groups'] = [('Phenotypes', 'Phenotypes')]
- #datasets['All Species'] = {}
- #datasets['All Species']['All Groups'] = {}
- #datasets['All Species']['All Groups']['Phenotypes'] = [('All Phenotypes','All Phenotypes')]
-
data = dict(species=species,
groups=groups,
types=types,
datasets=datasets)
- output_file = """./wqflask/static/new/javascript/dataset_menu_structure.json"""
-
- with open(output_file, 'w') as fh:
- json.dump(data, fh, indent=3, sort_keys=True)
-
return data
def get_species():
"""Build species list"""
results = g.db.execute("""SELECT Name, MenuName
FROM Species
- WHERE Species.Name != 'macaque monkey'
ORDER BY OrderId""").fetchall()
species = []
@@ -61,15 +46,6 @@ def get_groups(species):
groups = {}
for species_name, _species_full_name in species:
groups[species_name] = []
- # results = g.db.execute("""SELECT InbredSet.Name, InbredSet.FullName
- # FROM InbredSet, Species, ProbeFreeze, GenoFreeze, PublishFreeze
- # WHERE Species.Name = '{}' AND
- # InbredSet.SpeciesId = Species.Id AND
- # (PublishFreeze.InbredSetId = InbredSet.Id OR
- # GenoFreeze.InbredSetId = InbredSet.Id OR
- # ProbeFreeze.InbredSetId = InbredSet.Id)
- # GROUP by InbredSet.Name
- # ORDER BY InbredSet.FullName""".format(species_name)).fetchall()
results = g.db.execute("""SELECT InbredSet.Name, InbredSet.FullName, IFNULL(InbredSet.Family, 'None')
FROM InbredSet, Species
diff --git a/wqflask/wqflask/collect.py b/wqflask/wqflask/collect.py
index fa6e03b4..b22e0004 100644
--- a/wqflask/wqflask/collect.py
+++ b/wqflask/wqflask/collect.py
@@ -108,7 +108,7 @@ def collections_new():
if 'existing_collection' not in params:
collections = g.user_session.user_collections
for collection in collections:
- if collection["name"] == "Default Collection":
+ if collection["name"] == "Your Default Collection":
collection_id = collection["id"]
collection_name = collection["name"]
default_collection_exists = True
@@ -185,7 +185,7 @@ def delete_collection():
if len(uc_id.split(":")) > 1:
flash("We've deleted the selected collections.", "alert-info")
else:
- flash("We've deleted the collection: {}.".format(uc_id), "alert-info")
+ flash("We've deleted the selected collection.", "alert-info")
else:
flash("We've deleted the collection: {}.".format(collection_name), "alert-info")
diff --git a/wqflask/wqflask/correlation/show_corr_results.py b/wqflask/wqflask/correlation/show_corr_results.py
index cc74c8e4..b099b83d 100644
--- a/wqflask/wqflask/correlation/show_corr_results.py
+++ b/wqflask/wqflask/correlation/show_corr_results.py
@@ -609,6 +609,7 @@ def get_header_fields(data_type, corr_method):
if corr_method == "spearman":
header_fields = ['Index',
'Record',
+ 'Abbreviation',
'Description',
'Authors',
'Year',
@@ -621,6 +622,7 @@ def get_header_fields(data_type, corr_method):
else:
header_fields = ['Index',
'Record',
+ 'Abbreviation',
'Description',
'Authors',
'Year',
diff --git a/wqflask/wqflask/ctl/ctl_analysis.py b/wqflask/wqflask/ctl/ctl_analysis.py
index 6fda02fd..4415b86a 100644
--- a/wqflask/wqflask/ctl/ctl_analysis.py
+++ b/wqflask/wqflask/ctl/ctl_analysis.py
@@ -20,7 +20,7 @@ from base import data_set
from base import trait as TRAIT
from utility import helper_functions
-from utility.tools import locate
+from utility.tools import locate, GN2_BRANCH_URL
from rpy2.robjects.packages import importr
@@ -56,6 +56,8 @@ class CTL(object):
self.edges_list = []
logger.info("Obtained pointers to CTL functions")
+ self.gn2_url = GN2_BRANCH_URL
+
def addNode(self, gt):
node_dict = { 'data' : {'id' : str(gt.name) + ":" + str(gt.dataset.name),
'sid' : str(gt.name),
diff --git a/wqflask/wqflask/do_search.py b/wqflask/wqflask/do_search.py
index 05caa100..b0ca5ced 100644
--- a/wqflask/wqflask/do_search.py
+++ b/wqflask/wqflask/do_search.py
@@ -13,6 +13,7 @@ import sys
# sys.path.append("..") Never in a running webserver
from db import webqtlDatabaseFunction
+from utility.tools import GN2_BASE_URL
import logging
from utility.logger import getLogger
@@ -919,7 +920,7 @@ def get_aliases(symbol, species):
return []
filtered_aliases = []
- response = requests.get("http://gn2.genenetwork.org/gn3/gene/aliases/" + symbol_string)
+ response = requests.get(GN2_BASE_URL + "/gn3/gene/aliases/" + symbol_string)
if response:
alias_list = json.loads(response.content)
diff --git a/wqflask/wqflask/gsearch.py b/wqflask/wqflask/gsearch.py
index 3d9b508a..04e3d578 100644
--- a/wqflask/wqflask/gsearch.py
+++ b/wqflask/wqflask/gsearch.py
@@ -75,7 +75,10 @@ class GSearch(object):
this_trait['group'] = line[1]
this_trait['tissue'] = line[2]
this_trait['symbol'] = line[6]
- this_trait['description'] = line[7].decode('utf-8', 'replace')
+ if line[7]:
+ this_trait['description'] = line[7].decode('utf-8', 'replace')
+ else:
+ this_trait['description'] = "N/A"
this_trait['location_repr'] = 'N/A'
if (line[8] != "NULL" and line[8] != "") and (line[9] != 0):
this_trait['location_repr'] = 'Chr%s: %.6f' % (line[8], float(line[9]))
diff --git a/wqflask/wqflask/marker_regression/display_mapping_results.py b/wqflask/wqflask/marker_regression/display_mapping_results.py
index a7e11738..a648667b 100644
--- a/wqflask/wqflask/marker_regression/display_mapping_results.py
+++ b/wqflask/wqflask/marker_regression/display_mapping_results.py
@@ -166,6 +166,7 @@ class DisplayMappingResults(object):
#Needing for form submission when doing single chr mapping or remapping after changing options
self.samples = start_vars['samples']
self.vals = start_vars['vals']
+ self.transform = start_vars['transform']
self.mapping_method = start_vars['mapping_method']
self.mapping_results_path = start_vars['mapping_results_path']
if self.mapping_method == "rqtl_geno":
@@ -233,6 +234,8 @@ class DisplayMappingResults(object):
self.covariates = start_vars['covariates']
if 'maf' in start_vars.keys():
self.maf = start_vars['maf']
+ else:
+ self.maf = ""
if 'output_files' in start_vars.keys():
self.output_files = start_vars['output_files']
if 'use_loco' in start_vars.keys() and self.mapping_method == "gemma":
@@ -262,14 +265,12 @@ class DisplayMappingResults(object):
else:
self.colorCollection = [self.LRS_COLOR]
+ self.dataset.group.genofile = self.genofile_string.split(":")[0]
if self.mapping_method == "reaper" and self.manhattan_plot != True:
self.genotype = self.dataset.group.read_genotype_file(use_reaper=True)
else:
self.genotype = self.dataset.group.read_genotype_file()
- #if self.mapping_method == "rqtl_geno" and self.genotype.filler == True:
- # self.genotype = self.genotype.read_rdata_output(self.qtlresults)
-
#Darwing Options
try:
if self.selectedChr > -1:
@@ -507,7 +508,10 @@ class DisplayMappingResults(object):
yTopOffset = max(90, yTopOffset)
else:
if self.legendChecked:
- yTopOffset = max(90, yTopOffset)
+ if self.covariates != "" and self.controlLocus and self.doControl != "false":
+ yTopOffset = max(120, yTopOffset)
+ else:
+ yTopOffset = max(100, yTopOffset)
else:
pass
@@ -1758,9 +1762,9 @@ class DisplayMappingResults(object):
break
if all_int:
- max_lrs_width = canvas.stringWidth("%d" % LRS_LOD_Max, font=LRSScaleFont) + 30
+ max_lrs_width = canvas.stringWidth("%d" % LRS_LOD_Max, font=LRSScaleFont) + 40
else:
- max_lrs_width = canvas.stringWidth("%2.1f" % LRS_LOD_Max, font=LRSScaleFont) + 20
+ max_lrs_width = canvas.stringWidth("%2.1f" % LRS_LOD_Max, font=LRSScaleFont) + 30
#draw the "LRS" or "LOD" string to the left of the axis
canvas.drawString(self.LRS_LOD, xLeftOffset - max_lrs_width - 15*(zoom-1), \
@@ -1896,13 +1900,16 @@ class DisplayMappingResults(object):
this_chr = str(self.ChrList[self.selectedChr][1]+1)
if self.selectedChr == -1 or str(qtlresult['chr']) == this_chr:
- if self.plotScale != "physic" and self.genotype.filler == True:
- if self.selectedChr != -1:
- start_cm = self.genotype[self.selectedChr - 1][0].cM
- Xc = startPosX + (qtlresult['Mb'] - start_cm)*plotXScale
- else:
- start_cm = self.genotype[previous_chr_as_int][0].cM
- Xc = startPosX + ((qtlresult['Mb']-start_cm-startMb)*plotXScale)*(((qtlresult['Mb']-start_cm-startMb)*plotXScale)/((qtlresult['Mb']-start_cm-startMb+self.GraphInterval)*plotXScale))
+ if self.plotScale != "physic" and self.mapping_method == "reaper" and not self.manhattan_plot:
+ Xc = startPosX + (qtlresult['cM']-startMb)*plotXScale
+ if hasattr(self.genotype, "filler"):
+ if self.genotype.filler:
+ if self.selectedChr != -1:
+ start_cm = self.genotype[self.selectedChr - 1][0].cM
+ Xc = startPosX + (qtlresult['Mb'] - start_cm)*plotXScale
+ else:
+ start_cm = self.genotype[previous_chr_as_int][0].cM
+ Xc = startPosX + ((qtlresult['Mb']-start_cm-startMb)*plotXScale)*(((qtlresult['Mb']-start_cm-startMb)*plotXScale)/((qtlresult['Mb']-start_cm-startMb+self.GraphInterval)*plotXScale))
else:
Xc = startPosX + (qtlresult['Mb']-startMb)*plotXScale
diff --git a/wqflask/wqflask/marker_regression/rqtl_mapping.py b/wqflask/wqflask/marker_regression/rqtl_mapping.py
index aae8e602..e4a4d127 100644
--- a/wqflask/wqflask/marker_regression/rqtl_mapping.py
+++ b/wqflask/wqflask/marker_regression/rqtl_mapping.py
@@ -1,17 +1,40 @@
import rpy2.robjects as ro
import rpy2.robjects.numpy2ri as np2r
import numpy as np
+import json
+
+from flask import g
from base.webqtlConfig import TMPDIR
from base.trait import GeneralTrait
from base.data_set import create_dataset
from utility import webqtlUtil
from utility.tools import locate, TEMPDIR
+from flask import g
import utility.logger
logger = utility.logger.getLogger(__name__ )
-def run_rqtl_geno(vals, samples, dataset, method, model, permCheck, num_perm, perm_strata_list, do_control, control_marker, manhattan_plot, pair_scan, cofactors):
+# Get a trait's type (numeric, categorical, etc) from the DB
+def get_trait_data_type(trait_db_string):
+ logger.info("get_trait_data_type");
+ the_query = "SELECT value FROM TraitMetadata WHERE type='trait_data_type'"
+ logger.info("the_query done");
+ results_json = g.db.execute(the_query).fetchone()
+ logger.info("the_query executed");
+ results_ob = json.loads(results_json[0])
+ logger.info("json results loaded");
+ if trait_db_string in results_ob:
+ logger.info("found");
+ return results_ob[trait_db_string]
+ else:
+ logger.info("not found");
+ return "numeric"
+
+
+# Run qtl mapping using R/qtl
+def run_rqtl_geno(vals, samples, dataset, mapping_scale, method, model, permCheck, num_perm, perm_strata_list, do_control, control_marker, manhattan_plot, pair_scan, cofactors):
+ logger.info("Start run_rqtl_geno");
## Get pointers to some common R functions
r_library = ro.r["library"] # Map the library function
r_c = ro.r["c"] # Map the c function
@@ -21,6 +44,8 @@ def run_rqtl_geno(vals, samples, dataset, method, model, permCheck, num_perm, pe
print(r_library("qtl")) # Load R/qtl
+ logger.info("QTL library loaded");
+
## Get pointers to some R/qtl functions
scanone = ro.r["scanone"] # Map the scanone function
scantwo = ro.r["scantwo"] # Map the scantwo function
@@ -33,32 +58,48 @@ def run_rqtl_geno(vals, samples, dataset, method, model, permCheck, num_perm, pe
# genofilelocation = locate(crossname + ".RData", "genotype/rdata")
# cross_object = read_cross_from_rdata(genofilelocation) # Map the local GENOtoCSVR function
#except:
- generate_cross_from_geno(dataset)
+
+ if mapping_scale == "morgan":
+ scale_units = "cM"
+ else:
+ scale_units = "Mb"
+
+ generate_cross_from_geno(dataset, scale_units)
GENOtoCSVR = ro.r["GENOtoCSVR"] # Map the local GENOtoCSVR function
crossfilelocation = TMPDIR + crossname + ".cross"
- genofilelocation = locate(dataset.group.genofile, "genotype")
+ if dataset.group.genofile:
+ genofilelocation = locate(dataset.group.genofile, "genotype")
+ else:
+ genofilelocation = locate(dataset.group.name + ".geno", "genotype")
+ logger.info("Going to create a cross from geno");
cross_object = GENOtoCSVR(genofilelocation, crossfilelocation) # TODO: Add the SEX if that is available
-
+ logger.info("before calc_genoprob");
if manhattan_plot:
cross_object = calc_genoprob(cross_object)
else:
- cross_object = calc_genoprob(cross_object, step=1, stepwidth="max")
-
+ cross_object = calc_genoprob(cross_object, step=5, stepwidth="max")
+ logger.info("after calc_genoprob");
pheno_string = sanitize_rqtl_phenotype(vals)
-
+ logger.info("phenostring done");
+ names_string = sanitize_rqtl_names(samples)
+ logger.info("sanitized pheno and names");
cross_object = add_phenotype(cross_object, pheno_string, "the_pheno") # Add the phenotype
-
+ cross_object = add_names(cross_object, names_string, "the_names") # Add the phenotype
+ logger.info("Added pheno and names");
# Scan for QTLs
marker_covars = create_marker_covariates(control_marker, cross_object) # Create the additive covariate markers
-
+ logger.info("Marker covars done");
if cofactors != "":
- cross_object, trait_covars = add_cofactors(cross_object, dataset, cofactors, samples) # Create the covariates from selected traits
+ logger.info("Cofactors: " + cofactors);
+ cross_object, trait_covars = add_cofactors(cross_object, dataset, cofactors, samples) # Create the covariates from selected traits
ro.r('all_covars <- cbind(marker_covars, trait_covars)')
else:
ro.r('all_covars <- marker_covars')
-
+ #logger.info("Saving");
+ #ro.r('save.image(file = "/home/dannya/gn2-danny/cross.RData")')
+ #logger.info("Saving Done");
covars = ro.r['all_covars']
-
+ #DEBUG to save the session object to file
if pair_scan:
if do_control == "true":
logger.info("Using covariate"); result_data_frame = scantwo(cross_object, pheno = "the_pheno", addcovar = covars, model=model, method=method, n_cluster = 16)
@@ -105,25 +146,22 @@ def generate_cross_from_rdata(dataset):
}
""" % (rdata_location))
-def generate_cross_from_geno(dataset): # TODO: Need to figure out why some genofiles have the wrong format and don't convert properly
+def generate_cross_from_geno(dataset, scale_units): # TODO: Need to figure out why some genofiles have the wrong format and don't convert properly
ro.r("""
trim <- function( x ) { gsub("(^[[:space:]]+|[[:space:]]+$)", "", x) }
-
getGenoCode <- function(header, name = 'unk'){
mat = which(unlist(lapply(header,function(x){ length(grep(paste('@',name,sep=''), x)) })) == 1)
return(trim(strsplit(header[mat],':')[[1]][2]))
}
-
GENOtoCSVR <- function(genotypes = '%s', out = 'cross.csvr', phenotype = NULL, sex = NULL, verbose = FALSE){
header = readLines(genotypes, 40) # Assume a geno header is not longer than 40 lines
toskip = which(unlist(lapply(header, function(x){ length(grep("Chr\t", x)) })) == 1)-1 # Major hack to skip the geno headers
-
type <- getGenoCode(header, 'type')
if(type == '4-way'){
genocodes <- c('1','2','3','4')
} else {
- genocodes <- c(getGenoCode(header, 'mat'), getGenoCode(header, 'het'), getGenoCode(header, 'pat')) # Get the genotype codes
+ genocodes <- c(getGenoCode(header, 'mat'), getGenoCode(header, 'het'), getGenoCode(header, 'pat')) # Get the genotype codes
}
genodata <- read.csv(genotypes, sep='\t', skip=toskip, header=TRUE, na.strings=getGenoCode(header,'unk'), colClasses='character', comment.char = '#')
cat('Genodata:', toskip, " ", dim(genodata), genocodes, '\n')
@@ -131,14 +169,26 @@ def generate_cross_from_geno(dataset): # TODO: Need to figure out why som
if(is.null(sex)) sex <- rep('m', (ncol(genodata)-4)) # If there isn't a sex phenotype, treat all as males
outCSVR <- rbind(c('Pheno', '', '', phenotype), # Phenotype
c('sex', '', '', sex), # Sex phenotype for the mice
- cbind(genodata[,c('Locus','Chr', 'cM')], genodata[, 5:ncol(genodata)])) # Genotypes
+ cbind(genodata[,c('Locus','Chr', '%s')], genodata[, 5:ncol(genodata)])) # Genotypes
write.table(outCSVR, file = out, row.names=FALSE, col.names=FALSE,quote=FALSE, sep=',') # Save it to a file
require(qtl)
- cross = read.cross(file=out, 'csvr', genotypes=genocodes) # Load the created cross file using R/qtl read.cross
- if(type == 'riset') cross <- convert2riself(cross) # If its a RIL, convert to a RIL in R/qtl
+ if(type == '4-way'){
+ cat('Loading in as 4-WAY\n')
+ cross = read.cross(file=out, 'csvr', genotypes=genocodes, crosstype="4way", convertXdata=FALSE) # Load the created cross file using R/qtl read.cross
+ }else if(type == 'f2'){
+ cat('Loading in as F2\n')
+ cross = read.cross(file=out, 'csvr', genotypes=genocodes, crosstype="f2") # Load the created cross file using R/qtl read.cross
+ }else{
+ cat('Loading in as normal\n')
+ cross = read.cross(file=out, 'csvr', genotypes=genocodes) # Load the created cross file using R/qtl read.cross
+ }
+ if(type == 'riset'){
+ cat('Converting to RISELF\n')
+ cross <- convert2riself(cross) # If its a RIL, convert to a RIL in R/qtl
+ }
return(cross)
}
- """ % (dataset.group.genofile))
+ """ % (dataset.group.genofile, scale_units))
def add_perm_strata(cross, perm_strata):
col_string = 'c("the_strata")'
@@ -171,9 +221,61 @@ def sanitize_rqtl_phenotype(vals):
return pheno_as_string
+def sanitize_rqtl_names(vals):
+ pheno_as_string = "c("
+ for i, val in enumerate(vals):
+ if val == "x":
+ if i < (len(vals) - 1):
+ pheno_as_string += "NA,"
+ else:
+ pheno_as_string += "NA"
+ else:
+ if i < (len(vals) - 1):
+ pheno_as_string += "'" + str(val) + "',"
+ else:
+ pheno_as_string += "'" + str(val) + "'"
+ pheno_as_string += ")"
+
+ return pheno_as_string
+
def add_phenotype(cross, pheno_as_string, col_name):
ro.globalenv["the_cross"] = cross
- ro.r('the_cross$pheno <- cbind(pull.pheno(the_cross), ' + col_name + ' = '+ pheno_as_string +')')
+ ro.r('pheno <- data.frame(pull.pheno(the_cross))')
+ ro.r('the_cross$pheno <- cbind(pheno, ' + col_name + ' = as.numeric('+ pheno_as_string +'))')
+ return ro.r["the_cross"]
+
+def add_categorical_covar(cross, covar_as_string, i):
+ ro.globalenv["the_cross"] = cross
+ logger.info("cross set");
+ ro.r('covar <- as.factor(' + covar_as_string + ')')
+ logger.info("covar set");
+ ro.r('newcovar <- model.matrix(~covar-1)')
+ logger.info("model.matrix finished");
+ ro.r('cat("new covar columns", ncol(newcovar), "\n")')
+ nCol = ro.r('ncol(newcovar)')
+ logger.info("ncol covar done: " + str(nCol[0]));
+ ro.r('pheno <- data.frame(pull.pheno(the_cross))')
+ logger.info("pheno pulled from cross");
+ nCol = int(nCol[0])
+ logger.info("nCol python int:" + str(nCol));
+ col_names = []
+ #logger.info("loop")
+ for x in range(1, (nCol+1)):
+ #logger.info("loop" + str(x));
+ col_name = "covar_" + str(i) + "_" + str(x)
+ #logger.info("col_name" + col_name);
+ ro.r('the_cross$pheno <- cbind(pheno, ' + col_name + ' = newcovar[,' + str(x) + '])')
+ col_names.append(col_name)
+ #logger.info("loop" + str(x) + "done");
+
+ logger.info("returning from add_categorical_covar");
+ return ro.r["the_cross"], col_names
+
+
+def add_names(cross, names_as_string, col_name):
+ ro.globalenv["the_cross"] = cross
+ ro.r('pheno <- data.frame(pull.pheno(the_cross))')
+ ro.r('the_cross$pheno <- cbind(pheno, ' + col_name + ' = '+ names_as_string +')')
return ro.r["the_cross"]
def pull_var(var_name, cross, var_string):
@@ -188,6 +290,7 @@ def add_cofactors(cross, this_dataset, covariates, samples):
covariate_list = covariates.split(",")
covar_name_string = "c("
for i, covariate in enumerate(covariate_list):
+ logger.info("Covariate: " + covariate);
this_covar_data = []
covar_as_string = "c("
trait_name = covariate.split(":")[0]
@@ -199,8 +302,8 @@ def add_cofactors(cross, this_dataset, covariates, samples):
this_dataset.group.get_samplelist()
trait_samples = this_dataset.group.samplelist
trait_sample_data = trait_ob.data
- for index, sample in enumerate(trait_samples):
- if sample in samples:
+ for index, sample in enumerate(samples):
+ if sample in trait_samples:
if sample in trait_sample_data:
sample_value = trait_sample_data[sample].value
this_covar_data.append(sample_value)
@@ -215,18 +318,33 @@ def add_cofactors(cross, this_dataset, covariates, samples):
covar_as_string += ")"
- col_name = "covar_" + str(i)
- cross = add_phenotype(cross, covar_as_string, col_name)
+ datatype = get_trait_data_type(covariate)
+ logger.info("Covariate: " + covariate + " is of type: " + datatype);
+ if(datatype == "categorical"): # Cat variable
+ logger.info("call of add_categorical_covar");
+ cross, col_names = add_categorical_covar(cross, covar_as_string, i) # Expand and add it to the cross
+ logger.info("add_categorical_covar returned");
+ for z, col_name in enumerate(col_names): # Go through the additional covar names
+ if i < (len(covariate_list) - 1):
+ covar_name_string += '"' + col_name + '", '
+ else:
+ if(z < (len(col_names) -1)):
+ covar_name_string += '"' + col_name + '", '
+ else:
+ covar_name_string += '"' + col_name + '"'
- if i < (len(covariate_list) - 1):
- covar_name_string += '"' + col_name + '", '
+ logger.info("covar_name_string:" + covar_name_string);
else:
+ col_name = "covar_" + str(i)
+ cross = add_phenotype(cross, covar_as_string, col_name)
+ if i < (len(covariate_list) - 1):
+ covar_name_string += '"' + col_name + '", '
+ else:
covar_name_string += '"' + col_name + '"'
covar_name_string += ")"
-
+ logger.info("covar_name_string:" + covar_name_string);
covars_ob = pull_var("trait_covars", cross, covar_name_string)
-
return cross, covars_ob
def create_marker_covariates(control_marker, cross):
@@ -239,7 +357,7 @@ def create_marker_covariates(control_marker, cross):
ro.r('covnames <- covnames[covInGeno]')
ro.r("cat('covnames (purged): ', covnames,'\n')")
ro.r('marker_covars <- genotypes[,covnames]') # Get the covariate matrix by using the marker name as index to the genotype file
-
+ # TODO: Create a design matrix from the marker covars for the markers in case of an F2, 4way, etc
return ro.r["marker_covars"]
def process_pair_scan_results(result):
@@ -286,4 +404,16 @@ def process_rqtl_results(result, species_name): # TODO: how to make this
marker['lod_score'] = output[i][2]
qtl_results.append(marker)
- return qtl_results \ No newline at end of file
+ return qtl_results
+
+def get_trait_data_type(trait_db_string):
+ # Get a trait's type (numeric, categorical, etc) from the DB
+ the_query = "SELECT value FROM TraitMetadata WHERE type='trait_data_type'"
+ results_json = g.db.execute(the_query).fetchone()
+
+ results_ob = json.loads(results_json[0])
+
+ if trait_db_string in results_ob:
+ return results_ob[trait_db_string]
+ else:
+ return "numeric"
diff --git a/wqflask/wqflask/marker_regression/run_mapping.py b/wqflask/wqflask/marker_regression/run_mapping.py
index e191902c..5f7710ab 100644
--- a/wqflask/wqflask/marker_regression/run_mapping.py
+++ b/wqflask/wqflask/marker_regression/run_mapping.py
@@ -124,7 +124,7 @@ class RunMapping(object):
self.samples.append(sample)
self.vals.append(value)
- self.num_vals = start_vars['num_vals']
+ self.num_vals = len(self.vals)
#ZS: Check if genotypes exist in the DB in order to create links for markers
@@ -150,8 +150,14 @@ class RunMapping(object):
self.suggestive = ""
self.significant = ""
self.pair_scan = False # Initializing this since it is checked in views to determine which template to use
+ if 'transform' in start_vars:
+ self.transform = start_vars['transform']
+ else:
+ self.transform = ""
self.score_type = "LRS" #ZS: LRS or LOD
self.mapping_scale = "physic"
+ if "mapping_scale" in start_vars:
+ self.mapping_scale = start_vars['mapping_scale']
self.num_perm = 0
self.perm_output = []
self.bootstrap_results = []
@@ -241,7 +247,6 @@ class RunMapping(object):
perm_strata = get_perm_strata(self.this_trait, primary_samples, self.categorical_vars, self.samples)
self.score_type = "LOD"
- #self.mapping_scale = "morgan"
self.control_marker = start_vars['control_marker']
self.do_control = start_vars['do_control']
if 'mapmethod_rqtl_geno' in start_vars:
@@ -252,9 +257,9 @@ class RunMapping(object):
#if start_vars['pair_scan'] == "true":
# self.pair_scan = True
if self.permCheck and self.num_perm > 0:
- self.perm_output, self.suggestive, self.significant, results = rqtl_mapping.run_rqtl_geno(self.vals, self.samples, self.dataset, self.method, self.model, self.permCheck, self.num_perm, perm_strata, self.do_control, self.control_marker, self.manhattan_plot, self.pair_scan, self.covariates)
+ self.perm_output, self.suggestive, self.significant, results= rqtl_mapping.run_rqtl_geno(self.vals, self.samples, self.dataset, self.mapping_scale, self.method, self.model, self.permCheck, self.num_perm, perm_strata, self.do_control, self.control_marker, self.manhattan_plot, self.pair_scan, self.covariates)
else:
- results = rqtl_mapping.run_rqtl_geno(self.vals, self.samples, self.dataset, self.method, self.model, self.permCheck, self.num_perm, perm_strata, self.do_control, self.control_marker, self.manhattan_plot, self.pair_scan, self.covariates)
+ results = rqtl_mapping.run_rqtl_geno(self.vals, self.samples, self.dataset, self.mapping_scale, self.method, self.model, self.permCheck, self.num_perm, perm_strata, self.do_control, self.control_marker, self.manhattan_plot, self.pair_scan, self.covariates)
elif self.mapping_method == "reaper":
if "startMb" in start_vars: #ZS: Check if first time page loaded, so it can default to ON
if "additiveCheck" in start_vars:
@@ -426,7 +431,7 @@ class RunMapping(object):
with Bench("Trimming Markers for Table"):
self.trimmed_markers = trim_markers_for_table(results)
- chr_lengths = get_chr_lengths(self.mapping_scale, self.dataset, self.qtl_results)
+ chr_lengths = get_chr_lengths(self.mapping_scale, self.mapping_method, self.dataset, self.qtl_results)
#ZS: For zooming into genome browser, need to pass chromosome name instead of number
if self.dataset.group.species == "mouse":
@@ -640,7 +645,7 @@ def geno_db_exists(this_dataset):
except:
return "False"
-def get_chr_lengths(mapping_scale, dataset, qtl_results):
+def get_chr_lengths(mapping_scale, mapping_method, dataset, qtl_results):
chr_lengths = []
if mapping_scale == "physic":
for i, the_chr in enumerate(dataset.species.chromosomes.chromosomes):
@@ -663,8 +668,12 @@ def get_chr_lengths(mapping_scale, dataset, qtl_results):
this_chr = chr_as_num
highest_pos = 0
else:
- if float(result['Mb']) > highest_pos:
- highest_pos = float(result['Mb'])
+ if mapping_method == "reaper":
+ if float(result['cM']) > highest_pos:
+ highest_pos = float(result['cM'])
+ else:
+ if float(result['Mb']) > highest_pos:
+ highest_pos = float(result['Mb'])
return chr_lengths
diff --git a/wqflask/wqflask/network_graph/network_graph.py b/wqflask/wqflask/network_graph/network_graph.py
index a332db46..152e4168 100644
--- a/wqflask/wqflask/network_graph/network_graph.py
+++ b/wqflask/wqflask/network_graph/network_graph.py
@@ -47,6 +47,7 @@ from utility.TDCell import TDCell
from base.trait import GeneralTrait
from base import data_set
from utility import webqtlUtil, helper_functions, corr_result_helpers
+from utility.tools import GN2_BRANCH_URL
from db import webqtlDatabaseFunction
import utility.webqtlUtil #this is for parallel computing only.
from wqflask.correlation import correlation_functions
@@ -195,6 +196,7 @@ class NetworkGraph(object):
self.nodes_list.append(node_dict)
self.elements = json.dumps(self.nodes_list + self.edges_list)
+ self.gn2_url = GN2_BRANCH_URL
groups = []
for sample in self.all_sample_list:
diff --git a/wqflask/wqflask/search_results.py b/wqflask/wqflask/search_results.py
index 698389ab..8f702d58 100644
--- a/wqflask/wqflask/search_results.py
+++ b/wqflask/wqflask/search_results.py
@@ -28,6 +28,7 @@ from flask import render_template, Flask, g
from utility import formatting
from utility import hmac
+from utility.tools import GN2_BASE_URL
from utility.type_checking import is_float, is_int, is_str, get_float, get_int, get_string
from utility.logger import getLogger
@@ -295,7 +296,7 @@ def get_aliases(symbol_list, species):
symbols_string = ",".join(updated_symbols)
filtered_aliases = []
- response = requests.get("http://gn2.genenetwork.org/gn3/gene/aliases2/" + symbols_string)
+ response = requests.get(GN2_BASE_URL + "/gn3/gene/aliases2/" + symbols_string)
if response:
alias_lists = json.loads(response.content)
seen = set()
diff --git a/wqflask/wqflask/show_trait/SampleList.py b/wqflask/wqflask/show_trait/SampleList.py
index 7e126a36..ad78ebcc 100644
--- a/wqflask/wqflask/show_trait/SampleList.py
+++ b/wqflask/wqflask/show_trait/SampleList.py
@@ -14,8 +14,6 @@ import simplejson as json
import itertools
-from utility.elasticsearch_tools import get_elasticsearch_connection
-
import utility.logger
logger = utility.logger.getLogger(__name__ )
@@ -158,47 +156,47 @@ class SampleList(object):
return any(sample.variance for sample in self.sample_list)
-def get_transform_vals(dataset, trait):
- es = get_elasticsearch_connection(for_user=False)
-
- logger.info("DATASET NAME:", dataset.name)
-
- query = '{"bool": {"must": [{"match": {"name": "%s"}}, {"match": {"dataset": "%s"}}]}}' % (trait.name, dataset.name)
-
- es_body = {
- "query": {
- "bool": {
- "must": [
- {
- "match": {
- "name": "%s" % (trait.name)
- }
- },
- {
- "match": {
- "dataset": "%s" % (dataset.name)
- }
- }
- ]
- }
- }
- }
-
- response = es.search( index = "traits", doc_type = "trait", body = es_body )
- logger.info("THE RESPONSE:", response)
- results = response['hits']['hits']
-
- if len(results) > 0:
- samples = results[0]['_source']['samples']
-
- sample_dict = {}
- for sample in samples:
- sample_dict[sample['name']] = sample['qnorm']
-
- #logger.info("SAMPLE DICT:", sample_dict)
- return sample_dict
- else:
- return None
+# def get_transform_vals(dataset, trait):
+# es = get_elasticsearch_connection(for_user=False)
+
+# logger.info("DATASET NAME:", dataset.name)
+
+# query = '{"bool": {"must": [{"match": {"name": "%s"}}, {"match": {"dataset": "%s"}}]}}' % (trait.name, dataset.name)
+
+# es_body = {
+# "query": {
+# "bool": {
+# "must": [
+# {
+# "match": {
+# "name": "%s" % (trait.name)
+# }
+# },
+# {
+# "match": {
+# "dataset": "%s" % (dataset.name)
+# }
+# }
+# ]
+# }
+# }
+# }
+
+# response = es.search( index = "traits", doc_type = "trait", body = es_body )
+# logger.info("THE RESPONSE:", response)
+# results = response['hits']['hits']
+
+# if len(results) > 0:
+# samples = results[0]['_source']['samples']
+
+# sample_dict = {}
+# for sample in samples:
+# sample_dict[sample['name']] = sample['qnorm']
+
+# #logger.info("SAMPLE DICT:", sample_dict)
+# return sample_dict
+# else:
+# return None
def natural_sort_key(x):
"""Get expected results when using as a key for sort - ints or strings are sorted properly"""
diff --git a/wqflask/wqflask/show_trait/export_trait_data.py b/wqflask/wqflask/show_trait/export_trait_data.py
index 7ca4a4c0..107f87c6 100644
--- a/wqflask/wqflask/show_trait/export_trait_data.py
+++ b/wqflask/wqflask/show_trait/export_trait_data.py
@@ -4,11 +4,17 @@ import simplejson as json
from pprint import pformat as pf
+from base.trait import GeneralTrait
+from base import data_set
+
def export_sample_table(targs):
sample_data = json.loads(targs['export_data'])
trait_name = targs['trait_display_name']
- final_sample_data = []
+
+ meta_data = get_export_metadata(targs['trait_id'], targs['dataset'])
+
+ final_sample_data = meta_data
for sample_group in ['primary_samples', 'other_samples']:
for row in sample_data[sample_group]:
@@ -18,6 +24,28 @@ def export_sample_table(targs):
return trait_name, final_sample_data
+def get_export_metadata(trait_id, dataset_name):
+ dataset = data_set.create_dataset(dataset_name)
+ this_trait = GeneralTrait(dataset=dataset,
+ name=trait_id,
+ cellid=None,
+ get_qtl_info=False)
+
+ metadata = []
+ if dataset.type == "Publish":
+ metadata.append(["Phenotype ID: " + trait_id])
+ metadata.append(["Phenotype URL: " + "http://genenetwork.org/show_trait?trait_id=" + trait_id + "&dataset=" + dataset_name])
+ metadata.append(["Group: " + dataset.group.name])
+ metadata.append(["Phenotype: " + this_trait.description_display.replace(",", "\",\"")])
+ metadata.append(["Authors: " + this_trait.authors])
+ metadata.append(["Title: " + this_trait.title])
+ metadata.append(["Journal: " + this_trait.journal])
+ metadata.append(["Dataset Link: http://gn1.genenetwork.org/webqtl/main.py?FormID=sharinginfo&InfoPageName=" + dataset.name])
+ metadata.append([])
+
+ return metadata
+
+
def dict_to_sorted_list(dictionary):
sorted_list = [item for item in dictionary.iteritems()]
sorted_list = sorted(sorted_list, cmp=cmp_samples)
diff --git a/wqflask/wqflask/show_trait/show_trait.py b/wqflask/wqflask/show_trait/show_trait.py
index d35ba749..29b2f77e 100644
--- a/wqflask/wqflask/show_trait/show_trait.py
+++ b/wqflask/wqflask/show_trait/show_trait.py
@@ -22,6 +22,7 @@ from base import webqtlConfig
from base import webqtlCaseData
from wqflask.show_trait.SampleList import SampleList
from utility import webqtlUtil, Plot, Bunch, helper_functions
+from utility.tools import locate_ignore_error
from base.trait import GeneralTrait
from base import data_set
from db import webqtlDatabaseFunction
@@ -72,16 +73,16 @@ class ShowTrait(object):
#ZS: Get verify/rna-seq link URLs
try:
- blatsequence = self.this_trait.blatseq
+ blatsequence = self.this_trait.sequence
if not blatsequence:
#XZ, 06/03/2009: ProbeSet name is not unique among platforms. We should use ProbeSet Id instead.
query1 = """SELECT Probe.Sequence, Probe.Name
- FROM Probe, ProbeSet, ProbeSetFreeze, ProbeSetXRef
- WHERE ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id AND
- ProbeSetXRef.ProbeSetId = ProbeSet.Id AND
- ProbeSetFreeze.Name = '%s' AND
- ProbeSet.Name = '%s' AND
- Probe.ProbeSetId = ProbeSet.Id order by Probe.SerialOrder""" % (self.this_trait.dataset.name, self.this_trait.name)
+ FROM Probe, ProbeSet, ProbeSetFreeze, ProbeSetXRef
+ WHERE ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id AND
+ ProbeSetXRef.ProbeSetId = ProbeSet.Id AND
+ ProbeSetFreeze.Name = '%s' AND
+ ProbeSet.Name = '%s' AND
+ Probe.ProbeSetId = ProbeSet.Id order by Probe.SerialOrder""" % (self.this_trait.dataset.name, self.this_trait.name)
seqs = g.db.execute(query1).fetchall()
if not seqs:
raise ValueError
@@ -97,10 +98,10 @@ class ShowTrait(object):
query2 = """SELECT Probe.Sequence, Probe.Name
FROM Probe, ProbeSet, ProbeSetFreeze, ProbeSetXRef
WHERE ProbeSetXRef.ProbeSetFreezeId = ProbeSetFreeze.Id AND
- ProbeSetXRef.ProbeSetId = ProbeSet.Id AND
- ProbeSetFreeze.Name = '%s' AND
- ProbeSet.Name = '%s' AND
- Probe.ProbeSetId = ProbeSet.Id order by Probe.SerialOrder""" % (self.this_trait.dataset.name, self.this_trait.name)
+ ProbeSetXRef.ProbeSetId = ProbeSet.Id AND
+ ProbeSetFreeze.Name = '%s' AND
+ ProbeSet.Name = '%s' AND
+ Probe.ProbeSetId = ProbeSet.Id order by Probe.SerialOrder""" % (self.this_trait.dataset.name, self.this_trait.name)
seqs = g.db.execute(query2).fetchall()
for seqt in seqs:
@@ -120,8 +121,8 @@ class ShowTrait(object):
self.UCSC_BLAT_URL = ""
self.UTHSC_BLAT_URL = ""
except:
- self.UCSC_BLAT_URL = ""
- self.UTHSC_BLAT_URL = ""
+ self.UCSC_BLAT_URL = ""
+ self.UTHSC_BLAT_URL = ""
if self.dataset.type == "ProbeSet":
self.show_probes = "True"
@@ -170,6 +171,14 @@ class ShowTrait(object):
self.genofiles = self.dataset.group.get_genofiles()
+ if "QTLReaper" or "R/qtl" in dataset.group.mapping_names: #ZS: No need to grab scales from .geno file unless it's using a mapping method that reads .geno files
+ if self.genofiles:
+ self.scales_in_geno = get_genotype_scales(self.genofiles)
+ else:
+ self.scales_in_geno = get_genotype_scales(self.dataset.group.name + ".geno")
+ else:
+ self.scales_in_geno = {}
+
self.has_num_cases = has_num_cases(self.this_trait)
self.stats_table_width, self.trait_table_width = get_table_widths(self.sample_groups, self.has_num_cases)
@@ -239,9 +248,12 @@ class ShowTrait(object):
#hddn['control_marker'] = self.nearest_marker1+","+self.nearest_marker2
hddn['do_control'] = False
hddn['maf'] = 0.05
+ hddn['mapping_scale'] = "physic"
hddn['compare_traits'] = []
hddn['export_data'] = ""
hddn['export_format'] = "excel"
+ if len(self.scales_in_geno) < 2:
+ hddn['mapping_scale'] = self.scales_in_geno[self.scales_in_geno.keys()[0]][0]
# We'll need access to this_trait and hddn in the Jinja2 Template, so we put it inside self
self.hddn = hddn
@@ -251,6 +263,7 @@ class ShowTrait(object):
short_description = short_description,
unit_type = trait_units,
dataset_type = self.dataset.type,
+ scales_in_geno = self.scales_in_geno,
data_scale = self.dataset.data_scale,
sample_group_types = self.sample_group_types,
sample_lists = sample_lists,
@@ -281,7 +294,7 @@ class ShowTrait(object):
if check_if_attr_exists(self.this_trait, 'uniprotid'):
self.uniprot_link = webqtlConfig.UNIPROT_URL % self.this_trait.uniprotid
- self.genotation_link = self.rgd_link = self.gtex_link = self.genebridge_link = self.ucsc_blat_link = self.biogps_link = self.protein_atlas_link = None
+ self.genotation_link = self.rgd_link = self.phenogen_link = self.gtex_link = self.genebridge_link = self.ucsc_blat_link = self.biogps_link = self.protein_atlas_link = None
self.string_link = self.panther_link = self.aba_link = self.ebi_gwas_link = self.wiki_pi_link = self.genemania_link = self.ensembl_link = None
if self.this_trait.symbol:
self.genotation_link = webqtlConfig.GENOTATION_URL % self.this_trait.symbol
@@ -319,6 +332,7 @@ class ShowTrait(object):
if self.dataset.group.species == "rat":
self.rgd_link = webqtlConfig.RGD_URL % (self.this_trait.symbol, self.dataset.group.species.capitalize())
+ self.phenogen_link = webqtlConfig.PHENOGEN_URL % (self.this_trait.symbol)
self.genemania_link = webqtlConfig.GENEMANIA_URL % ("rattus-norvegicus", self.this_trait.symbol)
query = """SELECT kgID, chromosome, txStart, txEnd
@@ -364,8 +378,8 @@ class ShowTrait(object):
if self.dataset:
dataset_menu_selected = self.dataset.name
- return_results_menu = (100, 200, 500, 1000, 2000, 5000, 10000, 15000, 20000)
- return_results_menu_selected = 500
+ return_results_menu = (100, 200, 500, 1000, 2000, 5000, 10000, 15000, 20000)
+ return_results_menu_selected = 500
self.corr_tools = dict(dataset_menu = dataset_menu,
dataset_menu_selected = dataset_menu_selected,
@@ -590,11 +604,86 @@ def get_categorical_variables(this_trait, sample_list):
for attribute in sample_list.attributes:
attribute_vals = []
for sample_name in this_trait.data.keys():
- attribute_vals.append(this_trait.data[sample_name].extra_attributes[sample_list.attributes[attribute].name])
-
+ if sample_list.attributes[attribute].name in this_trait.data[sample_name].extra_attributes:
+ attribute_vals.append(this_trait.data[sample_name].extra_attributes[sample_list.attributes[attribute].name])
+ else:
+ attribute_vals.append("N/A")
num_distinct = len(set(attribute_vals))
if num_distinct < 10:
categorical_var_list.append(sample_list.attributes[attribute].name)
- return categorical_var_list \ No newline at end of file
+ return categorical_var_list
+
+def get_genotype_scales(genofiles):
+ geno_scales = {}
+ if type(genofiles) is list:
+ for the_file in genofiles:
+ file_location = the_file['location']
+ geno_scales[file_location] = get_scales_from_genofile(file_location)
+ else:
+ geno_scales[genofiles] = get_scales_from_genofile(genofiles)
+
+ return geno_scales
+
+def get_scales_from_genofile(file_location):
+ geno_path = locate_ignore_error(file_location, 'genotype')
+
+ if not geno_path: #ZS: This is just to allow the code to run when
+ return [["physic", "Mb"]]
+ cm_and_mb_cols_exist = True
+ cm_column = None
+ mb_column = None
+ with open(geno_path, "r") as geno_fh:
+ for i, line in enumerate(geno_fh):
+ if line[0] == "#" or line[0] == "@":
+ if "@scale" in line: #ZS: If the scale is made explicit in the metadata, use that
+ scale = line.split(":")[1].strip()
+ if scale == "morgan":
+ return [["morgan", "cM"]]
+ else:
+ return [["physic", "Mb"]]
+ else:
+ continue
+ if line[:3] == "Chr":
+ first_marker_line = i + 1
+ if line.split("\t")[2].strip() == "cM":
+ cm_column = 2
+ elif line.split("\t")[3].strip() == "cM":
+ cm_column = 3
+ if line.split("\t")[2].strip() == "Mb":
+ mb_column = 2
+ elif line.split("\t")[3].strip() == "Mb":
+ mb_column = 3
+ break
+
+ #ZS: This attempts to check whether the cM and Mb columns are 'real', since some .geno files have one column be a copy of the other column, or have one column that is all 0s
+ cm_all_zero = True
+ mb_all_zero = True
+ cm_mb_all_equal = True
+ for i, line in enumerate(geno_fh):
+ if first_marker_line <= i < first_marker_line + 10: #ZS: I'm assuming there won't be more than 10 markers where the position is listed as 0
+ if cm_column:
+ cm_val = line.split("\t")[cm_column].strip()
+ if cm_val != "0":
+ cm_all_zero = False
+ if mb_column:
+ mb_val = line.split("\t")[mb_column].strip()
+ if mb_val != "0":
+ mb_all_zero = False
+ if cm_column and mb_column:
+ if cm_val != mb_val:
+ cm_mb_all_equal = False
+ else:
+ if i > first_marker_line + 10:
+ break
+
+ #ZS: This assumes that both won't be all zero, since if that's the case mapping shouldn't be an option to begin with
+ if mb_all_zero:
+ return [["morgan", "cM"]]
+ elif cm_mb_all_equal:
+ return [["physic", "Mb"]]
+ elif cm_and_mb_cols_exist:
+ return [["physic", "Mb"], ["morgan", "cM"]]
+ else:
+ return [["physic", "Mb"]]
diff --git a/wqflask/wqflask/static/new/css/show_trait.css b/wqflask/wqflask/static/new/css/show_trait.css
index 09d5e1e3..d3e6672a 100644
--- a/wqflask/wqflask/static/new/css/show_trait.css
+++ b/wqflask/wqflask/static/new/css/show_trait.css
@@ -2,6 +2,10 @@ tr .outlier {
background-color: #ffff99;
}
+table.dataTable tbody tr.selected {
+ background-color: #ffee99;
+}
+
#bar_chart_container {
overflow-x:scroll;
}
diff --git a/wqflask/wqflask/static/new/javascript/ctl_graph.js b/wqflask/wqflask/static/new/javascript/ctl_graph.js
index 94bd7e9d..bd950592 100644
--- a/wqflask/wqflask/static/new/javascript/ctl_graph.js
+++ b/wqflask/wqflask/static/new/javascript/ctl_graph.js
@@ -82,18 +82,12 @@ window.onload=function() {
function create_qtips(cy){
cy.nodes().qtip({
content: function(){
- gn_link = '<b>'+'<a href="http://gn2.genenetwork.org/show_trait?trait_id=' + this.data().sid + '&dataset=' + this.data().dataset + '" >'+this.data().id +'</a>'+'</b><br>'
+ gn_link = '<b>'+'<a href="' + gn2_url + '/show_trait?trait_id=' + this.data().sid + '&dataset=' + this.data().dataset + '" >'+this.data().id +'</a>'+'</b><br>'
ncbi_link = '<a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=' + this.data().geneid + '" >NCBI<a>'+'<br>'
omim_link = '<a href="http://www.ncbi.nlm.nih.gov/omim/' + this.data().omim + '" >OMIM<a>'+'<br>'
qtip_content = gn_link + ncbi_link + omim_link
return qtip_content
- //return '<b>'+'<a href="http://gn2.genenetwork.org/show_trait?trait_id=' + this.data().id + '&dataset=' + this.data().dataset + '" >'+this.data().id +'<a>'+'</b>'
},
- // content: {
- // title: '<b>'+'<a href="http://gn2.genenetwork.org/show_trait?trait_id=' + this.target() + '&dataset=' + this.dataset() + '" >'+this.target() +'<a>'+'</b>',
- // text: this.target,
- // button: true
- // },
position: {
my: 'top center',
at: 'bottom center'
diff --git a/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json b/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json
deleted file mode 100644
index f9bce083..00000000
--- a/wqflask/wqflask/static/new/javascript/dataset_menu_structure.json
+++ /dev/null
@@ -1,5782 +0,0 @@
-{
- "datasets": {
- "arabidopsis": {
- "BayXSha": {
- "Genotypes": [
- [
- "None",
- "BayXShaGeno",
- "BayXSha Genotypes"
- ]
- ],
- "Phenotypes": [
- [
- "642",
- "BayXShaPublish",
- "BayXSha Published Phenotypes"
- ]
- ]
- },
- "ColXBur": {
- "Genotypes": [
- [
- "None",
- "ColXBurGeno",
- "ColXBur Genotypes"
- ]
- ],
- "Phenotypes": [
- [
- "623",
- "ColXBurPublish",
- "ColXBur Published Phenotypes"
- ]
- ]
- },
- "ColXCvi": {
- "Genotypes": [
- [
- "None",
- "ColXCviGeno",
- "ColXCvi Genotypes"
- ]
- ],
- "Phenotypes": [
- [
- "640",
- "ColXCviPublish",
- "ColXCvi Published Phenotypes"
- ]
- ]
- }
- },
- "barley": {
- "QSM": {
- "Leaf mRNA": [
- [
- "236",
- "B1LI0809R",
- "Barley1 Leaf INOC TTKS (Aug09) RMA"
- ],
- [
- "235",
- "B1LI0809M5",
- "Barley1 Leaf INOC TTKS (Aug09) MAS5"
- ],
- [
- "237",
- "B1MI0809M5",
- "Barley1 Leaf MOCK TTKS (Aug09) MAS5"
- ],
- [
- "238",
- "B1MI0809R",
- "Barley1 Leaf MOCK TTKS (Aug09) RMA"
- ]
- ]
- },
- "SXM": {
- "Embryo mRNA": [
- [
- "128",
- "B139_K_1206_R",
- "Barley1 Embryo gcRMA SCRI (Dec06)"
- ],
- [
- "124",
- "B139_K_1206_M",
- "Barley1 Embryo MAS 5.0 SCRI (Dec06)"
- ],
- [
- "114",
- "B150_K_0406_R",
- "Barley1 Embryo0 gcRMA SCRI (Apr06)"
- ]
- ],
- "Genotypes": [
- [
- "615",
- "SXMGeno",
- "SXM Genotypes"
- ]
- ],
- "Leaf mRNA": [
- [
- "127",
- "B30_K_1206_M",
- "Barley1 Leaf MAS 5.0 SCRI (Dec06)"
- ],
- [
- "125",
- "B30_K_1206_R",
- "Barley1 Leaf gcRMA SCRI (Dec06)"
- ],
- [
- "126",
- "B30_K_1206_Rn",
- "Barley1 Leaf gcRMAn SCRI (Dec06)"
- ]
- ],
- "Phenotypes": [
- [
- "608",
- "SXMPublish",
- "Barley SMP Published Phenotypes"
- ]
- ]
- }
- },
- "drosophila": {
- "DGRP": {
- "Whole Body mRNA": [
- [
- "297",
- "NCSU_DrosWB_LC_RMA_0111",
- "NCSU Drosophila Whole Body (Jan11) RMA"
- ]
- ]
- },
- "Oregon-R_x_2b3": {
- "Whole Body mRNA": [
- [
- "249",
- "UAB_DrosWB_LC_RMA_1009",
- "UAB Whole body D.m. mRNA control (Oct09) RMA"
- ],
- [
- "250",
- "UAB_DrosWB_LE_RMA_1009",
- "UAB Whole body D.m. mRNA lead (pbAc) (Oct09) RMA"
- ]
- ]
- }
- },
- "human": {
- "AD-cases-controls": {
- "Brain mRNA": [
- [
- "314",
- "GSE5281_F_RMA_N_0709",
- "GSE5281 Human Brain Normal Full Liang (Jul09) RMA"
- ],
- [
- "313",
- "GSE5281_F_RMA_Alzh_0709",
- "GSE5281 Human Brain Alzheimer Full Liang (Jul09) RMA"
- ],
- [
- "233",
- "GSE5281_F_RMA0709",
- "GSE5281 Human Brain Full Liang (Jul09) RMA"
- ],
- [
- "232",
- "GSE5281_RMA0709",
- "GSE5281 Human Brain Best 102 Liang (Jul09) RMA"
- ]
- ]
- },
- "AD-cases-controls-Myers": {
- "Brain mRNA": [
- [
- "234",
- "GSE15222_F_RI_0409",
- "GSE15222 Human Brain All Cases Myers (Apr09) RankInv"
- ],
- [
- "290",
- "GSE15222_F_N_RI_0409",
- "GSE15222 Human Brain Normal Myers (Apr09) RankInv"
- ],
- [
- "289",
- "GSE15222_F_A_RI_0409",
- "GSE15222 Human Brain Alzheimer Myers (Apr09) RankInv"
- ]
- ],
- "Genotypes": [
- [
- "None",
- "AD-cases-controls-MyersGeno",
- "AD-cases-controls-Myers Genotypes"
- ]
- ],
- "Phenotypes": [
- [
- "None",
- "AD-cases-controls-MyersPublish",
- "AD-cases-controls-Myers Published Phenotypes"
- ]
- ]
- },
- "Aging-Brain-UCI": {
- "Entorhinal Cortex mRNA": [
- [
- "460",
- "UCI_EC_0913",
- "GSE11882 UCI Human Entorhinal Cortex Affy U133 Plus2 (Sep13) RMA"
- ]
- ],
- "Hippocampus mRNA": [
- [
- "461",
- "UCI_HC_0913",
- "GSE11882 UCI Human Hippocampus Affy U133 Plus2 (Sep13) RMA"
- ]
- ],
- "Phenotypes": [
- [
- "None",
- "Aging-Brain-UCIPublish",
- "Aging-Brain-UCI Published Phenotypes"
- ]
- ],
- "Postcentral Gyrus mRNA": [
- [
- "462",
- "UCI_PCG_0913",
- "GSE11882 UCI Human Postcentral Gyrus Affy U133 Plus2 (Sep13) RMA"
- ]
- ],
- "Superior Frontal Gyrus mRNA": [
- [
- "463",
- "UCI_SG_0913",
- "GSE11882 UCI Human Superior Frontal Gyrus Affy U133 Plus2 (Sep13) RMA"
- ]
- ]
- },
- "Brain-Normal-NIH-Gibbs": {
- "Cerebellum mRNA": [
- [
- "481",
- "GSE15745-GPL6104_Cer0510",
- "GSE15745 NIH Human Brain Cerebellum ILM humanRef-8 v2.0 (May10) RankInv"
- ]
- ],
- "Pons mRNA": [
- [
- "484",
- "GSE15745-GPL6104_Po0510",
- "GSE15745 NIH Human Brain Pons ILM humanRef-8 v2.0 (May10) RankInv"
- ]
- ],
- "Prefrontal Cortex mRNA": [
- [
- "482",
- "GSE15745-GPL6104_PFC0510",
- "GSE15745 NIH Human Brain Prefrontal Cortex ILM humanRef-8 v2.0 (May10) RankInv"
- ]
- ],
- "Temporal Cerebral Wall mRNA": [
- [
- "483",
- "GSE15745-GPL6104_TC0510",
- "GSE15745 NIH Human Brain Temporal Cerebral ILM humanRef-8 v2.0 (May10) RankInv"
- ]
- ]
- },
- "CANDLE": {
- "Newborn Cord Blood mRNA": [
- [
- "324",
- "CANDLE_NB_0711",
- "CANDLE Newborn Cord ILMv6.3 (Jun11) QUANT"
- ]
- ],
- "Phenotypes": [
- [
- "634",
- "CANDLEPublish",
- "CANDLE Published Phenotypes"
- ]
- ]
- },
- "CEPH-2004": {
- "Lymphoblast B-cell mRNA": [
- [
- "241",
- "UT_CEPH_RankInv0909",
- "UTHSC CEPH B-cells Illumina (Sep09) RankInv"
- ],
- [
- "215",
- "Human_1008",
- "Monks CEPH B-cells Agilent (Dec04) Log10Ratio"
- ]
- ]
- },
- "GTEx": {
- "Adipose tissue, subcutaneous mRNA": [
- [
- "580",
- "GTEx_log2_Subcu_0314",
- "GTEx Human Subcutaneous (Mar14) RPKM Log2"
- ],
- [
- "530",
- "GTEx_Subcu_0414",
- "GTEx Human Subcutaneous (Apr14) RPKM"
- ]
- ],
- "Adipose tissue, visceral mRNA": [
- [
- "587",
- "GTEx_log2_Visce_0314",
- "GTEx Human Visceral (Mar14) RPKM Log2"
- ],
- [
- "537",
- "GTEx_Visce_0414",
- "GTEx Human Visceral (Apr14) RPKM"
- ]
- ],
- "Adrenal Gland mRNA": [
- [
- "545",
- "GTEx_log2_Adren_0314",
- "GTEx Human Adrenal Gland (Mar14) RPKM Log2"
- ],
- [
- "495",
- "GTEx_Adren_0414",
- "GTEx Human Adrenal Gland (Apr14) RPKM"
- ]
- ],
- "Amygdala mRNA": [
- [
- "542",
- "GTEx_log2_AMY_0314",
- "GTEx Human Amygdala (Mar14) RPKM Log2"
- ],
- [
- "492",
- "GTEx_AMY_0314",
- "GTEx Human Amygdala (Mar14) RPKM"
- ]
- ],
- "Anterior Cingulate Cortex mRNA": [
- [
- "546",
- "GTEx_log2_Anter_0314",
- "GTEx Human Anterior Cingulate Cortex (Mar14) RPKM Log2"
- ],
- [
- "496",
- "GTEx_Anter_0414",
- "GTEx Human Anterior Cingulate Cortex (Apr14) RPKM"
- ]
- ],
- "Aorta mRNA": [
- [
- "547",
- "GTEx_log2_Aorta_0314",
- "GTEx Human Aorta (Mar14) RPKM Log2"
- ],
- [
- "497",
- "GTEx_Aorta_0414",
- "GTEx Human Aorta (Apr14) RPKM"
- ]
- ],
- "Blood, Cells - EBV-Transformed Lymphocytes mRNA": [
- [
- "548",
- "GTEx_log2_Blood_0314",
- "GTEx Human Blood, Cells - EBV-Transformed Lymphocytes (Mar14) RPKM Log2"
- ],
- [
- "498",
- "GTEx_Blood_0414",
- "GTEx Human Blood, Cells - EBV-Transformed Lymphocytes (Apr14) RPKM"
- ]
- ],
- "Breast - Mammary Tissue mRNA": [
- [
- "549",
- "GTEx_log2_Breas_0314",
- "GTEx Human Breast - Mammary Tissue (Mar14) RPKM Log2"
- ],
- [
- "499",
- "GTEx_Breas_0414",
- "GTEx Human Breast - Mammary Tissue (Apr14) RPKM"
- ]
- ],
- "Caudate mRNA": [
- [
- "550",
- "GTEx_log2_Cauda_0314",
- "GTEx Human Caudate (Mar14) RPKM Log2"
- ],
- [
- "500",
- "GTEx_Cauda_0414",
- "GTEx Human Caudate (Apr14) RPKM"
- ]
- ],
- "Cells - EBV-Transformed Lymphocytes mRNA": [
- [
- "551",
- "GTEx_log2_CellsEBV_0314",
- "GTEx Human Cells - EBV-Transformed Lymphocytes (Mar14) RPKM Log2"
- ],
- [
- "501",
- "GTEx_CellsEBV_0414",
- "GTEx Human Cells - EBV-Transformed Lymphocytes (Apr14) RPKM"
- ]
- ],
- "Cells - Leukemia Cell Line (CML) mRNA": [
- [
- "552",
- "GTEx_log2_CellsLe_0314",
- "GTEx Human Cells - Leukemia Cell Line (CML) (Mar14) RPKM Log2"
- ],
- [
- "502",
- "GTEx_CellsLe_0414",
- "GTEx Human Cells - Leukemia Cell Line (CML) (Apr14) RPKM"
- ]
- ],
- "Cells - Transformed Fibroblasts mRNA": [
- [
- "553",
- "GTEx_log2_CellsTr_0314",
- "GTEx Human Cells - Transformed Fibroblasts (Mar14) RPKM Log2"
- ],
- [
- "503",
- "GTEx_CellsTr_0414",
- "GTEx Human Cells - Transformed Fibroblasts (Apr14) RPKM"
- ]
- ],
- "Cerebellar Cortex mRNA": [
- [
- "554",
- "GTEx_log2_CerebC_0314",
- "GTEx Human Cerebellar Cortex (Mar14) RPKM Log2"
- ],
- [
- "504",
- "GTEx_CerebC_0414",
- "GTEx Human Cerebellar Cortex (Apr14) RPKM"
- ]
- ],
- "Cerebellar Hemisphere mRNA": [
- [
- "555",
- "GTEx_log2_CerebH_0314",
- "GTEx Human Cerebellar Hemisphere (Mar14) RPKM Log2"
- ],
- [
- "505",
- "GTEx_CerebH_0414",
- "GTEx Human Cerebellar Hemisphere (Apr14) RPKM"
- ]
- ],
- "Cerebellum mRNA": [
- [
- "543",
- "GTEx_log2_CER_0314",
- "GTEx Human Cerebellum (Mar14) RPKM Log2"
- ],
- [
- "493",
- "GTEx_CER_0314",
- "GTEx Human Cerebellum (Mar14) RPKM"
- ]
- ],
- "Colon - Transverse mRNA": [
- [
- "556",
- "GTEx_log2_Colon_0314",
- "GTEx Human Colon - Transverse (Mar14) RPKM Log2"
- ],
- [
- "506",
- "GTEx_Colon_0414",
- "GTEx Human Colon - Transverse (Apr14) RPKM"
- ]
- ],
- "Coronary mRNA": [
- [
- "557",
- "GTEx_log2_Coron_0314",
- "GTEx Human Coronary (Mar14) RPKM Log2"
- ],
- [
- "507",
- "GTEx_Coron_0414",
- "GTEx Human Coronary (Apr14) RPKM"
- ]
- ],
- "Esophagus - Mucosa mRNA": [
- [
- "558",
- "GTEx_log2_EsophMuc_0314",
- "GTEx Human Esophagus - Mucosa (Mar14) RPKM Log2"
- ],
- [
- "508",
- "GTEx_EsophMuc_0414",
- "GTEx Human Esophagus - Mucosa (Apr14) RPKM"
- ]
- ],
- "Esophagus - Muscularis mRNA": [
- [
- "559",
- "GTEx_log2_EsophMus_0314",
- "GTEx Human Esophagus - Muscularis (Mar14) RPKM Log2"
- ],
- [
- "509",
- "GTEx_EsophMus_0414",
- "GTEx Human Esophagus - Muscularis (Apr14) RPKM"
- ]
- ],
- "Fallopian Tube mRNA": [
- [
- "560",
- "GTEx_log2_Fallo_0314",
- "GTEx Human Fallopian Tube (Mar14) RPKM Log2"
- ],
- [
- "510",
- "GTEx_Fallo_0414",
- "GTEx Human Fallopian Tube (Apr14) RPKM"
- ]
- ],
- "Frontal Cortex mRNA": [
- [
- "561",
- "GTEx_log2_Front_0314",
- "GTEx Human Frontal Cortex (Mar14) RPKM Log2"
- ],
- [
- "511",
- "GTEx_Front_0414",
- "GTEx Human Frontal Cortex (Apr14) RPKM"
- ]
- ],
- "Heart - Atrial Appendage mRNA": [
- [
- "562",
- "GTEx_log2_HeartAt_0314",
- "GTEx Human Heart - Atrial Appendage (Mar14) RPKM Log2"
- ],
- [
- "512",
- "GTEx_HeartAt_0414",
- "GTEx Human Heart - Atrial Appendage (Apr14) RPKM"
- ]
- ],
- "Heart - Left Ventricle mRNA": [
- [
- "563",
- "GTEx_log2_HeartLV_0314",
- "GTEx Human Heart - Left Ventricle (Mar14) RPKM Log2"
- ],
- [
- "513",
- "GTEx_HeartLV_0414",
- "GTEx Human Heart - Left Ventricle (Apr14) RPKM"
- ]
- ],
- "Hippocampus mRNA": [
- [
- "544",
- "GTEx_log2_HIP_0314",
- "GTEx Human Hippocampus (Mar14) RPKM Log2"
- ],
- [
- "494",
- "GTEx_HIP_0314",
- "GTEx Human Hippocampus (Mar14) RPKM"
- ]
- ],
- "Hypothalamus mRNA": [
- [
- "564",
- "GTEx_log2_Hypot_0314",
- "GTEx Human Hypothalamus (Mar14) RPKM Log2"
- ],
- [
- "514",
- "GTEx_Hypot_0414",
- "GTEx Human Hypothalamus (Apr14) RPKM"
- ]
- ],
- "Kidney mRNA": [
- [
- "565",
- "GTEx_log2_Kidne_0314",
- "GTEx Human Kidney (Mar14) RPKM Log2"
- ],
- [
- "515",
- "GTEx_Kidne_0414",
- "GTEx Human Kidney (Apr14) RPKM"
- ]
- ],
- "Liver mRNA": [
- [
- "566",
- "GTEx_log2_Liver_0314",
- "GTEx Human Liver (Mar14) RPKM Log2"
- ],
- [
- "516",
- "GTEx_Liver_0414",
- "GTEx Human Liver (Apr14) RPKM"
- ]
- ],
- "Lung mRNA": [
- [
- "567",
- "GTEx_log2_Lung_0314",
- "GTEx Human Lung (Mar14) RPKM Log2"
- ],
- [
- "517",
- "GTEx_Lung _0414",
- "GTEx Human Lung (Apr14) RPKM"
- ]
- ],
- "Muscle mRNA": [
- [
- "568",
- "GTEx_log2_Muscle_0314",
- "GTEx Human Muscle (Mar14) RPKM Log2"
- ],
- [
- "518",
- "GTEx_Muscl_0414",
- "GTEx Human Muscle (Apr14) RPKM"
- ]
- ],
- "Nerve - Tibial mRNA": [
- [
- "569",
- "GTEx_log2_Nerve_0314",
- "GTEx Human Nerve - Tibial (Mar14) RPKM Log2"
- ],
- [
- "519",
- "GTEx_Nerve_0414",
- "GTEx Human Nerve - Tibial (Apr14) RPKM"
- ]
- ],
- "Nucleus Accumbens mRNA": [
- [
- "570",
- "GTEx_log2_Nucle_0314",
- "GTEx Human Nucleus Accumbens (Mar14) RPKM Log2"
- ],
- [
- "520",
- "GTEx_Nucle_0414",
- "GTEx Human Nucleus Accumbens (Apr14) RPKM"
- ]
- ],
- "Ovary mRNA": [
- [
- "571",
- "GTEx_log2_Ovary_0314",
- "GTEx Human Ovary (Mar14) RPKM Log2"
- ],
- [
- "521",
- "GTEx_Ovary_0414",
- "GTEx Human Ovary (Apr14) RPKM"
- ]
- ],
- "Pancreas mRNA": [
- [
- "572",
- "GTEx_log2_Pancr_0314",
- "GTEx Human Pancreas (Mar14) RPKM Log2"
- ],
- [
- "522",
- "GTEx_Pancr_0414",
- "GTEx Human Pancreas (Apr14) RPKM"
- ]
- ],
- "Pituitary Gland mRNA": [
- [
- "573",
- "GTEx_log2_Pitui_0314",
- "GTEx Human Pituitary (Mar14) RPKM Log2"
- ],
- [
- "523",
- "GTEx_Pitui_0414",
- "GTEx Human Pituitary (Apr14) RPKM"
- ]
- ],
- "Prostate mRNA": [
- [
- "574",
- "GTEx_log2_Prost_0314",
- "GTEx Human Prostate (Mar14) RPKM Log2"
- ],
- [
- "524",
- "GTEx_Prost_0414",
- "GTEx Human Prostate (Apr14) RPKM"
- ]
- ],
- "Putamen mRNA": [
- [
- "575",
- "GTEx_log2_Putam_0314",
- "GTEx Human Putamen (Mar14) RPKM Log2"
- ],
- [
- "525",
- "GTEx_Putam_0414",
- "GTEx Human Putamen (Apr14) RPKM"
- ]
- ],
- "Skin - Not Sun Exposed (Suprapubic) mRNA": [
- [
- "576",
- "GTEx_log2_SkinN_0314",
- "GTEx Human Skin-Not Sun Exposed (Suprapubic) (Mar14) RPKM Log2"
- ],
- [
- "526",
- "GTEx_SkinN_0414",
- "GTEx Human Skin-Not Sun Exposed (Suprapubic) (Apr14) RPKM"
- ]
- ],
- "Skin - Sun Exposed (Lower leg) mRNA": [
- [
- "577",
- "GTEx_log2_SkinE_0314",
- "GTEx Human Skin-Sun Exposed (Lower leg) (Mar14) RPKM Log2"
- ],
- [
- "527",
- "GTEx_SkinE_0414",
- "GTEx Human Skin-Sun Exposed (Lower leg) (Apr14) RPKM"
- ]
- ],
- "Spinal Cord mRNA": [
- [
- "578",
- "GTEx_log2_Spina_0314",
- "GTEx Human Spinal Cord (Mar14) RPKM Log2"
- ],
- [
- "528",
- "GTEx_Spina_0414",
- "GTEx Human Spinal Cord (Apr14) RPKM"
- ]
- ],
- "Stomach mRNA": [
- [
- "579",
- "GTEx_log2_Stoma_0314",
- "GTEx Human Stomach (Mar14) RPKM Log2"
- ],
- [
- "529",
- "GTEx_Stoma_0414",
- "GTEx Human Stomach (Apr14) RPKM"
- ]
- ],
- "Substantia Nigra mRNA": [
- [
- "581",
- "GTEx_log2_Subst_0314",
- "GTEx Human Substantia Nigra (Mar14) RPKM Log2"
- ],
- [
- "531",
- "GTEx_Subst_0414",
- "GTEx Human Substantia Nigra (Apr14) RPKM"
- ]
- ],
- "Testis mRNA": [
- [
- "582",
- "GTEx_log2_Testi_0314",
- "GTEx Human Testis (Mar14) RPKM Log2"
- ],
- [
- "532",
- "GTEx_Testi_0414",
- "GTEx Human Testis (Apr14) RPKM"
- ]
- ],
- "Thyroid mRNA": [
- [
- "583",
- "GTEx_log2_Thyro_0314",
- "GTEx Human Thyroid (Mar14) RPKM Log2"
- ],
- [
- "533",
- "GTEx_Thyro_0414",
- "GTEx Human Thyroid (Apr14) RPKM"
- ]
- ],
- "Tibial mRNA": [
- [
- "584",
- "GTEx_log2_Tibial_0314",
- "GTEx Human Tibial (Mar14) RPKM Log2"
- ],
- [
- "534",
- "GTEx_Tibia_0414",
- "GTEx Human Tibial (Apr14) RPKM"
- ]
- ],
- "Uterus mRNA": [
- [
- "585",
- "GTEx_log2_Uterus_0314",
- "GTEx Human Uterus (Mar14) RPKM Log2"
- ],
- [
- "535",
- "GTEx_Uteru_0414",
- "GTEx Human Uterus (Apr14) RPKM"
- ]
- ],
- "Vagina mRNA": [
- [
- "586",
- "GTEx_log2_Vagin_0314",
- "GTEx Human Vagina (Mar14) RPKM Log2"
- ],
- [
- "536",
- "GTEx_Vagin_0414",
- "GTEx Human Vagina (Apr14) RPKM"
- ]
- ],
- "Whole Blood mRNA": [
- [
- "588",
- "GTEx_log2_WholeB_0314",
- "GTEx Human Whole Blood (Mar14) RPKM Log2"
- ],
- [
- "538",
- "GTEx_Whole_0414",
- "GTEx Human Whole Blood (Apr14) RPKM"
- ]
- ]
- },
- "GTEx_v5": {
- "Adipose tissue, subcutaneous mRNA": [
- [
- "718",
- "GTEXv5_AdipSub_0915",
- "GTEXv5 Human Adipose Subcutaneous RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Adipose tissue, visceral mRNA": [
- [
- "719",
- "GTEXv5_AdiVis_0915",
- "GTEXv5 Human Adipose Visceral Omentum RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Adrenal Gland mRNA": [
- [
- "720",
- "GTEXv5_AdrGla_0915",
- "GTEXv5 Human Adrenal Gland RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Amygdala mRNA": [
- [
- "725",
- "GTEXv5_Amy_0915",
- "GTEXv5 Human Brain Amygdala RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Anterior Cingulate Cortex mRNA": [
- [
- "726",
- "GTEXv5_AntCtx_0915",
- "GTEXv5 Human Brain Anterior Cingulate Cortex BA24 RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Aorta mRNA": [
- [
- "721",
- "GTEXv5_ArtAor_0915",
- "GTEXv5 Human Artery Aorta RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Bladder mRNA": [
- [
- "724",
- "GTEXv5_Bla_0915",
- "GTEXv5 Human Bladder RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Bone Marrow mRNA": [
- [
- "740",
- "GTEXv5_BM_0915",
- "GTEXv5 Human Cells-Leukemia Cell Line CML RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Breast - Mammary Tissue mRNA": [
- [
- "738",
- "GTEXv5_BrMa_0915",
- "GTEXv5 Human Breast Mammary Tissue RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Caudate mRNA": [
- [
- "727",
- "GTEXv5_BrCa_0915",
- "GTEXv5 Human Brain Caudate Basal Ganglia RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Cells - EBV-Transformed Lymphocytes mRNA": [
- [
- "739",
- "GTEXv5_EBV_0915",
- "GTEXv5 Human Cells-EBV-Transformed Lymphocytes RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Cells - Transformed Fibroblasts mRNA": [
- [
- "741",
- "GTEXv5_CTF_0915",
- "GTEXv5 Human Cells-Transformed Fibroblasts RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Cerebellar Cortex mRNA": [
- [
- "730",
- "GTEXv5_BrCtx_0915",
- "GTEXv5 Human Brain Cortex RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Cerebellar Hemisphere mRNA": [
- [
- "728",
- "GTEXv5_CerH_0915",
- "GTEXv5 Human Brain Cerebellar Hemisphere RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Cerebellum mRNA": [
- [
- "729",
- "GTEXv5_BrCe_0915",
- "GTEXv5 Human Brain Cerebellum RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Cervix mRNA": [
- [
- "742",
- "GTEXv5_CerEct_0915",
- "GTEXv5 Human Cervix-Ectocervix RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Colon - Sigmoid mRNA": [
- [
- "743",
- "GTEXv5_ColSig_0915",
- "GTEXv5 Human Colon-Sigmoid RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Colon - Transverse mRNA": [
- [
- "744",
- "GTEXv5_ColTra_0915",
- "GTEXv5 Human Colon-Transverse RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Coronary mRNA": [
- [
- "722",
- "GTEXv5_ArtCor_0915",
- "GTEXv5 Human Artery Coronary RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Esophagus - Gastroesophageal mRNA": [
- [
- "745",
- "GTEXv5_GastJun_0915",
- "GTEXv5 Human Esophagus - Gastroesophageal Junction RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Esophagus - Mucosa mRNA": [
- [
- "746",
- "GTEXv5_EsoMu_0915",
- "GTEXv5 Human Esophagus - Mucosa RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Esophagus - Muscularis mRNA": [
- [
- "747",
- "GTEXv5_EsoMus_0915",
- "GTEXv5 Human Esophagus - Muscularis RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Fallopian Tube mRNA": [
- [
- "748",
- "GTEXv5_Fatu_0915",
- "GTEXv5 Human Fallopian Tube RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Frontal Cortex mRNA": [
- [
- "731",
- "GTEXv5_BrFr_0915",
- "GTEXv5 Human Brain Frontal Cortex BA9 RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Heart - Atrial Appendage mRNA": [
- [
- "749",
- "GTEXv5_HAA_0915",
- "GTEXv5 Human Heart - Atrial Appendage RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Heart - Left Ventricle mRNA": [
- [
- "750",
- "GTEXv5_LV_0915",
- "GTEXv5 Human Heart - Left Ventricle RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Hippocampus mRNA": [
- [
- "732",
- "GTEXv5_Hip_0915",
- "GTEXv5 Human Brain Hippocampus RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Hypothalamus mRNA": [
- [
- "733",
- "GTEXv5_Hiptha_0915",
- "GTEXv5 Human Brain Hypothalamus RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Kidney mRNA": [
- [
- "751",
- "GTEXv5_Kidn_0915",
- "GTEXv5 Human Kidney - Cortex RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Liver mRNA": [
- [
- "752",
- "GTEXv5_Liv_0915",
- "GTEXv5 Human Liver RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Lung mRNA": [
- [
- "753",
- "GTEXv5_Lung_0915",
- "GTEXv5 Human Lung RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Muscle mRNA": [
- [
- "754",
- "GTEXv5_MuSk_0915",
- "GTEXv5 Human Muscle - Skeletal RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Nerve - Tibial mRNA": [
- [
- "755",
- "GTEXv5_Tib_0915",
- "GTEXv5 Human Nerve - Tibial RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Nucleus Accumbens mRNA": [
- [
- "734",
- "GTEXv5_NuAcc_0915",
- "GTEXv5 Human Brain Nucleus Accumbens Basal Ganglia RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Ovary mRNA": [
- [
- "756",
- "GTEXv5_Ov_0915",
- "GTEXv5 Human Ovary RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Pancreas mRNA": [
- [
- "757",
- "GTEXv5_Panc_0915",
- "GTEXv5 Human Pancreas RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Phenotypes": [
- [
- "None",
- "GTEx_v5Publish",
- "GTEx_v5 Phenotypes"
- ]
- ],
- "Pituitary Gland mRNA": [
- [
- "758",
- "GTEXv5_Pit_0915",
- "GTEXv5 Human Pituitary RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Prostate mRNA": [
- [
- "759",
- "GTEXv5_Prost_0915",
- "GTEXv5 Human Prostate RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Putamen mRNA": [
- [
- "735",
- "GTEXv5_PutB_0915",
- "GTEXv5 Human Brain Putamen Basal Ganglia RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Salivary Gland mRNA": [
- [
- "760",
- "GTEXv5_SalGl_0915",
- "GTEXv5 Human Salivary Gland Minor RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Skin - Not Sun Exposed (Suprapubic) mRNA": [
- [
- "761",
- "GTEXv5_SkN_0915",
- "GTEXv5 Human Skin-Not Sun Exposed-Suprapubic RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Skin - Sun Exposed (Lower leg) mRNA": [
- [
- "762",
- "GTEXv5_SkS_0915",
- "GTEXv5 Human Skin-Sun Exposed-Lower Leg RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Small Intestine - Terminal Ileum mRNA": [
- [
- "763",
- "GTEXv5_SInt_0915",
- "GTEXv5 Human Small Intestine - Terminal Ileum RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Spinal Cord mRNA": [
- [
- "736",
- "GTEXv5_SpCo_0915",
- "GTEXv5 Human Brain Spinal Cord Cervical C-1 RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Spleen mRNA": [
- [
- "764",
- "GTEXv5_Sple_0915",
- "GTEXv5 Human Spleen RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Stomach mRNA": [
- [
- "765",
- "GTEXv5_Sto_0915",
- "GTEXv5 Human Stomach RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Substantia Nigra mRNA": [
- [
- "737",
- "GTEXv5_SubN_0915",
- "GTEXv5 Human Brain Substantia Nigra RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Testis mRNA": [
- [
- "766",
- "GTEXv5_Test_0915",
- "GTEXv5 Human Testis RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Thyroid mRNA": [
- [
- "767",
- "GTEXv5_Thy_0915",
- "GTEXv5 Human Thyroid RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Tibial mRNA": [
- [
- "723",
- "GTEXv5_ArtTib_0915",
- "GTEXv5 Human Artery Tibial RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Uterus mRNA": [
- [
- "768",
- "GTEXv5_Ut_0915",
- "GTEXv5 Human Uterus RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Vagina mRNA": [
- [
- "769",
- "GTEXv5_Vag_0915",
- "GTEXv5 Human Vagina RefSeq (Sep15) RPKM log2"
- ]
- ],
- "Whole Blood mRNA": [
- [
- "770",
- "GTEXv5_Wbl_0915",
- "GTEXv5 Human Whole Blood RefSeq (Sep15) RPKM log2"
- ]
- ]
- },
- "HB": {
- "Cerebellum mRNA": [
- [
- "326",
- "HBTRC-MLC_0611",
- "HBTRC-MLC Human Cerebellum Agilent (Jun11) mlratio"
- ],
- [
- "361",
- "HBTRC-MLC_N_0611",
- "HBTRC-MLC Human Cerebellum Agilent Normal (Jun11) mlratio"
- ],
- [
- "362",
- "HBTRC-MLC_AD_0611",
- "HBTRC-MLC Human Cerebellum Agilent AD (Jun11) mlratio"
- ],
- [
- "363",
- "HBTRC-MLC_HD_0611",
- "HBTRC-MLC Human Cerebellum Agilent HD (Jun11) mlratio"
- ]
- ],
- "Prefrontal Cortex mRNA": [
- [
- "328",
- "HBTRC-MLPFC_0611",
- "HBTRC-MLC Human Prefrontal Cortex Agilent (Jun11) mlratio"
- ],
- [
- "367",
- "HBTRC-MLPFC_N_0611",
- "HBTRC-MLC Human Prefrontal Cortex Agilent Normal (Jun11) mlratio"
- ],
- [
- "368",
- "HBTRC-MLPFC_AD_0611",
- "HBTRC-MLC Human Prefrontal Cortex Agilent AD (Jun11) mlratio"
- ],
- [
- "369",
- "HBTRC-MLPFC_HD_0611",
- "HBTRC-MLC Human Prefrontal Cortex Agilent HD (Jun11) mlratio"
- ]
- ],
- "Primary Visual Cortex mRNA": [
- [
- "327",
- "HBTRC-MLVC_0611",
- "HBTRC-MLC Human Visual Cortex Agilent (Jun11) mlratio"
- ],
- [
- "364",
- "HBTRC-MLVC_N_0611",
- "HBTRC-MLC Human Visual Cortex Agilent Normal (Jun11) mlratio"
- ],
- [
- "365",
- "HBTRC-MLVC_AD_0611",
- "HBTRC-MLC Human Visual Cortex Agilent AD (Jun11) mlratio"
- ],
- [
- "366",
- "HBTRC-MLVC_HD_0611",
- "HBTRC-MLC Human Visual Cortex Agilent HD (Jun11) mlratio"
- ]
- ]
- },
- "HCP": {
- "Phenotypes": [
- [
- "None",
- "HCPPublish",
- "HCP Private Phenotypes"
- ]
- ]
- },
- "HLC": {
- "Liver mRNA": [
- [
- "320",
- "HLC_0311",
- "GSE9588 Human Liver Normal (Mar11) Both Sexes"
- ],
- [
- "384",
- "HLCF_0311",
- "GSE9588 Human Liver Normal (Mar11) Females"
- ],
- [
- "383",
- "HLCM_0311",
- "GSE9588 Human Liver Normal (Mar11) Males"
- ]
- ],
- "Phenotypes": [
- [
- "635",
- "HLCPublish",
- "HLC Published Phenotypes"
- ]
- ]
- },
- "HLT": {
- "Lung mRNA": [
- [
- "455",
- "GSE23546HLT0613",
- "Super Series GSE23546 Whole-Genome GXD Non-Tumorous Human Lung Tissues Affy HuRSTA array (Jun11) RMA"
- ],
- [
- "454",
- "GRNG-GSE23545HLT0613",
- "GRNG/GSE23545 Whole-Genome GXD Non-Tumorous Human Lung Tissues Affy HuRSTA array (Jun11) RMA"
- ]
- ]
- },
- "HSB": {
- "Amygdala mRNA": [
- [
- "330",
- "KIN_YSM_AMY_0711",
- "GN330 Human Amygdala Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Cerebellar Cortex mRNA": [
- [
- "331",
- "KIN_YSM_CBC_0711",
- "Human Cerebellar Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Dorsolateral Prefrontal Cortex mRNA": [
- [
- "333",
- "KIN_YSM_DFC_0711",
- "Human Dorsolateral Prefrontal Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Hippocampus mRNA": [
- [
- "337",
- "KIN_YSM_HIP_0711",
- "Human Hippocampus Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Inferior Temporal Cortex mRNA": [
- [
- "339",
- "KIN_YSM_ITC_0711",
- "Human Inferior Temporal Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Medial Prefrontal Cortex mRNA": [
- [
- "343",
- "KIN_YSM_MFC_0711",
- "Human Medial Prefrontal Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Mediodorsal Nucleus of Thalamus mRNA": [
- [
- "342",
- "KIN_YSM_MD_0711",
- "Human Mediodorsal Nucleus of Thalamus Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Orbital Prefrontal Cortex mRNA": [
- [
- "347",
- "KIN_YSM_OFC_0711",
- "Human Orbital Prefrontal Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Phenotypes": [
- [
- "None",
- "HSBPublish",
- "HSB Published Phenotypes"
- ]
- ],
- "Posterior Inferior Parietal Cortex mRNA": [
- [
- "338",
- "KIN_YSM_IPC_0711",
- "Human Posterior Inferior Parietal Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Posterior Superior Temporal Cortex mRNA": [
- [
- "350",
- "KIN_YSM_STC_0711",
- "Human Posterior Superior Temporal Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Primary Auditory (A1) Cortex mRNA": [
- [
- "329",
- "KIN_YSM_A1C_0711",
- "Human Primary Auditory (A1) Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Primary Motor (M1) Cortex mRNA": [
- [
- "341",
- "KIN_YSM_M1C_0711",
- "Human Primary Motor (M1) Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Primary Somatosensory (S1) Cortex mRNA": [
- [
- "349",
- "KIN_YSM_S1C_0711",
- "Human Primary Somatosensory (S1) Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Primary Visual Cortex mRNA": [
- [
- "354",
- "KIN_YSM_V1C_0711",
- "Human Primary Visual Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Striatum mRNA": [
- [
- "351",
- "KIN_YSM_STR_0711",
- "Human Striatum Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ],
- "Ventrolateral Prefrontal Cortex mRNA": [
- [
- "356",
- "KIN_YSM_VFC_0711",
- "Human Ventrolateral Prefrontal Cortex Affy Hu-Exon 1.0 ST (Jul11) Quantile"
- ]
- ]
- },
- "Islets-Gerling": {
- "Phenotypes": [
- [
- "None",
- "Islets-GerlingPublish",
- "Islets-Gerling Phenotypes"
- ]
- ]
- },
- "TIGEM-Retina-RNA-Seq": {
- "Phenotypes": [
- [
- "None",
- "TIGEM-Retina-RNA-SeqPublish",
- "TIGEM-Retina-RNA-Seq Phenotypes"
- ]
- ],
- "Retina mRNA": [
- [
- "802",
- "TIGEM_hg38_ret_rna-seq_0916",
- "TIGEM Human Retina RNA-Seq (Sep16) RPKM log2"
- ]
- ]
- }
- },
- "mouse": {
- "AIL": {
- "Genotypes": [
- [
- "None",
- "AILGeno",
- "AIL Genotypes"
- ]
- ],
- "Hippocampus mRNA": [
- [
- "874",
- "UCSD_AIL_HIP_RNA-Seq_log2_0418",
- "UCSD AIL Hippocampus (Apr18) RNA-Seq Log2"
- ],
- [
- "844",
- "UCSD_AIL_HIP_RNA-Seq_0418",
- "UCSD AIL Hippocampus (Apr18) RNA-Seq"
- ]
- ],
- "Phenotypes": [
- [
- "653",
- "AILPublish",
- "AIL Phenotypes"
- ]
- ],
- "Prefrontal Cortex mRNA": [
- [
- "876",
- "UCSD_AIL_PFC_RNA-Seq_log2_0418",
- "UCSD AIL Prefrontal Cortex (Apr18) RNA-Seq Log2"
- ],
- [
- "846",
- "UCSD_AIL_PFC_RNA-Seq_0418",
- "UCSD AIL Prefrontal Cortex (Apr18) RNA-Seq"
- ]
- ],
- "Striatum mRNA": [
- [
- "875",
- "UCSD_AIL_STR_RNA-Seq_log2_0418",
- "UCSD AIL Striatum (Apr18) RNA-Seq Log2"
- ],
- [
- "845",
- "UCSD_AIL_STR_RNA-Seq_0418",
- "UCSD AIL Striatum (Apr18) RNA-Seq"
- ]
- ]
- },
- "AIL-LGSM-F34-A": {
- "Phenotypes": [
- [
- "655",
- "AIL-LGSM-F34-APublish",
- "AIL F34-A Phenotypes"
- ]
- ]
- },
- "AIL-LGSM-F34-F39-43-GBS": {
- "Phenotypes": [
- [
- "654",
- "AIL-LGSM-F34-F39-43-GBSPublish",
- "AIL F34-F39-43-GBS Phenotypes"
- ]
- ]
- },
- "AIL-LGSM-F34-GBS": {
- "Phenotypes": [
- [
- "656",
- "AIL-LGSM-F34-GBSPublish",
- "AIL F34-GBS Phenotypes"
- ]
- ]
- },
- "AIL-LGSM-F39-43-GBS": {
- "Phenotypes": [
- [
- "657",
- "AIL-LGSM-F39-43-GBSPublish",
- "AIL F39-43-GBS Phenotypes"
- ]
- ]
- },
- "AKXD": {
- "Genotypes": [
- [
- "611",
- "AKXDGeno",
- "AKXD Genotypes"
- ]
- ],
- "Mammary Tumors mRNA": [
- [
- "224",
- "NCI_Agil_Mam_Tum_RMA_0409",
- "NCI Mammary LMT miRNA v2 (Apr09) RMA"
- ],
- [
- "36",
- "MA_M_0704_M",
- "NCI Mammary mRNA M430 (July04) MAS5"
- ],
- [
- "37",
- "MA_M_0704_R",
- "NCI Mammary mRNA M430 (July04) RMA"
- ]
- ]
- },
- "AXBXA": {
- "Bone Femur mRNA": [
- [
- "411",
- "UCLA_AXB/BXA_Femur_0113_RSN",
- "UCLA GSE27483 AXB/BXA Bone Femur ILM Mouse WG-6 v1, v1.1 (Jan13) RSN"
- ]
- ],
- "Eye mRNA": [
- [
- "210",
- "Eye_AXBXA_1008_RankInv",
- "Eye AXBXA Illumina V6.2(Oct08) RankInv Beta"
- ]
- ],
- "Genotypes": [
- [
- "636",
- "AXBXAGeno",
- "AXBXA Genotypes"
- ]
- ],
- "Heart mRNA": [
- [
- "820",
- "UCLA_AXB_BXA_Aor_Jan16",
- "UCLA AXB/BXA Aorta Affy M430 2.0 (Jan16) RMA"
- ],
- [
- "421",
- "IRCM_AXBXA_HRI0213",
- "IRCM AXB/BXA Mouse Heart ILM MouseRef-8 v2.0 (Feb13) RankInv"
- ]
- ],
- "Liver mRNA": [
- [
- "822",
- "UCLA_AXB_BXA_Liv_Jan16",
- "UCLA AXB/BXA Liver Affy M430 2.0 (Jan16) RMA"
- ],
- [
- "352",
- "GSE16780AB_UCLA_ML0911",
- "GSE16780 UCLA Mouse AXB/BXA Liver Affy HT M430A (Sep11) RMA"
- ]
- ],
- "Phenotypes": [
- [
- "629",
- "AXBXAPublish",
- "AXB/BXA Published Phenotypes"
- ]
- ]
- },
- "B6BTBRF2": {
- "Genotypes": [
- [
- "618",
- "B6BTBRF2Geno",
- "B6BTBRF2 Genotypes"
- ]
- ],
- "Liver mRNA": [
- [
- "38",
- "LVF2_M_0704_M",
- "(B6 x BTBR)F2-ob/ob Liver mRNA M430 (Jul04) MAS5"
- ],
- [
- "39",
- "LVF2_M_0704_R",
- "(B6 x BTBR)F2-ob/ob Liver mRNA M430 (Jul04) RMA"
- ]
- ],
- "Phenotypes": [
- [
- "603",
- "B6BTBRF2Publish",
- "B6BTBRF2 Published Phenotypes"
- ]
- ]
- },
- "B6D2": {
- "Phenotypes": [
- [
- "None",
- "B6D2Publish",
- "UTHSC-Glaucoma-Aged-Retina Phenotypes"
- ]
- ]
- },
- "B6D2F2": {
- "Brain mRNA": [
- [
- "78",
- "BRF2_M_0805_P",
- "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) PDNN"
- ],
- [
- "77",
- "BRF2_M_0805_R",
- "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) RMA"
- ],
- [
- "76",
- "BRF2_M_0805_M",
- "OHSU/VA B6D2F2 Brain mRNA M430 (Aug05) MAS5"
- ],
- [
- "33",
- "BRF2_M_0304_P",
- "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) PDNN"
- ],
- [
- "31",
- "BRF2_M_0304_M",
- "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) MAS5"
- ],
- [
- "32",
- "BRF2_M_0304_R",
- "OHSU/VA B6D2F2 Brain mRNA M430A (Mar04) RMA"
- ]
- ],
- "Genotypes": [
- [
- "637",
- "B6D2F2Geno",
- "B6D2F2 Genotypes"
- ]
- ]
- },
- "B6D2F2-PSU": {
- "Genotypes": [
- [
- "617",
- "B6D2F2-PSUGeno",
- "B6D2F2-PSU Genotypes"
- ]
- ],
- "Phenotypes": [
- [
- "None",
- "B6D2F2-PSUPublish",
- "B6D2F2 PSU Phenotypes"
- ]
- ]
- },
- "B6D2RI": {
- "Hippocampus mRNA": [
- [
- "712",
- "UTHSC_BXDAged_0615",
- "UTHSC BXD Aged Hippocampus Affy Mouse Gene 1.0 ST (Jun15) RMA"
- ],
- [
- "805",
- "UTHSC_BXDAgedEx_1116",
- "UTHSC BXD Aged Hippocampus Affy Mouse Gene 1.0 ST (Jun15) Exon Level RMA"
- ],
- [
- "391",
- "UTHSC_B6D2RI_H_0912",
- "UTHSC B6D2RI Aged Hippocampus Affy Mouse Gene 1.0 ST (Sep12) RMA"
- ]
- ],
- "Phenotypes": [
- [
- "651",
- "B6D2RIPublish",
- "B6D2RI Phenotypes"
- ]
- ]
- },
- "BDF2-1999": {
- "Genotypes": [
- [
- "None",
- "BDF2-1999Geno",
- "BDF2-1999 Genotypes"
- ]
- ],
- "Liver mRNA": [
- [
- "169",
- "UCLA_BDF2_LIVER_1999",
- "UCLA BDF2 Liver (1999) mlratio"
- ]
- ]
- },
- "BDF2-2005": {
- "Genotypes": [
- [
- "None",
- "BDF2-2005Geno",
- "BDF2-2005 Genotypes"
- ]
- ],
- "Striatum mRNA": [
- [
- "83",
- "SA_M2_0905_M",
- "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) MAS5"
- ],
- [
- "85",
- "SA_M2_0905_P",
- "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) PDNN"
- ],
- [
- "84",
- "SA_M2_0905_R",
- "OHSU/VA B6D2F2 Striatum M430v2 (Sep05) RMA"
- ]
- ]
- },
- "BHF2": {
- "Adipose mRNA": [
- [
- "197",
- "UCLA_BHF2_ADIPOSE_FEMALE",
- "UCLA BHF2 Adipose Female mlratio"
- ],
- [
- "196",
- "UCLA_BHF2_ADIPOSE_MALE",
- "UCLA BHF2 Adipose Male mlratio"
- ],
- [
- "165",
- "UCLA_BHF2_ADIPOSE_0605",
- "UCLA BHF2 Adipose (June05) mlratio"
- ]
- ],
- "Brain mRNA": [
- [
- "199",
- "UCLA_BHF2_BRAIN_FEMALE",
- "UCLA BHF2 Brain Female mlratio"
- ],
- [
- "198",
- "UCLA_BHF2_BRAIN_MALE",
- "UCLA BHF2 Brain Male mlratio"
- ],
- [
- "166",
- "UCLA_BHF2_BRAIN_0605",
- "UCLA BHF2 Brain (June05) mlratio"
- ]
- ],
- "Genotypes": [
- [
- "None",
- "BHF2Geno",
- "BHF2 Genotypes"
- ]
- ],
- "Liver mRNA": [
- [
- "201",
- "UCLA_BHF2_LIVER_FEMALE",
- "UCLA BHF2 Liver Female mlratio"
- ],
- [
- "200",
- "UCLA_BHF2_LIVER_MALE",
- "UCLA BHF2 Liver Male mlratio"
- ],
- [
- "167",
- "UCLA_BHF2_LIVER_0605",
- "UCLA BHF2 Liver (June05) mlratio"
- ]
- ],
- "Phenotypes": [
- [
- "None",
- "BHF2Publish",
- "BHF2 Phenotypes"
- ]
- ]
- },
- "BHHBF2": {
- "Adipose mRNA": [
- [
- "174",
- "UCLA_BHHBF2_ADIPOSE_2005",
- "UCLA BHHBF2 Adipose (2005) mlratio"
- ],
- [
- "180",
- "UCLA_BHHBF2_ADIPOSE_MALE",
- "UCLA BHHBF2 Adipose Male Only"
- ],
- [
- "181",
- "UCLA_BHHBF2_ADIPOSE_FEMALE",
- "UCLA BHHBF2 Adipose Female Only"
- ]
- ],
- "Brain mRNA": [
- [
- "175",
- "UCLA_BHHBF2_BRAIN_2005",
- "UCLA BHHBF2 Brain (2005) mlratio"
- ],
- [
- "182",
- "UCLA_BHHBF2_BRAIN_MALE",
- "UCLA BHHBF2 Brain Male Only"
- ],
- [
- "183",
- "UCLA_BHHBF2_BRAIN_FEMALE",
- "UCLA BHHBF2 Brain Female Only"
- ]
- ],
- "Genotypes": [
- [
- "None",
- "BHHBF2Geno",
- "BHHBF2 Genotypes"
- ]
- ],
- "Liver mRNA": [
- [
- "176",
- "UCLA_BHHBF2_LIVER_2005",
- "UCLA BHHBF2 Liver (2005) mlratio"
- ],
- [
- "184",
- "UCLA_BHHBF2_LIVER_MALE",
- "UCLA BHHBF2 Liver Male Only"
- ],
- [
- "185",
- "UCLA_BHHBF2_LIVER_FEMALE",
- "UCLA BHHBF2 Liver Female Only"
- ]
- ],
- "Muscle mRNA": [
- [
- "177",
- "UCLA_BHHBF2_MUSCLE_2005",
- "UCLA BHHBF2 Muscle (2005) mlratio"
- ],
- [
- "186",
- "UCLA_BHHBF2_MUSCLE_MALE",
- "UCLA BHHBF2 Muscle Male Only"
- ],
- [
- "187",
- "UCLA_BHHBF2_MUSCLE_FEMALE",
- "UCLA BHHBF2 Muscle Female Only"
- ]
- ]
- },
- "BXD": {
- "Adipose Proteome": [
- [
- "797",
- "EPFL_AdiPro0416",
- "EPFL/ETHZ BXD Brown Adipose, Total Tissue Proteome, Chow Diet (Apr16) Light SWATH"
- ],
- [
- "798",
- "EPFL_AdiMitPro0416",
- "EPFL/ETHZ BXD Brown Adipose, Isolated Mitochondria Proteome, Chow Diet (Apr16) Light SWATH"
- ]
- ],
- "Adipose mRNA": [
- [
- "469",
- "EPFLADGL1013",
- "EPFL/LISP BXD CD Brown Adipose Affy Mouse Gene 2.0 ST Gene Level (Oct13) RMA"
- ],
- [
- "470",
- "EPFLADEL1013",
- "EPFL/LISP BXD CD Brown Adipose Affy Mouse Gene 2.0 ST Exon Level (Oct13) RMA"
- ],
- [
- "777",
- "EL_BXDCDHFDScWAT_0216",
- "EPFL/LISP BXD CD+HFD Subcutaneous WAT Affy MTA 1.0 Gene Level (Feb16) RMA"
- ],
- [
- "778",
- "EL_BXDHFDScWAT_0216",
- "EPFL/LISP BXD HFD Subcutaneous WAT Affy MTA 1.0 Gene Level (Feb16) RMA"
- ],
- [
- "779",
- "EL_BXDCDScWAT_0216",
- "EPFL/LISP BXD CD Subcutaneous WAT Affy MTA 1.0 Gene Level (Feb16) RMA"
- ]
- ],
- "Adrenal Gland mRNA": [
- [
- "388",
- "INIA_Adrenal_RMA_0612",
- "INIA Adrenal Affy MoGene 1.0ST (Jun12) RMA"
- ],
- [
- "426",
- "INIA_Adrenal_RMA_F_0612",
- "INIA Adrenal Affy MoGene 1.0ST (Jun12) RMA Females"
- ],
- [
- "425",
- "INIA_Adrenal_RMA_M_0612",
- "INIA Adrenal Affy MoGene 1.0ST (Jun12) RMA Males"
- ],
- [
- "334",
- "INIA_Adrenal_RMA_Ex_0612",
- "INIA Adrenal Affy MoGene 1.0ST (Jun12) RMA Exon Level"
- ]
- ],
- "Amygdala mRNA": [
- [
- "323",
- "INIA_AmgCoh_0311",
- "INIA Amygdala Cohort Affy MoGene 1.0 ST (Mar11) RMA"
- ],
- [
- "280",
- "INIA_Amg_BLA_RMA_1110",
- "INIA Amygdala Affy MoGene 1.0 ST (Nov10) RMA"
- ],
- [
- "316",
- "INIA_Amg_BLA_RMA_M_1110",
- "INIA Amygdala Affy MoGene 1.0 ST (Nov10) RMA Male"
- ],
- [
- "315",
- "INIA_Amg_BLA_RMA_F_1110",
- "INIA Amygdala Affy MoGene 1.0 ST (Nov10) RMA Female"
- ],
- [
- "158",
- "INIA_Amg_BLA_Ex-RMA_1110",
- "INIA Amygdala Exon Affy MoGene 1.0 ST (Nov10) RMA"
- ]
- ],
- "Bone Femur mRNA": [
- [
- "410",
- "UCLA_BXD_Femur_0113_RSN",
- "UCLA GSE27483 BXD Bone Femur ILM Mouse WG-6 v1, v1.1 (Jan13) RSN"
- ],
- [
- "414",
- "UCLA_BXD-on_Femur_0113_RSN",
- "UCLA GSE27483 BXD Only Bone Femur ILM Mouse WG-6 v1.1 (Jan13) RSN"
- ]
- ],
- "Brain mRNA": [
- [
- "164",
- "UTHSC_BXD_WB_RNASeq1112",
- "UTHSC Mouse BXD Whole Brain RNA Sequence (Nov12) RPKM Untrimmed"
- ],
- [
- "590",
- "UTHSC_BXD_WB_RNASeqtrim1_1112",
- "UTHSC Mouse BXD Whole Brain RNA Sequence (Nov12) RPKM Trimmed 1.0"
- ],
- [
- "394",
- "UTHSC_BXD_WB_RNASeqEx1112",
- "UTHSC Mouse BXD Whole Brain RNA Sequence Exon Level (Nov12) RPKM"
- ],
- [
- "123",
- "BR_M2_1106_R",
- "UCHSC BXD Whole Brain M430 2.0 (Nov06) RMA"
- ],
- [
- "113",
- "IBR_M_0606_R",
- "INIA Brain mRNA M430 (Jun06) RMA"
- ],
- [
- "101",
- "IBR_M_0106_P",
- "INIA Brain mRNA M430 (Jan06) PDNN"
- ],
- [
- "102",
- "IBR_M_0106_R",
- "INIA Brain mRNA M430 (Jan06) RMA"
- ],
- [
- "95",
- "BR_U_1105_P",
- "UTHSC Brain mRNA U74Av2 (Nov05) PDNN"
- ],
- [
- "81",
- "BR_U_0805_P",
- "UTHSC Brain mRNA U74Av2 (Aug05) PDNN"
- ],
- [
- "80",
- "BR_U_0805_M",
- "UTHSC Brain mRNA U74Av2 (Aug05) MAS5"
- ],
- [
- "82",
- "BR_U_0805_R",
- "UTHSC Brain mRNA U74Av2 (Aug05) RMA"
- ],
- [
- "42",
- "CB_M_0204_P",
- "INIA Brain mRNA M430 (Feb04) PDNN"
- ]
- ],
- "Cartilage mRNA": [
- [
- "208",
- "UCLA_BXDBXH_CARTILAGE_V2",
- "UCLA BXD and BXH Cartilage v2"
- ],
- [
- "204",
- "UCLA_BXDBXH_CARTILAGE",
- "UCLA BXD and BXH Cartilage"
- ],
- [
- "178",
- "UCLA_BXD_CARTILAGE",
- "UCLA BXD Cartilage"
- ]
- ],
- "Cerebellum mRNA": [
- [
- "72",
- "GCB_M2_0505_R",
- "GE-NIAAA Cerebellum mRNA M430v2 (May05) RMA"
- ],
- [
- "73",
- "GCB_M2_0505_P",
- "GE-NIAAA Cerebellum mRNA M430v2 (May05) PDNN"
- ],
- [
- "71",
- "GCB_M2_0505_M",
- "GE-NIAAA Cerebellum mRNA M430v2 (May05) MAS5"
- ],
- [
- "56",
- "CB_M_0305_R",
- "SJUT Cerebellum mRNA M430 (Mar05) RMA"
- ],
- [
- "55",
- "CB_M_0305_P",
- "SJUT Cerebellum mRNA M430 (Mar05) PDNN"
- ],
- [
- "54",
- "CB_M_0305_M",
- "SJUT Cerebellum mRNA M430 (Mar05) MAS5"
- ],
- [
- "46",
- "CB_M_1004_R",
- "SJUT Cerebellum mRNA M430 (Oct04) RMA"
- ],
- [
- "45",
- "CB_M_1004_P",
- "SJUT Cerebellum mRNA M430 (Oct04) PDNN"
- ],
- [
- "44",
- "CB_M_1004_M",
- "SJUT Cerebellum mRNA M430 (Oct04) MAS5"
- ],
- [
- "9",
- "CB_M_1003_M",
- "SJUT Cerebellum mRNA M430 (Oct03) MAS5"
- ]
- ],
- "Eye mRNA": [
- [
- "207",
- "Eye_M2_0908_R",
- "Eye M430v2 (Sep08) RMA"
- ],
- [
- "10",
- "gn10",
- "Eye M430v2 No Mutant/Mutant (Aug12) RMA"
- ],
- [
- "261",
- "Eye_M2_0908_R_NB",
- "Eye M430v2 Mutant Gpnmb (Sep08) RMA"
- ],
- [
- "262",
- "Eye_M2_0908_R_ND",
- "Eye M430v2 WT Gpnmb (Sep08) RMA"
- ],
- [
- "382",
- "Eye_M2_0908_WTWT",
- "Eye M430v2 WT WT (Sep08) RMA"
- ],
- [
- "279",
- "Eye_M2_0908_R_WT",
- "Eye M430v2 WT Tyrp1 (Sep08) RMA"
- ],
- [
- "278",
- "Eye_M2_0908_R_MT",
- "Eye M430v2 Mutant Tyrp1 (Sep08) RMA"
- ],
- [
- "400",
- "DBA2J-ONH-1212",
- "Howell et al. 2011, DBA/2J Glaucoma Optic Nerve Head M430 2.0 (Dec12) RMA"
- ],
- [
- "360",
- "BXD_GLA_0911",
- "Howell et al. 2011, DBA/2J Glaucoma Retina M430 2.0 (Sep11) RMA"
- ]
- ],
- "Fecal Metabolome": [
- [
- "717",
- "RTI_RCMRC-BXDFecMetlog0814",
- "RTI RCMRC BXD Fecal Metabolites CD+HFD (Aug14) Log2"
- ],
- [
- "716",
- "RTI_RCMRC-BXDFecMetHFlog0814",
- "RTI RCMRC BXD Fecal Metabolites HFD (Aug14) Log2"
- ],
- [
- "715",
- "RTI_RCMRC-BXDFecMetLFlog0814",
- "RTI RCMRC BXD Fecal Metabolites CD (Aug14) Log2"
- ]
- ],
- "Gastrointestinal mRNA": [
- [
- "539",
- "UTHSC_GutGL_0414",
- "UTHSC Mouse BXD Gastrointestinal Affy MoGene 1.0 ST Gene Level (Apr14) RMA"
- ],
- [
- "597",
- "UTHSC_GutExL_0414",
- "UTHSC Mouse BXD Gastrointestinal Affy MoGene 1.0 ST Exon Level (Apr14) RMA"
- ]
- ],
- "Genotypes": [
- [
- "600",
- "BXDGeno",
- "BXD Genotypes"
- ]
- ],
- "Heart mRNA": [
- [
- "819",
- "UCLA_BXD_Aor_Jan16",
- "UCLA BXD Aorta Affy M430 2.0 (Jan16) RMA"
- ],
- [
- "485",
- "EPFL-LISPBXDHeCD0114",
- "EPFL/LISP BXD CD Heart Affy Mouse Gene 2.0 ST Gene Level (Jan14) RMA"
- ],
- [
- "486",
- "EPFL-LISPBXDHeHFD0114",
- "EPFL/LISP BXD HFD Heart Affy Mouse Gene 2.0 ST Gene Level (Jan14) RMA"
- ],
- [
- "487",
- "EPFL-LISPBXDHeCDEx0114",
- "EPFL/LISP BXD CD Heart Affy Mouse Gene 2.0 ST Exon Level (Jan14) RMA"
- ],
- [
- "488",
- "EPFL-LISPBXDHeHFDEx0114",
- "EPFL/LISP BXD HFD Heart Affy Mouse Gene 2.0 ST Exon Level (Jan14) RMA"
- ]
- ],
- "Hematopoietic Cells mRNA": [
- [
- "149",
- "UMCG_0907_HemaStem_ori",
- "UMCG Stem Cells ILM6v1.1 (Apr09) original"
- ],
- [
- "145",
- "UMCG_0907_HemaStem",
- "UMCG Stem Cells ILM6v1.1 (Apr09) transformed"
- ],
- [
- "151",
- "UMCG_0907_Pro_ori",
- "UMCG Progenitor Cells ILM6v1.1 (Apr09) original"
- ],
- [
- "147",
- "UMCG_0907_Pro",
- "UMCG Progenitor Cells ILM6v1.1 (Apr09) transformed"
- ],
- [
- "150",
- "UMCG_0907_Eryth_ori",
- "UMCG Erythroid Cells ILM6v1.1 (Apr09) original"
- ],
- [
- "146",
- "UMCG_0907_Eryth",
- "UMCG Erythroid Cells ILM6v1.1 (Apr09) transformed"
- ],
- [
- "148",
- "UMCG_0907_Myeloid_ori",
- "UMCG Myeloid Cells ILM6v1.1 (Apr09) original"
- ],
- [
- "144",
- "UMCG_0907_Myeloid",
- "UMCG Myeloid Cells ILM6v1.1 (Apr09) transformed"
- ],
- [
- "7",
- "HC_U_0304_R",
- "GNF Stem Cells U74Av2 (Mar04) RMA"
- ]
- ],
- "Hippocampal Precursor Cells mRNA": [
- [
- "706",
- "CRTD_HipPreCell1214",
- "CRTD BXD Hippocampal Precursor Cells ILM MouseWG-6_R13 (Dec14) Quantile"
- ]
- ],
- "Hippocampus mRNA": [
- [
- "112",
- "HC_M2_0606_P",
- "Hippocampus Consortium M430v2 (Jun06) PDNN"
- ],
- [
- "111",
- "HC_M2_0606_M",
- "Hippocampus Consortium M430v2 (Jun06) MAS5"
- ],
- [
- "110",
- "HC_M2_0606_R",
- "Hippocampus Consortium M430v2 (Jun06) RMA"
- ],
- [
- "206",
- "UMUTAffyExon_0209_RMA",
- "UMUTAffy Hippocampus Exon (Feb09) RMA"
- ],
- [
- "814",
- "UTHSC_ILM_BXD_hipp_NOSb_0217",
- "UTHSC BXD Hippocampus ILM v6.1 NOS Balanced (Feb17) RankInv"
- ],
- [
- "815",
- "UTHSC_ILM_BXD_hipp_NOEb_0217",
- "UTHSC BXD Hippocampus ILM v6.1 NOE Balanced (Feb17) RankInv"
- ],
- [
- "816",
- "UTHSC_ILM_BXD_hipp_RSSb_0217",
- "UTHSC BXD Hippocampus ILM v6.1 RSS Balanced (Feb17) RankInv"
- ],
- [
- "817",
- "UTHSC_ILM_BXD_hipp_RSEb_0217",
- "UTHSC BXD Hippocampus ILM v6.1 RSE Balanced (Feb17) RankInv"
- ],
- [
- "780",
- "UTHSC_ILM_BXD_hipp_NOEb_0216",
- "UTHSC BXD Hippocampus ILM v6.1 NOE Balanced (Feb16) RankInv"
- ],
- [
- "781",
- "UTHSC_ILM_BXD_hipp_RSEb_0216",
- "UTHSC BXD Hippocampus ILM v6.1 RSE Balanced (Feb16) RankInv"
- ],
- [
- "782",
- "UTHSC_ILM_BXD_hipp_RSSb_0216",
- "UTHSC BXD Hippocampus ILM v6.1 RSS Balanced (Feb16) RankInv"
- ],
- [
- "291",
- "UT_ILM_BXD_hipp_5T_1112",
- "UTHSC Hippocampus Illumina v6.1 All Combined (Nov12) RankInv"
- ],
- [
- "292",
- "UT_ILM_BXD_hipp_NON_1112",
- "UTHSC Hippocampus Illumina v6.1 NON (Nov12) RankInv"
- ],
- [
- "293",
- "UT_ILM_BXD_hipp_NOS_1112",
- "UTHSC Hippocampus Illumina v6.1 NOS (Nov12) RankInv"
- ],
- [
- "294",
- "UT_ILM_BXD_hipp_NOE_1112",
- "UTHSC Hippocampus Illumina v6.1 NOE (Nov12) RankInv"
- ],
- [
- "295",
- "UT_ILM_BXD_hipp_RSS_1112",
- "UTHSC Hippocampus Illumina v6.1 RSS (Nov12) RankInv"
- ],
- [
- "296",
- "UT_ILM_BXD_hipp_RSE_1112",
- "UTHSC Hippocampus Illumina v6.1 RSE (Nov12) RankInv"
- ],
- [
- "242",
- "UT_ILM_BXD_hipp_NON_0909",
- "UTHSC Hippocampus Illumina v6.1 NON (Sep09) RankInv"
- ],
- [
- "243",
- "UT_ILM_BXD_hipp_NOS_0909",
- "UTHSC Hippocampus Illumina v6.1 NOS (Sep09) RankInv"
- ],
- [
- "246",
- "UT_ILM_BXD_hipp_NOE_0909",
- "UTHSC Hippocampus Illumina v6.1 NOE (Sep09) RankInv"
- ],
- [
- "244",
- "UT_ILM_BXD_hipp_RSS_0909",
- "UTHSC Hippocampus Illumina v6.1 RSS (Sep09) RankInv"
- ],
- [
- "245",
- "UT_ILM_BXD_hipp_RSE_0909",
- "UTHSC Hippocampus Illumina v6.1 RSE (Sep09) RankInv"
- ],
- [
- "711",
- "UTHSC_BXD_AgeHipp0515",
- "UTHSC BXD Aged Hippocampus Affy MoGene1.0 ST (May15) RMA Gene Level"
- ]
- ],
- "Hypothalamus mRNA": [
- [
- "281",
- "INIA_Hyp_RMA_1110",
- "INIA Hypothalamus Affy MoGene 1.0 ST (Nov10)"
- ],
- [
- "318",
- "INIA_Hyp_M_RMA_1110",
- "INIA Hypothalamus Affy MoGene 1.0 ST (Nov10) Male"
- ],
- [
- "317",
- "INIA_Hyp_F_RMA_1110",
- "INIA Hypothalamus Affy MoGene 1.0 ST (Nov10) Female"
- ],
- [
- "459",
- "INIA_Hyp_PCA_0813_v4",
- "INIA Hypothalamus Affy MoGene 1.0 ST (Nov10) PCA Test v080913"
- ],
- [
- "458",
- "INIA_Hyp_PCA_0813_v3",
- "INIA Hypothalamus Affy MoGene 1.0 ST (Nov10) PCA Test v080813"
- ],
- [
- "457",
- "INIA_Hyp_PCA_0813_v2",
- "INIA Hypothalamus Affy MoGene 1.0 ST (Nov10) PCA Test v080513"
- ],
- [
- "456",
- "INIA_Hyp_PCA_0813",
- "INIA Hypothalamus Affy MoGene 1.0 ST (Nov10) PCA Test v080213"
- ],
- [
- "159",
- "INIA_Hyp_RMA_Ex-1110",
- "INIA Hypothalamus Exon Affy MoGene 1.0 ST (Nov10)"
- ]
- ],
- "Kidney mRNA": [
- [
- "240",
- "MA_M2M_0706_R",
- "Mouse kidney M430v2 Male (Aug06) RMA"
- ],
- [
- "239",
- "MA_M2F_0706_R",
- "Mouse kidney M430v2 Female (Aug06) RMA"
- ],
- [
- "118",
- "MA_M2_0806_R",
- "Mouse kidney M430v2 Sex Balanced (Aug06) RMA"
- ],
- [
- "117",
- "MA_M2_0806_P",
- "Mouse Kidney M430v2 Sex Balanced (Aug06) PDNN"
- ],
- [
- "115",
- "MA_M2_0706_R",
- "Mouse Kidney M430v2 (Jul06) RMA"
- ],
- [
- "116",
- "MA_M2_0706_P",
- "Mouse Kidney M430v2 (Jul06) PDNN"
- ]
- ],
- "Liver Metabolome": [
- [
- "835",
- "UTHSC-ETHZ-EPFL_LivPMetExtACD0817",
- "UTHSC/ETHZ/EPFL BXD Liver Polar Metabolites Extraction, Chow Diet Cohorts (Jul 2017) log2"
- ],
- [
- "836",
- "UTHSC-ETHZ-EPFL_LivPMetExtAHFD0817",
- "UTHSC/ETHZ/EPFL BXD Liver Polar Metabolites Extraction, HFD Cohorts (Jul 2017) log2"
- ],
- [
- "473",
- "EPFL-LISP_LivPMetCDHFD1213",
- "EPFL/LISP BXD Liver Polar Metabolites CD+HFD (Jun14)"
- ],
- [
- "474",
- "EPFL-LISP_LivPMetHFD1213",
- "EPFL/LISP BXD Liver Polar Metabolites HFD (Jun14)"
- ],
- [
- "475",
- "EPFL-LISP_LivPMetCD1213",
- "EPFL/LISP BXD Liver Polar Metabolites CD (Jun14)"
- ],
- [
- "713",
- "EPFL-LISP_LivPMetlog2HFD1213",
- "EPFL/LISP BXD Liver Polar Metabolites HFD (Jun14) Log2"
- ],
- [
- "714",
- "EPFL-LISP_LivPMetlog2CD1213",
- "EPFL/LISP BXD Liver Polar Metabolites CD (Jun14) Log2"
- ]
- ],
- "Liver Proteome": [
- [
- "540",
- "EPFLETHZBXDprotCD0514",
- "EPFL/ETHZ BXD Liver, Chow Diet (Jun16) Top100 SWATH"
- ],
- [
- "541",
- "EPFLETHZBXDprotHFD0514",
- "EPFL/ETHZ BXD Liver, High Fat Diet (Jun16) Top100 SWATH"
- ],
- [
- "704",
- "EPFLETHZBXDprotCD_LS1114",
- "EPFL/ETHZ BXD Liver, Chow Diet (Oct14) Top10 SWATH"
- ],
- [
- "705",
- "EPFLETHZBXDprotHF_LS1114",
- "EPFL/ETHZ BXD Liver, High Fat Diet Diet (Oct14) Top10 SWATH"
- ],
- [
- "703",
- "EPFLBXDprotCD-CDHFDRPN0214",
- "EPFL/LISP BXD Liver, Soluble Proteins CD+HFD (Feb14) SRM"
- ],
- [
- "490",
- "EPFLBXDprotCDRPN0214",
- "EPFL/LISP BXD Liver, Soluble Proteins CD (Feb14) SRM"
- ],
- [
- "489",
- "EPFLBXDprotHFDRPN0214",
- "EPFL/LISP BXD Liver, Soluble Proteins HFD (Feb14) SRM"
- ]
- ],
- "Liver mRNA": [
- [
- "857",
- "EPFLMouseLiverCDHFDRMA0818",
- "EPFL/LISP BXD CD+HFD Liver Affy Mouse Gene 1.0 ST (Aug18) RMA"
- ],
- [
- "858",
- "EPFLMouseLiverHFDRMA0818",
- "EPFL/LISP BXD HFD Liver Affy Mouse Gene 1.0 ST (Aug18) RMA"
- ],
- [
- "859",
- "EPFLMouseLiverCDRMA0818",
- "EPFL/LISP BXD CD Liver Affy Mouse Gene 1.0 ST (Aug18) RMA"
- ],
- [
- "854",
- "NIA-AgBXD-Liv_CDHFD-rna-seq-0818",
- "NIA Aging BXD CD+HFD Liver RNA-Seq (Aug18) Log2"
- ],
- [
- "855",
- "NIA-AgBXD-Liv_HFD-rna-seq-0818",
- "NIA Aging BXD HFD Liver RNA-Seq (Aug18) Log2"
- ],
- [
- "856",
- "NIA-AgBXD-Liv_CD-rna-seq-0818",
- "NIA Aging BXD CD Liver RNA-Seq (Aug18) Log2"
- ],
- [
- "818",
- "UCLA_BXD_Liv_Jan16",
- "UCLA BXD Liver Affy M430 2.0 (Jan16) RMA"
- ],
- [
- "430",
- "EPFLMouseLiverRMA0413",
- "EPFL/LISP BXD CD+HFD Liver Affy Mouse Gene 1.0 ST (Apr13) RMA"
- ],
- [
- "431",
- "EPFLMouseLiverHFDRMA0413",
- "EPFL/LISP BXD HFD Liver Affy Mouse Gene 1.0 ST (Apr13) RMA"
- ],
- [
- "848",
- "EPFLMouseLiverHFCEx0413",
- "EPFL/LISP BXD HFC Liver Affy Mouse Gene 1.0 ST (Apr13) RMA Exon Level"
- ],
- [
- "432",
- "EPFLMouseLiverCDRMA0413",
- "EPFL/LISP BXD CD Liver Affy Mouse Gene 1.0 ST (Apr13) RMA"
- ],
- [
- "849",
- "EPFLMouseLiverCDEx0413",
- "EPFL/LISP BXD CD Liver Affy Mouse Gene 1.0 ST (Apr13) RMA Exon Level"
- ],
- [
- "433",
- "EPFLMouseLiverBothExRMA0413",
- "EPFL/LISP BXD CD+HFD Liver Affy Mouse Gene 1.0 ST (Apr13) RMA Exon Level"
- ],
- [
- "700",
- "UTHSC-VGX_MmBXDHepatocytesRMA1014",
- "UT-VGX Hepatocytes Affy Mouse Gene 1.0 ST Gene Level (Oct14) RMA"
- ],
- [
- "701",
- "UT-VGX_HEL1014",
- "UT-VGX Hepatocytes Affy Mouse Gene 1.0 ST Exon Level (Oct14) RMA"
- ],
- [
- "373",
- "GSE16780_UCLA_ML0911",
- "GSE16780 UCLA Hybrid MDP Liver Affy HT M430A (Sep11) RMA"
- ],
- [
- "325",
- "SUH_Liv_RMA_0611",
- "SUH BXD Liver CCl4-treated Affy Mouse Gene 1.0 ST (Jun11) RMA"
- ],
- [
- "702",
- "SUH_Liv_RMAEx_0611",
- "SUH BXD Liver CCl4-treated Affy Mouse Gene 1.0 ST Exon Level (Jun11) RMA"
- ],
- [
- "256",
- "GenEx_BXD_liverEt_M5_0912",
- "GenEx BXD EtOH Liver Affy M430 2.0 (Sep12) MAS5 Both Sexes"
- ],
- [
- "257",
- "GenEx_BXD_liverEt_M5M_0912",
- "GenEx BXD EtOH Liver Affy M430 2.0 (Sep12) MAS5 Males"
- ],
- [
- "258",
- "GenEx_BXD_liverEt_M5F_0912",
- "GenEx BXD EtOH Liver Affy M430 2.0 (Sep12) MAS5 Females"
- ],
- [
- "307",
- "GenEx_BXD_liverEt_RMA_0211",
- "GenEx BXD EtOH Liver Affy M430 2.0 (Feb11) RMA Both Sexes"
- ],
- [
- "308",
- "GenEx_BXD_liverEt_RMA_M_0211",
- "GenEx BXD EtOH Liver Affy M430 2.0 (Feb11) RMA Males"
- ],
- [
- "309",
- "GenEx_BXD_liverEt_RMA_F_0211",
- "GenEx BXD EtOH Liver Affy M430 2.0 (Feb11) RMA Females"
- ],
- [
- "310",
- "GenEx_BXD_liverSal_RMA_0211",
- "GenEx BXD Sal Liver Affy M430 2.0 (Feb11) RMA Both Sexes"
- ],
- [
- "311",
- "GenEx_BXD_liverSal_RMA_M_0211",
- "GenEx BXD Sal Liver Affy M430 2.0 (Feb11) RMA Males"
- ],
- [
- "312",
- "GenEx_BXD_liverSal_RMA_F_0211",
- "GenEx BXD Sal Liver Affy M430 2.0 (Feb11) RMA Females"
- ]
- ],
- "Lung mRNA": [
- [
- "160",
- "HZI_0408_R",
- "HZI Lung M430v2 (Apr08) RMA"
- ],
- [
- "161",
- "HZI_0408_M",
- "HZI Lung M430v2 (Apr08) MAS5"
- ]
- ],
- "Midbrain mRNA": [
- [
- "381",
- "VUBXDMouseMidBrainQ0512",
- "VU BXD Midbrain Agilent SurePrint G3 Mouse GE (May12) Quantile"
- ]
- ],
- "Muscle mRNA": [
- [
- "378",
- "EPFLMouseMuscleRMA1211",
- "EPFL/LISP BXD CD+HFD Muscle Affy Mouse Gene 1.0 ST (Dec11) RMA"
- ],
- [
- "380",
- "EPFLMouseMuscleHFDRMA1211",
- "EPFL/LISP BXD HFD Muscle Affy Mouse Gene 1.0 ST (Dec11) RMA"
- ],
- [
- "379",
- "EPFLMouseMuscleCDRMA1211",
- "EPFL/LISP BXD CD Muscle Affy Mouse Gene 1.0 ST (Dec11) RMA"
- ],
- [
- "395",
- "EPFLMouseMuscleRMA_Ex1112",
- "EPFL/LISP BXD CD+HFD Muscle Affy Mouse Gene 1.0 ST (Nov12) RMA Exon Level"
- ],
- [
- "396",
- "EPFLMouseMuscleHFDRMAEx1112",
- "EPFL/LISP BXD HFD Muscle Affy Mouse Gene 1.0 ST (Nov12) RMA Exon Level"
- ],
- [
- "397",
- "EPFLMouseMuscleCDRMAEx1112",
- "EPFL/LISP BXD CD Muscle Affy Mouse Gene 1.0 ST (Nov12) RMA Exon Level"
- ]
- ],
- "Neocortex mRNA": [
- [
- "374",
- "DevNeocortex_ILM6.2P3RInv_1111",
- "BIDMC/UTHSC Dev Neocortex P3 ILMv6.2 (Nov11) RankInv"
- ],
- [
- "375",
- "DevNeocortex_ILM6.2P14RInv_1111",
- "BIDMC/UTHSC Dev Neocortex P14 ILMv6.2 (Nov11) RankInv"
- ],
- [
- "284",
- "HQFNeoc_1210v2_RankInv",
- "HQF BXD Neocortex ILM6v1.1 (Dec10v2) RankInv"
- ],
- [
- "282",
- "HQFNeoc_1210_RankInv",
- "HQF BXD Neocortex ILM6v1.1 (Dec10) RankInv"
- ],
- [
- "157",
- "HQFNeoc_0208_RankInv",
- "HQF BXD Neocortex ILM6v1.1 (Feb08) RankInv"
- ],
- [
- "275",
- "DevNeocortex_ILM6.2P14RInv_1110",
- "BIDMC/UTHSC Dev Neocortex P14 ILMv6.2 (Nov10) RankInv"
- ],
- [
- "274",
- "DevNeocortex_ILM6.2P3RInv_1110",
- "BIDMC/UTHSC Dev Neocortex P3 ILMv6.2 (Nov10) RankInv"
- ]
- ],
- "Nucleus Accumbens mRNA": [
- [
- "156",
- "VCUSalo_1007_R",
- "VCU BXD NAc Sal M430 2.0 (Oct07) RMA"
- ]
- ],
- "Phenotypes": [
- [
- "602",
- "BXDPublish",
- "BXD Published Phenotypes"
- ],
- [
- "658",
- "GITrMetPublish",
- "GI Tract Metagenome Phenotypes"
- ]
- ],
- "Pituitary Gland mRNA": [
- [
- "389",
- "INIA_PG_RMA_0612",
- "INIA Pituitary Affy MoGene 1.0ST (Jun12) RMA"
- ],
- [
- "427",
- "INIA_Pituitary_RMA_F_0612",
- "INIA Pituitary Affy MoGene 1.0ST (Jun12) RMA Females"
- ],
- [
- "428",
- "INIA_Pituitary_RMA_M_0612",
- "INIA Pituitary Affy MoGene 1.0ST (Jun12) RMA Males"
- ],
- [
- "335",
- "INIA_PG_RMA_Ex_0612",
- "INIA Pituitary Affy MoGene 1.0ST (Jun12) RMA Exon Level"
- ]
- ],
- "Prefrontal Cortex mRNA": [
- [
- "135",
- "VCUSal_1206_R",
- "VCU BXD PFC Sal M430 2.0 (Dec06) RMA"
- ],
- [
- "136",
- "VCUEtOH_1206_R",
- "VCU BXD PFC EtOH M430 2.0 (Dec06) RMA"
- ],
- [
- "137",
- "VCUSal_1006_R",
- "VCU BXD PFC Et vs Sal M430 2.0 (Dec06) Sscore"
- ]
- ],
- "Retina mRNA": [
- [
- "709",
- "DoDCMMRPRetMoGene2_0515",
- "DoD Retina Normal Affy MoGene 2.0 ST (May15) RMA Gene Level"
- ],
- [
- "710",
- "DoDCMMRPRetMoGene2Ex_0515",
- "DoD Retina Normal Affy MoGene 2.0 ST (May15) RMA Exon Level"
- ],
- [
- "267",
- "Illum_Retina_BXD_RankInv0410",
- "Full HEI Retina Illumina V6.2 (Apr10) RankInv"
- ],
- [
- "302",
- "G2NEI_ILM_Retina_BXD_RI0410",
- "HEI Retina Normal Illumina V6.2 (Apr10) RankInv"
- ],
- [
- "785",
- "DoDTATRCRetBLMoGene2_0316",
- "DoD Retina After Blast Affy MoGene 2.0 ST (Mar16) RMA Gene Level"
- ],
- [
- "787",
- "DoDRetBlastvsNormal_0416",
- "DoD Retina Blast vs Normal Retina Affy MoGene 2.0 ST (Apr16) RMA Gene Level"
- ],
- [
- "786",
- "DoDTATRCRetBLMoGene2E_0316",
- "DoD Retina After Blast Affy MoGene 2.0 ST (Mar16) RMA Exon Level"
- ],
- [
- "385",
- "ONCRetILM6_0412",
- "ONC HEI Retina (April 2012) RankInv"
- ],
- [
- "371",
- "HEIONCvsCRetILM6_0911",
- "HEI ONC vs Control Retina Illumina V6.2 (Sep11) RankInv"
- ]
- ],
- "Spleen mRNA": [
- [
- "283",
- "UTHSC_SPL_RMA_1210",
- "UTHSC Affy MoGene 1.0 ST Spleen (Dec10) RMA"
- ],
- [
- "773",
- "UTHSC_SPLs1_RMA_1210",
- "UTHSC Affy MoGene 1.0 ST Spleen (Dec10) RMA Set1"
- ],
- [
- "774",
- "UTHSC_SPLs2_RMA_1210",
- "UTHSC Affy MoGene 1.0 ST Spleen (Dec10) RMA Set2"
- ],
- [
- "286",
- "UTHSC_SPL_RMA_1210M",
- "UTHSC Affy MoGene 1.0 ST Spleen (Dec10) RMA Males"
- ],
- [
- "287",
- "UTHSC_SPL_RMA_1210F",
- "UTHSC Affy MoGene 1.0 ST Spleen (Dec10) RMA Females"
- ],
- [
- "429",
- "UTHSC_SPL_RMAEx_1210",
- "UTHSC Affy MoGene 1.0 ST Spleen (Dec10) RMA Exon Level"
- ],
- [
- "271",
- "UTHSC_SPL_RMA_1010",
- "UTHSC Affy MoGene 1.0 ST Spleen (Oct10) RMA"
- ],
- [
- "260",
- "UTK_BXDSpl_VST_0110",
- "UTK Spleen ILM6.1 (Jan10) VST"
- ],
- [
- "227",
- "IoP_SPL_RMA_0509",
- "IoP Affy MOE 430v2 Spleen (May09) RMA"
- ]
- ],
- "Striatum mRNA": [
- [
- "399",
- "Striatum_Exon_1212",
- "HQF Striatum Affy Mouse Exon 1.0ST Gene Level (Dec09) RMA"
- ],
- [
- "163",
- "Striatum_Exon_0209",
- "HQF Striatum Affy Mouse Exon 1.0ST Exon Level (Dec09) RMA"
- ],
- [
- "376",
- "DevStriatum_ILM6.2P3RInv_1111",
- "BIDMC/UTHSC Dev Striatum P3 ILMv6.2 (Nov11) RankInv"
- ],
- [
- "377",
- "DevStriatum_ILM6.2P14RInv_1111",
- "BIDMC/UTHSC Dev Striatum P14 ILMv6.2 (Nov11) RankInv"
- ],
- [
- "285",
- "UTHSC_Striatum_RankInv_1210",
- "HQF BXD Striatum ILM6.1 (Dec10v2) RankInv"
- ],
- [
- "298",
- "UTHSC_Str_RankInv_1210",
- "HQF BXD Striatum ILM6.1 (Dec10) RankInv"
- ],
- [
- "152",
- "UTHSC_1107_RankInv",
- "HQF BXD Striatum ILM6.1 (Nov07) RankInv"
- ],
- [
- "74",
- "SA_M2_0405_MC",
- "HBP Rosen Striatum M430V2 (Apr05) MAS5 Clean"
- ],
- [
- "69",
- "SA_M2_0405_RC",
- "HBP Rosen Striatum M430V2 (Apr05) RMA Clean"
- ],
- [
- "68",
- "SA_M2_0405_PC",
- "HBP Rosen Striatum M430V2 (Apr05) PDNN Clean"
- ],
- [
- "67",
- "SA_M2_0405_SS",
- "HBP Rosen Striatum M430V2 (Apr05) SScore"
- ],
- [
- "66",
- "SA_M2_0405_RR",
- "HBP Rosen Striatum M430V2 (Apr05) RMA Orig"
- ]
- ],
- "T Cell (helper) mRNA": [
- [
- "319",
- "RTHC_0211_R",
- "HZI Thelp M430v2 (Feb11) RMA"
- ]
- ],
- "T Cell (regulatory) mRNA": [
- [
- "122",
- "RTC_1106_R",
- "HZI Treg M430v2 (Feb11) RMA"
- ]
- ],
- "Ventral Tegmental Area mRNA": [
- [
- "228",
- "VCUSal_0609_R",
- "VCU BXD VTA Sal M430 2.0 (Jun09) RMA"
- ],
- [
- "230",
- "VCUEtvsSal_0609_R",
- "VCU BXD VTA Et vs Sal M430 2.0 (Jun09) RMA"
- ],
- [
- "229",
- "VCUEtOH_0609_R",
- "VCU BXD VTA EtOH M430 2.0 (Jun09) RMA"
- ]
- ]
- },
- "BXD-Bone": {
- "Phenotypes": [
- [
- "650",
- "BXD-BonePublish",
- "BXD-Bone Phenotypes"
- ]
- ]
- },
- "BXD-Harvested": {
- "Genotypes": [
- [
- "None",
- "BXD-HarvestedGeno",
- "BXD-Harvested Genotypes"
- ]
- ],
- "Hippocampus mRNA": [
- [
- "873",
- "JAX-BXD-Hip-Pro-0219",
- "JAX BXD Hippocampal Proteome (Feb19)"
- ]
- ],
- "Liver mRNA": [
- [
- "877",
- "UTHSC-BXD-Harv_Liv-1019",
- "UTHSC BXD Harvested Liver RNA-Seq (Oct19) TPM Log2"
- ],
- [
- "843",
- "UTHSC-BXD-Harv_Liv-0118",
- "UTHSC BXD Harvested Liver RNA-Seq (Aug18) Log2"
- ]
- ],
- "Phenotypes": [
- [
- "None",
- "BXD-HarvestedPublish",
- "BXD-NIA-Longevity Phenotypes"
- ]
- ]
- },
- "BXD300": {
- "Genotypes": [
- [
- "None",
- "BXD300Geno",
- "BXD300 Genotypes"
- ]
- ],
- "Liver mRNA": [
- [
- "105",
- "LV_G_0106_B",
- "UNC Agilent G4121A Liver LOWESS Stanford (Jan06) Both Sexes"
- ],
- [
- "103",
- "LV_G_0106_M",
- "UNC Agilent G4121A Liver LOWESS Stanford (Jan06) Males"
- ],
- [
- "104",
- "LV_G_0106_F",
- "UNC Agilent G4121A Liver LOWESS Stanford (Jan06) Females"
- ]
- ],
- "Phenotypes": [
- [
- "None",
- "BXD300Publish",
- "BXD300 Published Phenotypes"
- ]
- ]
- },
- "BXH": {
- "Bone Femur mRNA": [
- [
- "412",
- "UCLA_BXH_Femur_0113_RSN",
- "UCLA GSE27483 BXH Bone Femur ILM Mouse WG-6 v1, v1.1 (Jan13) RSN"
- ]
- ],
- "Cartilage mRNA": [
- [
- "209",
- "UCLA_BXHBXD_CARTILAGE_V2",
- "UCLA BXH and BXD Cartilage v2"
- ],
- [
- "205",
- "UCLA_BXHBXD_CARTILAGE",
- "UCLA BXH and BXD Cartilage"
- ],
- [
- "179",
- "UCLA_BXH_CARTILAGE",
- "UCLA BXH Cartilage"
- ]
- ],
- "Genotypes": [
- [
- "638",
- "BXHGeno",
- "BXH Genotypes"
- ]
- ],
- "Liver mRNA": [
- [
- "353",
- "GSE16780BXH_UCLA_ML0911",
- "GSE16780 UCLA Mouse BXH Liver Affy HT M430A (Sep11) RMA"
- ]
- ],
- "Phenotypes": [
- [
- "627",
- "BXHPublish",
- "BXH Published Phenotypes"
- ]
- ]
- },
- "C57BL-6JxC57BL-6NJF2": {
- "Genotypes": [
- [
- "622",
- "C57BL-6JxC57BL-6NJF2Geno",
- "C57BL-6JxC57BL-6NJF2 Genotypes"
- ]
- ],
- "Phenotypes": [
- [
- "620",
- "C57BL-6JxC57BL-6NJF2Publish",
- "C57BL/6JxC57BL/6NJ F2 CROSS Phenotypes"
- ]
- ]
- },
- "CFW": {
- "Hippocampus mRNA": [
- [
- "811",
- "UCSD_CFW_HIP_RNA-Seq_log2_0117",
- "UCSD CFW Hippocampus (Jan17) RNA-Seq Log2 Z-score"
- ],
- [
- "808",
- "UCSD_CFW_HIP_RNA-Seq_0117",
- "UCSD CFW Hippocampus RNA-Seq (Jan17) FPKM Quantile"
- ]
- ],
- "Phenotypes": [
- [
- "None",
- "CFWPublish",
- "CFW Phenotypes"
- ]
- ],
- "Prefrontal Cortex mRNA": [
- [
- "813",
- "UCSD_CFW_PFC_RNA-Seq_log2_0117",
- "UCSD CFW Prefrontal Cortex (Jan17) RNA-Seq Log2 Z-score"
- ],
- [
- "810",
- "UCSD_CFW_PFC_RNA-Seq_0117",
- "UCSD CFW Prefrontal Cortex (Jan17) RNA-Seq"
- ]
- ],
- "Striatum mRNA": [
- [
- "812",
- "UCSD_CFW_STR_RNA-Seq_log2_0117",
- "UCSD CFW Striatum (Jan17) RNA-Seq Log2 Z-score"
- ],
- [
- "809",
- "UCSD_CFW_SPL_RNA-Seq_0117",
- "UCSD CFW Striatum (Jan17) RNA-Seq"
- ]
- ]
- },
- "CIE-INIA": {
- "LCM Brain Regions mRNA": [
- [
- "776",
- "INIA_LCM_CAB_1215",
- "INIA LCM (11 Regions) CIE/AIR/BAS RNA-seq Transcript Level (Dec15)"
- ],
- [
- "772",
- "INIA_LCM_1215",
- "INIA LCM (11 Regions) CIE/AIR RNA-seq Transcript Level (Dec15)"
- ],
- [
- "775",
- "INIA_LCMB_1215",
- "INIA LCM (11 Regions) BASELINE RNA-seq Transcript Level (Dec15)"
- ]
- ],
- "Phenotypes": [
- [
- "None",
- "CIE-INIAPublish",
- "LCM Phenotypes"
- ]
- ]
- },
- "CIE-RMA": {
- "Hippocampus mRNA": [
- [
- "831",
- "INIA_UTHSC_Hip_AffyMTA1_May17",
- "INIA-UTHSC Hippocampus CIE Affy MTA 1.0 GeneLevel (Mar18) RMA"
- ]
- ],
- "Midbrain mRNA": [
- [
- "830",
- "INIA_UTHSC_Mid_AffyMTA1_Apr17",
- "INIA-UTHSC Midbrain CIE Affy MTA 1.0 GeneLevel (Apr17) RMA"
- ],
- [
- "834",
- "INIA_UTHSC_Mid_AffyMTA1_Ex_May17",
- "INIA-UTHSC Midbrain CIE Affy MTA 1.0 Exon Level (Apr17) RMA"
- ]
- ],
- "Phenotypes": [
- [
- "None",
- "CIE-RMAPublish",
- "CIE-RMA Phenotypes"
- ]
- ]
- },
- "CMS": {
- "Phenotypes": [
- [
- "None",
- "CMSPublish",
- "CMS Phenotypes"
- ]
- ]
- },
- "CTB6F2": {
- "Adipose mRNA": [
- [
- "170",
- "UCLA_CTB6B6CTF2_ADIPOSE_2005",
- "UCLA CTB6/B6CTF2 Adipose (2005) mlratio"
- ],
- [
- "189",
- "UCLA_CTB6B6CTF2_ADIPOSE_FEMALE",
- "UCLA CTB6B6CTF2 Adipose Female mlratio"
- ],
- [
- "188",
- "UCLA_CTB6B6CTF2_ADIPOSE_MALE",
- "UCLA CTB6B6CTF2 Adipose Male mlratio"
- ]
- ],
- "Brain mRNA": [
- [
- "171",
- "UCLA_CTB6B6CTF2_BRAIN_2005",
- "UCLA CTB6/B6CTF2 Brain (2005) mlratio"
- ],
- [
- "190",
- "UCLA_CTB6B6CTF2_BRAIN_MALE",
- "UCLA CTB6/B6CTF2 Brain Males (2005) mlratio"
- ],
- [
- "191",
- "UCLA_CTB6B6CTF2_BRAIN_FEMALE",
- "UCLA CTB6/B6CTF2 Brain Females (2005) mlratio"
- ]
- ],
- "Genotypes": [
- [
- "None",
- "CTB6F2Geno",
- "CTB6F2 Genotypes"
- ]
- ],
- "Liver mRNA": [
- [
- "172",
- "UCLA_CTB6B6CTF2_LIVER_2005",
- "UCLA CTB6/B6CTF2 Liver (2005) mlratio"
- ],
- [
- "193",
- "UCLA_CTB6B6CTF2_LIVER_FEMALE",
- "UCLA CTB6B6CTF2 Liver Female mlratio"
- ],
- [
- "192",
- "UCLA_CTB6B6CTF2_LIVER_MALE",
- "UCLA CTB6B6CTF2 Liver Male mlratio"
- ]
- ],
- "Muscle mRNA": [
- [
- "173",
- "UCLA_CTB6B6CTF2_MUSCLE_2005",
- "UCLA CTB6/B6CTF2 Muscle (2005) mlratio"
- ],
- [
- "195",
- "UCLA_CTB6B6CTF2_MUSCLE_FEMALE",
- "UCLA CTB6B6CTF2 Muscle Female mlratio"
- ],
- [
- "194",
- "UCLA_CTB6B6CTF2_MUSCLE_MALE",
- "UCLA CTB6B6CTF2 Muscle Male mlratio"
- ]
- ],
- "Phenotypes": [
- [
- "630",
- "CTB6F2Publish",
- "CastB6/B6Cast F2 UCLA Published Phenotypes"
- ]
- ]
- },
- "CXB": {
- "Genotypes": [
- [
- "614",
- "CXBGeno",
- "CXB Genotypes"
- ]
- ],
- "Heart mRNA": [
- [
- "821",
- "UCLA_CXB_Aor_Jan16",
- "UCLA CXB Aorta Affy M430 2.0 (Jan16) RMA"
- ]
- ],
- "Hippocampus mRNA": [
- [
- "99",
- "HC_M2CB_1205_P",
- "Hippocampus Consortium M430v2 CXB (Dec05) PDNN"
- ],
- [
- "100",
- "HC_M2CB_1205_R",
- "Hippocampus Consortium M430v2 CXB (Dec05) RMA"
- ]
- ],
- "Liver mRNA": [
- [
- "823",
- "UCLA_CXB_Liv_Jan16",
- "UCLA CXB Liver Affy M430 2.0 (Jan16) RMA"
- ]
- ],
- "Phenotypes": [
- [
- "628",
- "CXBPublish",
- "CXB Published Phenotypes"
- ]
- ],
- "Spleen mRNA": [
- [
- "153",
- "STSPL_1107_R",
- "Stuart Spleen M430v2 (Nov07) RMA"
- ]
- ]
- },
- "D2GM": {
- "Phenotypes": [
- [
- "None",
- "D2GMPublish",
- "D2GM Phenotypes"
- ]
- ],
- "Retina mRNA": [
- [
- "847",
- "JAX_D2GM_RSeq_log2Z_0418",
- "JAX Retina (Apr18) RNA-Seq log2-Z"
- ]
- ]
- },
- "HS": {
- "Hippocampus mRNA": [
- [
- "268",
- "OXUKHS_ILMHipp_RI0510",
- "OX UK HS ILM6v1.1 Hippocampus (May 2010) RankInv"
- ]
- ],
- "Liver mRNA": [
- [
- "269",
- "OXUKHS_ILMLiver_RI0510",
- "OX UK HS ILM6v1.1 Liver (May 2010) RankInv"
- ]
- ],
- "Lung mRNA": [
- [
- "270",
- "OXUKHS_ILMLung_RI0510",
- "OX UK HS ILM6v1.1 Lung (May 2010) RankInv"
- ]
- ],
- "Phenotypes": [
- [
- "624",
- "HSPublish",
- "Heterogeneous Stock Phenotypes"
- ]
- ]
- },
- "HS-CC": {
- "Striatum mRNA": [
- [
- "304",
- "OHSU_HS-CC_ILMStr_0211",
- "OHSU HS-CC Striatum ILM6v1 (Feb11) RankInv"
- ]
- ]
- },
- "LGSM-AIG34_50-56-GBS": {
- "Phenotypes": [
- [
- "None",
- "LGSM-AIG34_50-56-GBSPublish",
- "LGSM AIG34/50-56 GBS Phenotypes"
- ]
- ]
- },
- "LXS": {
- "Genotypes": [
- [
- "601",
- "LXSGeno",
- "LXS Genotypes"
- ]
- ],
- "Hippocampus mRNA": [
- [
- "211",
- "Illum_LXS_Hipp_RSS_1008",
- "Hippocampus Illumina RSS (Oct08) RankInv beta"
- ],
- [
- "213",
- "Illum_LXS_Hipp_NOS_1008",
- "Hippocampus Illumina NOS (Oct08) RankInv beta"
- ],
- [
- "219",
- "Illum_LXS_Hipp_NON_1008",
- "Hippocampus Illumina NON (Oct08) RankInv beta"
- ],
- [
- "212",
- "Illum_LXS_Hipp_RSE_1008",
- "Hippocampus Illumina RSE (Oct08) RankInv beta"
- ],
- [
- "214",
- "Illum_LXS_Hipp_NOE_1008",
- "Hippocampus Illumina NOE (Oct08) RankInv beta"
- ],
- [
- "143",
- "Illum_LXS_Hipp_loess0807",
- "Hippocampus Illumina (Aug07) LOESS"
- ],
- [
- "142",
- "Illum_LXS_Hipp_loess_nb0807",
- "Hippocampus Illumina (Aug07) LOESS_NB"
- ],
- [
- "141",
- "Illum_LXS_Hipp_quant0807",
- "Hippocampus Illumina (Aug07) QUANT"
- ],
- [
- "140",
- "Illum_LXS_Hipp_quant_nb0807",
- "Hippocampus Illumina (Aug07) QUANT_NB"
- ],
- [
- "139",
- "Illum_LXS_Hipp_rsn0807",
- "Hippocampus Illumina (Aug07) RSN"
- ],
- [
- "138",
- "Illum_LXS_Hipp_rsn_nb0807",
- "Hippocampus Illumina (Aug07) RSN_NB"
- ],
- [
- "133",
- "Hipp_Illumina_RankInv_0507",
- "Hippocampus Illumina (May07) RankInv"
- ]
- ],
- "Phenotypes": [
- [
- "606",
- "LXSPublish",
- "LXS Published Phenotypes"
- ]
- ],
- "Prefrontal Cortex mRNA": [
- [
- "130",
- "VCUSal_0806_R",
- "VCU LXS PFC Sal M430A 2.0 (Aug06) RMA"
- ]
- ]
- },
- "Linsenbardt-Boehm": {
- "Genotypes": [
- [
- "None",
- "Linsenbardt-BoehmGeno",
- "Linsenbardt-Boehm Genotypes"
- ]
- ],
- "Phenotypes": [
- [
- "645",
- "Linsenbardt-BoehmPublish",
- "Linsenbardt-Boehm Published Phenotypes"
- ]
- ]
- },
- "MDP": {
- "Bone Femur mRNA": [
- [
- "413",
- "UCLA_MDP_Femur_0113_RSN",
- "UCLA GSE27483 MDP Bone Femur ILM Mouse WG-6 v1, v1.1 (Jan13) RSN"
- ]
- ],
- "Dorsal Root Ganglia mRNA": [
- [
- "402",
- "TSRI-DRG-AffyMOE430_0113-MDP",
- "TSRI DRG Affy Mouse Genome 430 2.0 (Jan13) RMA MDP"
- ]
- ],
- "Genotypes": [
- [
- "609",
- "MDPGeno",
- "MDP Genotypes"
- ]
- ],
- "Hippocampus mRNA": [
- [
- "272",
- "HC_M2_0606_MDP",
- "Hippocampus Consortium M430v2 (Jun06) RMA MDP"
- ],
- [
- "273",
- "UMUTAffyExon_0209_RMA_MDP",
- "UMUTAffy Hippocampus Exon (Feb09) RMA MDP"
- ]
- ],
- "Liver mRNA": [
- [
- "370",
- "GSE16780MDP_UCLA_ML0911",
- "GSE16780 UCLA Mouse MDP Liver Affy HT M430A (Sep11) RMA"
- ],
- [
- "357",
- "JAX_CSB_L_0711",
- "JAX Liver Affy M430 2.0 (Jul11) MDP"
- ],
- [
- "358",
- "JAX_CSB_L_HF_0711",
- "JAX Liver HF Affy M430 2.0 (Jul11) MDP"
- ],
- [
- "359",
- "JAX_CSB_L_6C_0711",
- "JAX Liver 6C Affy M430 2.0 (Jul11) MDP"
- ],
- [
- "403",
- "JAX_liver_agil_MDP-0113",
- "Harrill-Rusyn MDP Liver Acetaminophen Tox Study (G4121A, 2009)"
- ]
- ],
- "Phenotypes": [
- [
- "605",
- "MDPPublish",
- "Mouse Phenome Database"
- ]
- ],
- "Spleen mRNA": [
- [
- "801",
- "HMS_mm8_MDP_Spl_CD4_1116",
- "HMS Spleen CD4+ T cells MDP Affy Mouse Gene 1.0 ST (Jul16) Gene Level"
- ]
- ]
- },
- "NZBXFVB-N2": {
- "Mammary Tumors mRNA": [
- [
- "225",
- "NCI_Mam_Tum_RMA_0409",
- "NCI Mammary M430v2 (Apr09) RMA"
- ]
- ],
- "Phenotypes": [
- [
- "607",
- "NZBXFVB-N2Publish",
- "NZBXFVB-N2 Published Phenotypes"
- ]
- ]
- },
- "Retina-RGC-Rheaume": {
- "Phenotypes": [
- [
- "None",
- "Retina-RGC-RheaumePublish",
- "Retina-RGC-Rheaume Phenotypes"
- ]
- ],
- "Retina Single-cell RNA-Seq": [
- [
- "865",
- "UConn-RGC-RSeq_r-0918",
- "UConn-Rheaume Retina RGC (Sep18) scRNA-Seq Raw"
- ],
- [
- "866",
- "UConn-RGC-RSeq_log2-0918",
- "UConn-Rheaume Retina RGC (Sep18) scRNA-Seq Log2"
- ],
- [
- "867",
- "UConn-RGC-RSeq_s-0918",
- "UConn-Rheaume Retina RGC (Sep18) scRNA-Seq Siamak"
- ]
- ]
- },
- "SOTNOT-OHSU": {
- "Genotypes": [
- [
- "613",
- "SOTNOT-OHSUGeno",
- "SOTNOT-OHSU Genotypes"
- ]
- ]
- }
- },
- "poplar": {
- "Poplar": {
- "Phenotypes": [
- [
- "649",
- "PoplarPublish",
- "Poplar Phenotypes"
- ]
- ]
- }
- },
- "rat": {
- "HRDP": {
- "Genotypes": [
- [
- "None",
- "HRDPGeno",
- "HRDP Genotypes"
- ]
- ],
- "Phenotypes": [
- [
- "None",
- "HRDPPublish",
- "HRDP Phenotypes"
- ]
- ]
- },
- "HSNIH-Palmer": {
- "Infralimbic Cortex mRNA": [
- [
- "861",
- "HSNIH-Rat-IL-RSeq-0818",
- "HSNIH-Palmer Infralimbic Cortex RNA-Seq (Aug18) rlog"
- ]
- ],
- "Lateral Habenula mRNA": [
- [
- "862",
- "HSNIH-Rat-LHB-RSeq-0818",
- "HSNIH-Palmer Lateral Habenula RNA-Seq (Aug18) rlog"
- ]
- ],
- "Nucleus Accumbens mRNA": [
- [
- "860",
- "HSNIH-Rat-Acbc-RSeq-0818",
- "HSNIH-Palmer Nucleus Accumbens Core RNA-Seq (Aug18) rlog"
- ]
- ],
- "Orbitofrontal Cortex mRNA": [
- [
- "864",
- "HSNIH-Rat-VoLo-RSeq-0818",
- "HSNIH-Palmer Orbitofrontal Cortex RNA-Seq (Aug18) rlog"
- ]
- ],
- "Phenotypes": [
- [
- "652",
- "HSNIH-PalmerPublish",
- "HSNIH Phenotypes"
- ]
- ],
- "Prelimbic Cortex mRNA": [
- [
- "863",
- "HSNIH-Rat-PL-RSeq-0818",
- "HSNIH-Palmer Prelimbic Cortex RNA-Seq (Aug18) rlog"
- ]
- ]
- },
- "HSNIH-RGSMC": {
- "Phenotypes": [
- [
- "None",
- "HSNIH-RGSMCPublish",
- "HSNIH Published Phenotypes"
- ]
- ]
- },
- "HXBBXH": {
- "Adipose mRNA": [
- [
- "799",
- "FGUCAS_BAdip0516",
- "FGUCAS BXH/HXB Brown Adipose Affy Rat Gene 2.0 ST (May16) log2"
- ]
- ],
- "Adrenal Gland mRNA": [
- [
- "220",
- "HXB_Adrenal_1208",
- "MDC/CAS/UCL Adrenal 230A (Dec08) RMA"
- ]
- ],
- "Genotypes": [
- [
- "None",
- "HXBBXHGeno",
- "HXBBXH Genotypes"
- ]
- ],
- "Heart mRNA": [
- [
- "221",
- "HXB_Heart_1208",
- "MDC/CAS/UCL Heart 230_V2 (Dec08) RMA"
- ]
- ],
- "Hippocampus mRNA": [
- [
- "231",
- "UT_HippRatEx_RMA_0709",
- "UT Hippocampus Affy RaEx 1.0 Exon (Jul09) RMA"
- ]
- ],
- "Kidney mRNA": [
- [
- "70",
- "KI_2A_0405_M",
- "MDC/CAS/ICL Kidney 230A (Apr05) MAS5"
- ],
- [
- "65",
- "KI_2A_0405_Rz",
- "MDC/CAS/ICL Kidney 230A (Apr05) RMA 2z+8"
- ],
- [
- "64",
- "KI_2A_0405_R",
- "MDC/CAS/ICL Kidney 230A (Apr05) RMA"
- ]
- ],
- "Liver mRNA": [
- [
- "222",
- "HXB_Liver_1208",
- "MDC/CAS/UCL Liver 230v2 (Dec08) RMA"
- ]
- ],
- "Peritoneal Fat mRNA": [
- [
- "79",
- "FT_2A_0805_M",
- "MDC/CAS/ICL Peritoneal Fat 230A (Aug05) MAS5"
- ],
- [
- "75",
- "FT_2A_0605_Rz",
- "MDC/CAS/ICL Peritoneal Fat 230A (Jun05) RMA 2z+8"
- ]
- ],
- "Phenotypes": [
- [
- "632",
- "HXBBXHPublish",
- "HXB/BXH Published Phenotypes"
- ]
- ]
- },
- "SRxSHRSPF2": {
- "Eye mRNA": [
- [
- "226",
- "UIOWA_Eye_RMA_0906",
- "UIOWA Eye mRNA RAE230v2 (Sep06) RMA"
- ]
- ]
- }
- },
- "soybean": {
- "J12XJ58F11": {
- "Genotypes": [
- [
- "None",
- "J12XJ58F11Geno",
- "J12XJ58F11 Genotypes"
- ]
- ],
- "Phenotypes": [
- [
- "647",
- "J12XJ58F11Publish",
- "J12XJ58F11 Phenotypes"
- ]
- ]
- },
- "J12XJ58F2": {
- "Phenotypes": [
- [
- "616",
- "J12XJ58F2Publish",
- "J12XJ58F2 Published Phenotypes"
- ]
- ]
- }
- },
- "tomato": {
- "LXP": {
- "Phenotypes": [
- [
- "621",
- "LXPPublish",
- "LXP Published Phenotypes"
- ]
- ]
- }
- }
- },
- "groups": {
- "arabidopsis": [
- [
- "BayXSha",
- "BayXSha"
- ],
- [
- "ColXBur",
- "ColXBur"
- ],
- [
- "ColXCvi",
- "ColXCvi"
- ]
- ],
- "barley": [
- [
- "QSM",
- "QSM"
- ],
- [
- "SXM",
- "SXM"
- ]
- ],
- "drosophila": [
- [
- "DGRP",
- "Drosophila Genetic Reference Panel"
- ],
- [
- "Oregon-R_x_2b3",
- "Oregon-R x 2b3"
- ]
- ],
- "human": [
- [
- "HB",
- "Brain, Aging: AD, HD, Normal Gene Expression (Harvard/Merck)"
- ],
- [
- "AD-cases-controls",
- "Brain, Aging: AD, Normal Gene Expression (Liang)"
- ],
- [
- "AD-cases-controls-Myers",
- "Brain, Aging: AD, Normal Gene Expression with Genotypes (Myers)"
- ],
- [
- "Aging-Brain-UCI",
- "Brain, Aging: Normal Gene Expression (UCI/Cotman)"
- ],
- [
- "HCP",
- "Brain, Cognition, Human Connectome Project"
- ],
- [
- "HSB",
- "Brain, Development: Normal Gene Expression (Yale/Sestan)"
- ],
- [
- "Brain-Normal-NIH-Gibbs",
- "Brain: Normal Gene Expression (NIH/Gibbs)"
- ],
- [
- "CANDLE",
- "Child Development: CANDLE Cohort with Genotypes (TUCI/UTHSC)"
- ],
- [
- "GTEx",
- "GTEx v3 All Tissues, RNA-Seq with Genotypes"
- ],
- [
- "GTEx_v5",
- "GTEx v5 All Tissues, RNA-Seq with Genotypes"
- ],
- [
- "HLC",
- "Liver: Normal Gene Expression with Genotypes (Merck)"
- ],
- [
- "HLT",
- "Lung: Normal Gene Expression (Merck)"
- ],
- [
- "CEPH-2004",
- "Lymphoblastoid Cells: Gene Expression (CEPH, Williams)"
- ],
- [
- "Islets-Gerling",
- "Pancreatic: Islets (UTHSC/Gerling)"
- ],
- [
- "TIGEM-Retina-RNA-Seq",
- "Retina: Normal Adult Gene Expression, RNA-Seq (TIGEM)"
- ]
- ],
- "mouse": [
- [
- "AIL",
- "AIL Advanced Intercross Line"
- ],
- [
- "AIL-LGSM-F34-A",
- "AIL LGSM F34 (Array)"
- ],
- [
- "AIL-LGSM-F34-GBS",
- "AIL LGSM F34 (GBS)"
- ],
- [
- "AIL-LGSM-F34-F39-43-GBS",
- "AIL LGSM F34 and F39-43 (GBS)"
- ],
- [
- "AIL-LGSM-F39-43-GBS",
- "AIL LGSM F39-43 (GBS)"
- ],
- [
- "AKXD",
- "AKXD RI Family"
- ],
- [
- "AXBXA",
- "AXB/BXA RI Family"
- ],
- [
- "B6BTBRF2",
- "B6BTBRF2"
- ],
- [
- "Linsenbardt-Boehm",
- "B6D2 EtOH Selected Advanced Intercross"
- ],
- [
- "B6D2F2",
- "B6D2F2"
- ],
- [
- "B6D2F2-PSU",
- "B6D2F2 PSU"
- ],
- [
- "BDF2-1999",
- "BDF2 UCLA"
- ],
- [
- "BDF2-2005",
- "BDF2-2005"
- ],
- [
- "BHHBF2",
- "BH/HB F2 UCLA"
- ],
- [
- "BHF2",
- "BHF2 (Apoe Null) UCLA"
- ],
- [
- "B6D2RI",
- "BXD Aged"
- ],
- [
- "BXD-Bone",
- "BXD Bone Individual Data"
- ],
- [
- "BXD-Harvested",
- "BXD NIA Longevity Study"
- ],
- [
- "BXD",
- "BXD RI Family"
- ],
- [
- "BXD300",
- "BXD300"
- ],
- [
- "BXH",
- "BXH RI Family"
- ],
- [
- "CTB6F2",
- "CastB6/B6Cast F2 UCLA"
- ],
- [
- "CFW",
- "CFW Outbred GWAS"
- ],
- [
- "CIE-INIA",
- "Chronic Intermittent Ethanol Phase 1"
- ],
- [
- "CIE-RMA",
- "Chronic Intermittent Ethanol Phase 2"
- ],
- [
- "CMS",
- "Chronic Mild Stress"
- ],
- [
- "CXB",
- "CXB RI Family (strain means)"
- ],
- [
- "D2GM",
- "D2 Glaucoma Model"
- ],
- [
- "B6D2",
- "Glaucoma and Aged Retina, UTHSC"
- ],
- [
- "HS",
- "Heterogeneous Stock"
- ],
- [
- "HS-CC",
- "Heterogeneous Stock Collaborative Cross"
- ],
- [
- "LXS",
- "ILSXISS (LXS) RI Family (strain means)"
- ],
- [
- "LGSM-AIG34_50-56-GBS",
- "LGSM AI G34/50-56 Lionikas (GBS)"
- ],
- [
- "MDP",
- "Mouse Diversity Panel (strain means)"
- ],
- [
- "NZBXFVB-N2",
- "NZB/FVB N2 NCI"
- ],
- [
- "C57BL-6JxC57BL-6NJF2",
- "Reduced Complexity Cross (B6JxB6N F2)"
- ],
- [
- "Retina-RGC-Rheaume",
- "Retina RGC Rheaume"
- ],
- [
- "SOTNOT-OHSU",
- "SOTNOT-OHSU"
- ]
- ],
- "poplar": [
- [
- "Poplar",
- "Poplar"
- ]
- ],
- "rat": [
- [
- "HXBBXH",
- "HXB/BXH"
- ],
- [
- "HRDP",
- "Hybrid Rat Diversity Panel"
- ],
- [
- "HSNIH-Palmer",
- "NIH Heterogeneous Stock (Palmer)"
- ],
- [
- "HSNIH-RGSMC",
- "NIH Heterogeneous Stock (RGSMC 2013)"
- ],
- [
- "SRxSHRSPF2",
- "UIOWA SRxSHRSP F2"
- ]
- ],
- "soybean": [
- [
- "J12XJ58F11",
- "J12XJ58F11"
- ],
- [
- "J12XJ58F2",
- "J12XJ58F2"
- ]
- ],
- "tomato": [
- [
- "LXP",
- "LXP"
- ]
- ]
- },
- "species": [
- [
- "human",
- "Human (hg19)"
- ],
- [
- "mouse",
- "Mouse (mm10)"
- ],
- [
- "rat",
- "Rat (rn6)"
- ],
- [
- "drosophila",
- "Drosophila"
- ],
- [
- "arabidopsis",
- "Arabidopsis thaliana"
- ],
- [
- "barley",
- "Barley"
- ],
- [
- "poplar",
- "Poplar"
- ],
- [
- "soybean",
- "Soybean"
- ],
- [
- "tomato",
- "Tomato"
- ]
- ],
- "types": {
- "arabidopsis": {
- "BayXSha": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ]
- ],
- "ColXBur": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ]
- ],
- "ColXCvi": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ]
- ]
- },
- "barley": {
- "QSM": [
- [
- "Leaf mRNA",
- "Leaf mRNA"
- ]
- ],
- "SXM": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Embryo mRNA",
- "Embryo mRNA"
- ],
- [
- "Leaf mRNA",
- "Leaf mRNA"
- ]
- ]
- },
- "drosophila": {
- "DGRP": [
- [
- "Whole Body mRNA",
- "Whole Body mRNA"
- ]
- ],
- "Oregon-R_x_2b3": [
- [
- "Whole Body mRNA",
- "Whole Body mRNA"
- ]
- ]
- },
- "human": {
- "AD-cases-controls": [
- [
- "Brain mRNA",
- "Brain mRNA"
- ]
- ],
- "AD-cases-controls-Myers": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Brain mRNA",
- "Brain mRNA"
- ]
- ],
- "Aging-Brain-UCI": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Entorhinal Cortex mRNA",
- "Entorhinal Cortex mRNA"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Postcentral Gyrus mRNA",
- "Postcentral Gyrus mRNA"
- ],
- [
- "Superior Frontal Gyrus mRNA",
- "Superior Frontal Gyrus mRNA"
- ]
- ],
- "Brain-Normal-NIH-Gibbs": [
- [
- "Cerebellum mRNA",
- "Cerebellum mRNA"
- ],
- [
- "Pons mRNA",
- "Pons mRNA"
- ],
- [
- "Prefrontal Cortex mRNA",
- "Prefrontal Cortex mRNA"
- ],
- [
- "Temporal Cerebral Wall mRNA",
- "Temporal Cerebral Wall mRNA"
- ]
- ],
- "CANDLE": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Newborn Cord Blood mRNA",
- "Newborn Cord Blood mRNA"
- ]
- ],
- "CEPH-2004": [
- [
- "Lymphoblast B-cell mRNA",
- "Lymphoblast B-cell mRNA"
- ]
- ],
- "GTEx": [
- [
- "Adipose tissue, subcutaneous mRNA",
- "Adipose tissue, subcutaneous mRNA"
- ],
- [
- "Adipose tissue, visceral mRNA",
- "Adipose tissue, visceral mRNA"
- ],
- [
- "Adrenal Gland mRNA",
- "Adrenal Gland mRNA"
- ],
- [
- "Amygdala mRNA",
- "Amygdala mRNA"
- ],
- [
- "Anterior Cingulate Cortex mRNA",
- "Anterior Cingulate Cortex mRNA"
- ],
- [
- "Aorta mRNA",
- "Aorta mRNA"
- ],
- [
- "Blood, Cells - EBV-Transformed Lymphocytes mRNA",
- "Blood, Cells - EBV-Transformed Lymphocytes mRNA"
- ],
- [
- "Breast - Mammary Tissue mRNA",
- "Breast - Mammary Tissue mRNA"
- ],
- [
- "Caudate mRNA",
- "Caudate mRNA"
- ],
- [
- "Cells - EBV-Transformed Lymphocytes mRNA",
- "Cells - EBV-Transformed Lymphocytes mRNA"
- ],
- [
- "Cells - Leukemia Cell Line (CML) mRNA",
- "Cells - Leukemia Cell Line (CML) mRNA"
- ],
- [
- "Cells - Transformed Fibroblasts mRNA",
- "Cells - Transformed Fibroblasts mRNA"
- ],
- [
- "Cerebellar Cortex mRNA",
- "Cerebellar Cortex mRNA"
- ],
- [
- "Cerebellar Hemisphere mRNA",
- "Cerebellar Hemisphere mRNA"
- ],
- [
- "Cerebellum mRNA",
- "Cerebellum mRNA"
- ],
- [
- "Colon - Transverse mRNA",
- "Colon - Transverse mRNA"
- ],
- [
- "Coronary mRNA",
- "Coronary mRNA"
- ],
- [
- "Esophagus - Mucosa mRNA",
- "Esophagus - Mucosa mRNA"
- ],
- [
- "Esophagus - Muscularis mRNA",
- "Esophagus - Muscularis mRNA"
- ],
- [
- "Fallopian Tube mRNA",
- "Fallopian Tube mRNA"
- ],
- [
- "Frontal Cortex mRNA",
- "Frontal Cortex mRNA"
- ],
- [
- "Heart - Atrial Appendage mRNA",
- "Heart - Atrial Appendage mRNA"
- ],
- [
- "Heart - Left Ventricle mRNA",
- "Heart - Left Ventricle mRNA"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Hypothalamus mRNA",
- "Hypothalamus mRNA"
- ],
- [
- "Kidney mRNA",
- "Kidney mRNA"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ],
- [
- "Lung mRNA",
- "Lung mRNA"
- ],
- [
- "Muscle mRNA",
- "Muscle mRNA"
- ],
- [
- "Nerve - Tibial mRNA",
- "Nerve - Tibial mRNA"
- ],
- [
- "Nucleus Accumbens mRNA",
- "Nucleus Accumbens mRNA"
- ],
- [
- "Ovary mRNA",
- "Ovary mRNA"
- ],
- [
- "Pancreas mRNA",
- "Pancreas mRNA"
- ],
- [
- "Pituitary Gland mRNA",
- "Pituitary Gland mRNA"
- ],
- [
- "Prostate mRNA",
- "Prostate mRNA"
- ],
- [
- "Putamen mRNA",
- "Putamen mRNA"
- ],
- [
- "Skin - Not Sun Exposed (Suprapubic) mRNA",
- "Skin - Not Sun Exposed (Suprapubic) mRNA"
- ],
- [
- "Skin - Sun Exposed (Lower leg) mRNA",
- "Skin - Sun Exposed (Lower leg) mRNA"
- ],
- [
- "Spinal Cord mRNA",
- "Spinal Cord mRNA"
- ],
- [
- "Stomach mRNA",
- "Stomach mRNA"
- ],
- [
- "Substantia Nigra mRNA",
- "Substantia Nigra mRNA"
- ],
- [
- "Testis mRNA",
- "Testis mRNA"
- ],
- [
- "Thyroid mRNA",
- "Thyroid mRNA"
- ],
- [
- "Tibial mRNA",
- "Tibial mRNA"
- ],
- [
- "Uterus mRNA",
- "Uterus mRNA"
- ],
- [
- "Vagina mRNA",
- "Vagina mRNA"
- ],
- [
- "Whole Blood mRNA",
- "Whole Blood mRNA"
- ]
- ],
- "GTEx_v5": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Adipose tissue, subcutaneous mRNA",
- "Adipose tissue, subcutaneous mRNA"
- ],
- [
- "Adipose tissue, visceral mRNA",
- "Adipose tissue, visceral mRNA"
- ],
- [
- "Adrenal Gland mRNA",
- "Adrenal Gland mRNA"
- ],
- [
- "Amygdala mRNA",
- "Amygdala mRNA"
- ],
- [
- "Anterior Cingulate Cortex mRNA",
- "Anterior Cingulate Cortex mRNA"
- ],
- [
- "Aorta mRNA",
- "Aorta mRNA"
- ],
- [
- "Bladder mRNA",
- "Bladder mRNA"
- ],
- [
- "Bone Marrow mRNA",
- "Bone Marrow mRNA"
- ],
- [
- "Breast - Mammary Tissue mRNA",
- "Breast - Mammary Tissue mRNA"
- ],
- [
- "Caudate mRNA",
- "Caudate mRNA"
- ],
- [
- "Cells - EBV-Transformed Lymphocytes mRNA",
- "Cells - EBV-Transformed Lymphocytes mRNA"
- ],
- [
- "Cells - Transformed Fibroblasts mRNA",
- "Cells - Transformed Fibroblasts mRNA"
- ],
- [
- "Cerebellar Cortex mRNA",
- "Cerebellar Cortex mRNA"
- ],
- [
- "Cerebellar Hemisphere mRNA",
- "Cerebellar Hemisphere mRNA"
- ],
- [
- "Cerebellum mRNA",
- "Cerebellum mRNA"
- ],
- [
- "Cervix mRNA",
- "Cervix mRNA"
- ],
- [
- "Colon - Sigmoid mRNA",
- "Colon - Sigmoid mRNA"
- ],
- [
- "Colon - Transverse mRNA",
- "Colon - Transverse mRNA"
- ],
- [
- "Coronary mRNA",
- "Coronary mRNA"
- ],
- [
- "Esophagus - Gastroesophageal mRNA",
- "Esophagus - Gastroesophageal mRNA"
- ],
- [
- "Esophagus - Mucosa mRNA",
- "Esophagus - Mucosa mRNA"
- ],
- [
- "Esophagus - Muscularis mRNA",
- "Esophagus - Muscularis mRNA"
- ],
- [
- "Fallopian Tube mRNA",
- "Fallopian Tube mRNA"
- ],
- [
- "Frontal Cortex mRNA",
- "Frontal Cortex mRNA"
- ],
- [
- "Heart - Atrial Appendage mRNA",
- "Heart - Atrial Appendage mRNA"
- ],
- [
- "Heart - Left Ventricle mRNA",
- "Heart - Left Ventricle mRNA"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Hypothalamus mRNA",
- "Hypothalamus mRNA"
- ],
- [
- "Kidney mRNA",
- "Kidney mRNA"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ],
- [
- "Lung mRNA",
- "Lung mRNA"
- ],
- [
- "Muscle mRNA",
- "Muscle mRNA"
- ],
- [
- "Nerve - Tibial mRNA",
- "Nerve - Tibial mRNA"
- ],
- [
- "Nucleus Accumbens mRNA",
- "Nucleus Accumbens mRNA"
- ],
- [
- "Ovary mRNA",
- "Ovary mRNA"
- ],
- [
- "Pancreas mRNA",
- "Pancreas mRNA"
- ],
- [
- "Pituitary Gland mRNA",
- "Pituitary Gland mRNA"
- ],
- [
- "Prostate mRNA",
- "Prostate mRNA"
- ],
- [
- "Putamen mRNA",
- "Putamen mRNA"
- ],
- [
- "Salivary Gland mRNA",
- "Salivary Gland mRNA"
- ],
- [
- "Skin - Not Sun Exposed (Suprapubic) mRNA",
- "Skin - Not Sun Exposed (Suprapubic) mRNA"
- ],
- [
- "Skin - Sun Exposed (Lower leg) mRNA",
- "Skin - Sun Exposed (Lower leg) mRNA"
- ],
- [
- "Small Intestine - Terminal Ileum mRNA",
- "Small Intestine - Terminal Ileum mRNA"
- ],
- [
- "Spinal Cord mRNA",
- "Spinal Cord mRNA"
- ],
- [
- "Spleen mRNA",
- "Spleen mRNA"
- ],
- [
- "Stomach mRNA",
- "Stomach mRNA"
- ],
- [
- "Substantia Nigra mRNA",
- "Substantia Nigra mRNA"
- ],
- [
- "Testis mRNA",
- "Testis mRNA"
- ],
- [
- "Thyroid mRNA",
- "Thyroid mRNA"
- ],
- [
- "Tibial mRNA",
- "Tibial mRNA"
- ],
- [
- "Uterus mRNA",
- "Uterus mRNA"
- ],
- [
- "Vagina mRNA",
- "Vagina mRNA"
- ],
- [
- "Whole Blood mRNA",
- "Whole Blood mRNA"
- ]
- ],
- "HB": [
- [
- "Cerebellum mRNA",
- "Cerebellum mRNA"
- ],
- [
- "Prefrontal Cortex mRNA",
- "Prefrontal Cortex mRNA"
- ],
- [
- "Primary Visual Cortex mRNA",
- "Primary Visual Cortex mRNA"
- ]
- ],
- "HCP": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ],
- "HLC": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ]
- ],
- "HLT": [
- [
- "Lung mRNA",
- "Lung mRNA"
- ]
- ],
- "HSB": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Amygdala mRNA",
- "Amygdala mRNA"
- ],
- [
- "Cerebellar Cortex mRNA",
- "Cerebellar Cortex mRNA"
- ],
- [
- "Dorsolateral Prefrontal Cortex mRNA",
- "Dorsolateral Prefrontal Cortex mRNA"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Inferior Temporal Cortex mRNA",
- "Inferior Temporal Cortex mRNA"
- ],
- [
- "Medial Prefrontal Cortex mRNA",
- "Medial Prefrontal Cortex mRNA"
- ],
- [
- "Mediodorsal Nucleus of Thalamus mRNA",
- "Mediodorsal Nucleus of Thalamus mRNA"
- ],
- [
- "Orbital Prefrontal Cortex mRNA",
- "Orbital Prefrontal Cortex mRNA"
- ],
- [
- "Posterior Inferior Parietal Cortex mRNA",
- "Posterior Inferior Parietal Cortex mRNA"
- ],
- [
- "Posterior Superior Temporal Cortex mRNA",
- "Posterior Superior Temporal Cortex mRNA"
- ],
- [
- "Primary Auditory (A1) Cortex mRNA",
- "Primary Auditory (A1) Cortex mRNA"
- ],
- [
- "Primary Motor (M1) Cortex mRNA",
- "Primary Motor (M1) Cortex mRNA"
- ],
- [
- "Primary Somatosensory (S1) Cortex mRNA",
- "Primary Somatosensory (S1) Cortex mRNA"
- ],
- [
- "Primary Visual Cortex mRNA",
- "Primary Visual Cortex mRNA"
- ],
- [
- "Striatum mRNA",
- "Striatum mRNA"
- ],
- [
- "Ventrolateral Prefrontal Cortex mRNA",
- "Ventrolateral Prefrontal Cortex mRNA"
- ]
- ],
- "Islets-Gerling": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ],
- "TIGEM-Retina-RNA-Seq": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Retina mRNA",
- "Retina mRNA"
- ]
- ]
- },
- "mouse": {
- "AIL": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Prefrontal Cortex mRNA",
- "Prefrontal Cortex mRNA"
- ],
- [
- "Striatum mRNA",
- "Striatum mRNA"
- ]
- ],
- "AIL-LGSM-F34-A": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ],
- "AIL-LGSM-F34-F39-43-GBS": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ],
- "AIL-LGSM-F34-GBS": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ],
- "AIL-LGSM-F39-43-GBS": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ],
- "AKXD": [
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Mammary Tumors mRNA",
- "Mammary Tumors mRNA"
- ]
- ],
- "AXBXA": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Bone Femur mRNA",
- "Bone Femur mRNA"
- ],
- [
- "Eye mRNA",
- "Eye mRNA"
- ],
- [
- "Heart mRNA",
- "Heart mRNA"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ]
- ],
- "B6BTBRF2": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ]
- ],
- "B6D2": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ],
- "B6D2F2": [
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Brain mRNA",
- "Brain mRNA"
- ]
- ],
- "B6D2F2-PSU": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ]
- ],
- "B6D2RI": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ]
- ],
- "BDF2-1999": [
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ]
- ],
- "BDF2-2005": [
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Striatum mRNA",
- "Striatum mRNA"
- ]
- ],
- "BHF2": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Adipose mRNA",
- "Adipose mRNA"
- ],
- [
- "Brain mRNA",
- "Brain mRNA"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ]
- ],
- "BHHBF2": [
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Adipose mRNA",
- "Adipose mRNA"
- ],
- [
- "Brain mRNA",
- "Brain mRNA"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ],
- [
- "Muscle mRNA",
- "Muscle mRNA"
- ]
- ],
- "BXD": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Adipose mRNA",
- "Adipose mRNA"
- ],
- [
- "Adipose Proteome",
- "Adipose Proteome"
- ],
- [
- "Adrenal Gland mRNA",
- "Adrenal Gland mRNA"
- ],
- [
- "Amygdala mRNA",
- "Amygdala mRNA"
- ],
- [
- "Bone Femur mRNA",
- "Bone Femur mRNA"
- ],
- [
- "Brain mRNA",
- "Brain mRNA"
- ],
- [
- "Cartilage mRNA",
- "Cartilage mRNA"
- ],
- [
- "Cerebellum mRNA",
- "Cerebellum mRNA"
- ],
- [
- "Eye mRNA",
- "Eye mRNA"
- ],
- [
- "Fecal Metabolome",
- "Fecal Metabolome"
- ],
- [
- "Gastrointestinal mRNA",
- "Gastrointestinal mRNA"
- ],
- [
- "Heart mRNA",
- "Heart mRNA"
- ],
- [
- "Hematopoietic Cells mRNA",
- "Hematopoietic Cells mRNA"
- ],
- [
- "Hippocampal Precursor Cells mRNA",
- "Hippocampal Precursor Cells mRNA"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Hypothalamus mRNA",
- "Hypothalamus mRNA"
- ],
- [
- "Kidney mRNA",
- "Kidney mRNA"
- ],
- [
- "Liver Metabolome",
- "Liver Metabolome"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ],
- [
- "Liver Proteome",
- "Liver Proteome"
- ],
- [
- "Lung mRNA",
- "Lung mRNA"
- ],
- [
- "Midbrain mRNA",
- "Midbrain mRNA"
- ],
- [
- "Muscle mRNA",
- "Muscle mRNA"
- ],
- [
- "Neocortex mRNA",
- "Neocortex mRNA"
- ],
- [
- "Nucleus Accumbens mRNA",
- "Nucleus Accumbens mRNA"
- ],
- [
- "Pituitary Gland mRNA",
- "Pituitary Gland mRNA"
- ],
- [
- "Prefrontal Cortex mRNA",
- "Prefrontal Cortex mRNA"
- ],
- [
- "Retina mRNA",
- "Retina mRNA"
- ],
- [
- "Spleen mRNA",
- "Spleen mRNA"
- ],
- [
- "Striatum mRNA",
- "Striatum mRNA"
- ],
- [
- "T Cell (helper) mRNA",
- "T Cell (helper) mRNA"
- ],
- [
- "T Cell (regulatory) mRNA",
- "T Cell (regulatory) mRNA"
- ],
- [
- "Ventral Tegmental Area mRNA",
- "Ventral Tegmental Area mRNA"
- ]
- ],
- "BXD-Bone": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ],
- "BXD-Harvested": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ]
- ],
- "BXD300": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ]
- ],
- "BXH": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Bone Femur mRNA",
- "Bone Femur mRNA"
- ],
- [
- "Cartilage mRNA",
- "Cartilage mRNA"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ]
- ],
- "C57BL-6JxC57BL-6NJF2": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ]
- ],
- "CFW": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Prefrontal Cortex mRNA",
- "Prefrontal Cortex mRNA"
- ],
- [
- "Striatum mRNA",
- "Striatum mRNA"
- ]
- ],
- "CIE-INIA": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "LCM Brain Regions mRNA",
- "LCM Brain Regions mRNA"
- ]
- ],
- "CIE-RMA": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Midbrain mRNA",
- "Midbrain mRNA"
- ]
- ],
- "CMS": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ],
- "CTB6F2": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Adipose mRNA",
- "Adipose mRNA"
- ],
- [
- "Brain mRNA",
- "Brain mRNA"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ],
- [
- "Muscle mRNA",
- "Muscle mRNA"
- ]
- ],
- "CXB": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Heart mRNA",
- "Heart mRNA"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ],
- [
- "Spleen mRNA",
- "Spleen mRNA"
- ]
- ],
- "D2GM": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Retina mRNA",
- "Retina mRNA"
- ]
- ],
- "HS": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ],
- [
- "Lung mRNA",
- "Lung mRNA"
- ]
- ],
- "HS-CC": [
- [
- "Striatum mRNA",
- "Striatum mRNA"
- ]
- ],
- "LGSM-AIG34_50-56-GBS": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ],
- "LXS": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Prefrontal Cortex mRNA",
- "Prefrontal Cortex mRNA"
- ]
- ],
- "Linsenbardt-Boehm": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ]
- ],
- "MDP": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Bone Femur mRNA",
- "Bone Femur mRNA"
- ],
- [
- "Dorsal Root Ganglia mRNA",
- "Dorsal Root Ganglia mRNA"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ],
- [
- "Spleen mRNA",
- "Spleen mRNA"
- ]
- ],
- "NZBXFVB-N2": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Mammary Tumors mRNA",
- "Mammary Tumors mRNA"
- ]
- ],
- "Retina-RGC-Rheaume": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Retina Single-cell RNA-Seq",
- "Retina Single-cell RNA-Seq"
- ]
- ],
- "SOTNOT-OHSU": [
- [
- "Genotypes",
- "Genotypes"
- ]
- ]
- },
- "poplar": {
- "Poplar": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ]
- },
- "rat": {
- "HRDP": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ]
- ],
- "HSNIH-Palmer": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Infralimbic Cortex mRNA",
- "Infralimbic Cortex mRNA"
- ],
- [
- "Lateral Habenula mRNA",
- "Lateral Habenula mRNA"
- ],
- [
- "Nucleus Accumbens mRNA",
- "Nucleus Accumbens mRNA"
- ],
- [
- "Orbitofrontal Cortex mRNA",
- "Orbitofrontal Cortex mRNA"
- ],
- [
- "Prelimbic Cortex mRNA",
- "Prelimbic Cortex mRNA"
- ]
- ],
- "HSNIH-RGSMC": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ],
- "HXBBXH": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ],
- [
- "Adipose mRNA",
- "Adipose mRNA"
- ],
- [
- "Adrenal Gland mRNA",
- "Adrenal Gland mRNA"
- ],
- [
- "Heart mRNA",
- "Heart mRNA"
- ],
- [
- "Hippocampus mRNA",
- "Hippocampus mRNA"
- ],
- [
- "Kidney mRNA",
- "Kidney mRNA"
- ],
- [
- "Liver mRNA",
- "Liver mRNA"
- ],
- [
- "Peritoneal Fat mRNA",
- "Peritoneal Fat mRNA"
- ]
- ],
- "SRxSHRSPF2": [
- [
- "Eye mRNA",
- "Eye mRNA"
- ]
- ]
- },
- "soybean": {
- "J12XJ58F11": [
- [
- "Phenotypes",
- "Phenotypes"
- ],
- [
- "Genotypes",
- "Genotypes"
- ]
- ],
- "J12XJ58F2": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ]
- },
- "tomato": {
- "LXP": [
- [
- "Phenotypes",
- "Phenotypes"
- ]
- ]
- }
- }
-} \ No newline at end of file
diff --git a/wqflask/wqflask/static/new/javascript/dataset_select_menu_orig.js b/wqflask/wqflask/static/new/javascript/dataset_select_menu_orig.js
index fad600d2..ee7be68c 100644
--- a/wqflask/wqflask/static/new/javascript/dataset_select_menu_orig.js
+++ b/wqflask/wqflask/static/new/javascript/dataset_select_menu_orig.js
@@ -6,6 +6,7 @@ process_json = function(data) {
return apply_default();
}
};
+
$.ajax('/api/v_pre1/gen_dropdown', {
dataType: 'json',
success: process_json
@@ -74,7 +75,6 @@ redo_dropdown = function(dropdown, items) {
this_opt_group = null
for (_i = 0, _len = group_family_list.length; _i < _len; _i++) {
item = group_family_list[_i];
- console.log("THE ITEM:", item)
if (item[2] != "None" && current_family == ""){
current_family = item[2]
this_opt_group = $("<optgroup label=\"" + item[2] + "\">")
diff --git a/wqflask/wqflask/static/new/javascript/draw_corr_scatterplot.js b/wqflask/wqflask/static/new/javascript/draw_corr_scatterplot.js
index a0a88773..956e0467 100644
--- a/wqflask/wqflask/static/new/javascript/draw_corr_scatterplot.js
+++ b/wqflask/wqflask/static/new/javascript/draw_corr_scatterplot.js
@@ -132,6 +132,8 @@ var modebar_options = {
Plotly.downloadImage(gd, {format: 'jpeg'})
}
}],
+ showEditInChartStudio: true,
+ plotlyServerURL: "https://chart-studio.plotly.com",
modeBarButtonsToRemove:['toImage', 'sendDataToCloud', 'hoverClosest', 'hoverCompare', 'hoverClosestCartesian', 'hoverCompareCartesian', 'lasso2d', 'toggleSpikelines'],
displaylogo: false
}
diff --git a/wqflask/wqflask/static/new/javascript/network_graph.js b/wqflask/wqflask/static/new/javascript/network_graph.js
index 4d507a18..02c3b817 100644
--- a/wqflask/wqflask/static/new/javascript/network_graph.js
+++ b/wqflask/wqflask/static/new/javascript/network_graph.js
@@ -85,7 +85,7 @@ window.onload=function() {
cy.nodes().qtip({
content: function(){
qtip_content = ''
- gn_link = '<b>'+'<a href="http://gn2.genenetwork.org/show_trait?trait_id=' + this.data().id.split(":")[0] + '&dataset=' + this.data().id.split(":")[1] + '" >'+this.data().id +'</a>'+'</b><br>'
+ gn_link = '<b>'+'<a href="' + gn2_url + '/show_trait?trait_id=' + this.data().id.split(":")[0] + '&dataset=' + this.data().id.split(":")[1] + '" >'+this.data().id +'</a>'+'</b><br>'
qtip_content += gn_link
if (typeof(this.data().geneid) !== 'undefined'){
ncbi_link = '<a href="http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?db=gene&cmd=Retrieve&dopt=Graphics&list_uids=' + this.data().geneid + '" >NCBI<a>'+'<br>'
@@ -115,7 +115,7 @@ window.onload=function() {
correlation_line = '<b>Sample r: ' + this.data().correlation + '</b><br>'
p_value_line = 'Sample p(r): ' + this.data().p_value + '<br>'
overlap_line = 'Overlap: ' + this.data().overlap + '<br>'
- scatter_plot = '<a href="http://gn2-zach.genenetwork.org/corr_scatter_plot?dataset_1=' + this.data().source.split(":")[1] + '&dataset_2=' + this.data().target.split(":")[1] + '&trait_1=' + this.data().source.split(":")[0] + '&trait_2=' + this.data().target.split(":")[0] + '" >View Scatterplot</a>'
+ scatter_plot = '<a href="' + gn2_url + '/corr_scatter_plot?dataset_1=' + this.data().source.split(":")[1] + '&dataset_2=' + this.data().target.split(":")[1] + '&trait_1=' + this.data().source.split(":")[0] + '&trait_2=' + this.data().target.split(":")[0] + '" >View Scatterplot</a>'
return correlation_line + p_value_line + overlap_line + scatter_plot
},
position: {
diff --git a/wqflask/wqflask/static/new/javascript/show_trait.js b/wqflask/wqflask/static/new/javascript/show_trait.js
index 28d13345..c0b2e6db 100644
--- a/wqflask/wqflask/static/new/javascript/show_trait.js
+++ b/wqflask/wqflask/static/new/javascript/show_trait.js
@@ -367,6 +367,8 @@ make_table = function() {
var header, key, row, row_line, table, the_id, the_rows, value, _i, _len, _ref, _ref1;
if (js_data.trait_symbol != null) {
header = "<thead><tr><th style=\"color: white; background-color: #369; text-align: center;\" colspan=\"100%\">Trait " + js_data.trait_id + " - " + js_data.trait_symbol + "</th></tr><tr><th style=\"text-align: right; padding-left: 5px;\">Statistic</th>";
+ } else if (js_data.dataset_type == "Geno"){
+ header = "<thead><tr><th style=\"color: white; background-color: #369; text-align: center;\" colspan=\"100%\">Marker " + js_data.trait_id + "</th></tr><tr><th style=\"text-align: right; padding-left: 5px;\">Statistic</th>";
} else {
header = "<thead><tr><th style=\"color: white; background-color: #369; text-align: center;\" colspan=\"100%\">Trait " + js_data.trait_id + ": " + js_data.short_description + "</th></tr><tr><th style=\"text-align: right; padding-left: 5px;\">Statistic</th>";
}
@@ -516,7 +518,7 @@ submit_special = function(url) {
return $("#trait_data_form").submit();
};
-var corr_input_list = ['corr_type', 'trait_id', 'dataset', 'group', 'tool_used', 'form_url', 'corr_sample_method', 'corr_samples_group', 'corr_dataset', 'min_expr',
+var corr_input_list = ['corr_type', 'primary_samples', 'trait_id', 'dataset', 'group', 'tool_used', 'form_url', 'corr_sample_method', 'corr_samples_group', 'corr_dataset', 'min_expr',
'corr_return_results', 'loc_chr', 'min_loc_mb', 'max_loc_mb', 'p_range_lower', 'p_range_upper']
$(".corr_compute").on("click", (function(_this) {
@@ -753,12 +755,12 @@ check_for_zero_to_one_vals = function() {
$('.trait_value_input').each(function() {
current_value = $(this).data("value")
if(isNaN(current_value)) {
- return;
+ return true;
} else {
current_value = parseFloat(current_value)
- if (0 < current_value && current_value < 1){
+ if (0 <= current_value && current_value < 1){
zero_to_one_vals_exist = true
- return false;
+ return false
}
}
});
@@ -767,7 +769,6 @@ check_for_zero_to_one_vals = function() {
normalize_data = function() {
if ($('#norm_method option:selected').val() == 'log2' || $('#norm_method option:selected').val() == 'log10'){
- zero_to_one_vals_exist = check_for_zero_to_one_vals();
if ($('input[name="transform"]').val() != "log2" && $('#norm_method option:selected').val() == 'log2') {
log2_normalize_data(zero_to_one_vals_exist)
$('input[name="transform"]').val("log2")
@@ -808,7 +809,28 @@ normalize_data = function() {
}
}
-$('#normalize').click(normalize_data);
+zero_to_one_vals_exist = false
+
+show_transform_warning = function() {
+ transform_type = $('#norm_method option:selected').val()
+ zero_to_one_vals_exist = check_for_zero_to_one_vals();
+ if (transform_type == "log2" || transform_type == "log10"){
+ if (zero_to_one_vals_exist){
+ $('#transform_alert').css("display", "block")
+ }
+ } else {
+ $('#transform_alert').css("display", "none")
+ }
+}
+
+$('#norm_method').change(function(){
+ show_transform_warning()
+});
+$('#normalize').hover(function(){
+ show_transform_warning()
+});
+
+$('#normalize').click(normalize_data)
switch_qnorm_data = function() {
return $('.trait_value_input').each((function(_this) {
@@ -1031,12 +1053,16 @@ val_range = root.chart_range[1] - root.chart_range[0]
if (val_range < 0.05){
tick_digits = '.3f'
+ left_margin = 80
} else if (val_range < 0.5) {
tick_digits = '.2f'
+ left_margin = 70
} else if (val_range < 5){
tick_digits = '.1f'
+ left_margin = 60
} else {
tick_digits = 'f'
+ left_margin = 55
}
if (js_data.num_values < 256) {
@@ -1075,7 +1101,7 @@ if (js_data.num_values < 256) {
width: bar_chart_width,
height: 600,
margin: {
- l: 55,
+ l: left_margin,
r: 30,
t: 30,
b: bottom_margin
diff --git a/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js b/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js
index 478ed87e..01da3f74 100644
--- a/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js
+++ b/wqflask/wqflask/static/new/javascript/show_trait_mapping_tools.js
@@ -131,11 +131,8 @@
};
outlier_text = "One or more outliers exist in this data set. Please review values before mapping. Including outliers when mapping may lead to misleading results.";
-
- runtime_warning_text = "This function could take as long as 10-20 minutes to run, so please do not close your browser window until it finishes."
-
showalert = function(message, alerttype) {
- return $('#alert_placeholder').append('<div id="alertdiv" class="alert ' + alerttype + '"><a class="close" data-dismiss="alert">�</a><span>' + message + '</span></div>');
+ return $('#outlier_alert_placeholder').append('<div id="mapping_alert" class="alert ' + alerttype + '"><a class="close" data-dismiss="alert">�</a><span>' + message + '</span></div>');
};
$('#suggestive').hide();
@@ -165,6 +162,7 @@
url = "/loading";
$('input[name=method]').val("rqtl_geno");
$('input[name=selected_chr]').val($('#chr_rqtl_geno').val());
+ $('input[name=mapping_scale]').val($('#scale_rqtl_geno').val());
$('input[name=genofile]').val($('#genofile_rqtl_geno').val());
$('input[name=num_perm]').val($('input[name=num_perm_rqtl_geno]').val());
$('input[name=categorical_vars]').val(js_data.categorical_vars)
@@ -210,6 +208,7 @@
url = "/loading";
$('input[name=method]').val("reaper");
$('input[name=selected_chr]').val($('#chr_reaper').val());
+ $('input[name=mapping_scale]').val($('#scale_reaper').val());
$('input[name=genofile]').val($('#genofile_reaper').val());
$('input[name=num_perm]').val($('input[name=num_perm_reaper]').val());
$('input[name=control_marker]').val($('input[name=control_reaper]').val());
@@ -289,4 +288,21 @@
return toggle_enable_disable("#suggestive_lrs");
});
+ $('#genofile_rqtl_geno').change(function() {
+ geno_location = $(this).children("option:selected").val().split(":")[0]
+ $('#scale_rqtl_geno').empty()
+ the_scales = js_data.scales_in_geno[geno_location]
+ for (var i = 0; i < the_scales.length; i++){
+ $('#scale_rqtl_geno').append($("<option></option>").attr("value", the_scales[i][0]).text(the_scales[i][1]));
+ }
+ });
+ $('#genofile_reaper').change(function() {
+ geno_location = $(this).children("option:selected").val().split(":")[0]
+ $('#scale_reaper').empty()
+ the_scales = js_data.scales_in_geno[geno_location]
+ for (var i = 0; i < the_scales.length; i++){
+ $('#scale_reaper').append($("<option></option>").attr("value", the_scales[i][0]).text(the_scales[i][1]));
+ }
+ });
+
}).call(this);
diff --git a/wqflask/wqflask/templates/admin/group_manager.html b/wqflask/wqflask/templates/admin/group_manager.html
index ea9026a6..ac5c1350 100644
--- a/wqflask/wqflask/templates/admin/group_manager.html
+++ b/wqflask/wqflask/templates/admin/group_manager.html
@@ -6,74 +6,113 @@
<div class="container">
<div class="page-header">
-
+ <h1>Manage Groups</h1>
</div>
- <form>
- <div class="control-group">
- <b>Group Name: </b>
- <div class="input-append">
- <input type="text" name="group_name">
- <button type="submit" class="btn btn-primary">Save</button>
- </div>
+ <form action="/manage/groups" method="POST">
+ <div class="container" style="margin-bottom: 30px;">
+ <div><h3>Admin Groups</h3></div>
+ <hr>
+ <table id="admin_groups" class="table table-hover">
+ <thead>
+ <tr>
+ <th></th>
+ <th>Index</th>
+ <th>Name</th>
+ <th># Members</th>
+ <th>Created</th>
+ <th>Last Changed</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for group in admin_groups %}
+ <tr>
+ <td><input type="checkbox" name="read" value="{{ group.id }}"></td>
+ <td>{{ loop.index }}</td>
+ <td>{{ group.name }}</td>
+ <td>{{ group.admins|length + group.users|length }}</td>
+ <td>{{ group.created_timestamp }}</td>
+ <td>{{ group.changed_timestamp }}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
+ </div>
+ <hr>
+ <div class="container">
+ <div><h3>User Groups</h3></div>
+ <hr>
+ <table id="user_groups" class="table table-hover">
+ <thead>
+ <tr>
+ <th></th>
+ <th>Index</th>
+ <th>Name</th>
+ <th># Members</th>
+ <th>Created</th>
+ <th>Last Changed</th>
+ </tr>
+ </thead>
+ <tbody>
+ {% for group in user_groups %}
+ <tr>
+ <td><input type="checkbox" name="read" value="{{ group.id }}"></td>
+ <td>{{ loop.index }}</td>
+ <td>{{ group.name }}</td>
+ <td>{{ group.admins|length + group.users|length }}</td>
+ <td>{{ group.created_timestamp }}</td>
+ <td>{{ group.changed_timestamp }}</td>
+ </tr>
+ {% endfor %}
+ </tbody>
+ </table>
</div>
-
- <table id="dataset_list" class="table table-hover">
- <thead>
- <tr>
- <th>Read</th>
- <th>Type</th>
- <th>ID</th>
- <th>Name</th>
- <th>Full Name</th>
- </tr>
- </thead>
- {% for dataset in datasets %}
- <tr>
- <td><input type="checkbox" name="read" value="{{ dataset.type }}:{{ dataset.name }}"></td>
- <td>{{ dataset.type }}</td>
- <td>{{ dataset.id }}</td>
- <td>{{ dataset.name }}</td>
- <td>{{ dataset.fullname }}</td>
- </tr>
- {% endfor %}
- </table>
</form>
</div>
+
+
<!-- End of body -->
{% endblock %}
{% block js %}
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
- <script language="javascript" type="text/javascript" src="/static/packages/DT_bootstrap/DT_bootstrap.js"></script>
+ <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
+
<script language="javascript" type="text/javascript" src="/static/packages/TableTools/media/js/TableTools.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/packages/underscore/underscore-min.js"></script>
<script type="text/javascript" charset="utf-8">
$(document).ready( function () {
- console.time("Creating table");
- $('#dataset_list').dataTable( {
- "sDom": "Tftipr",
- "oTableTools": {
- "aButtons": [
- "copy",
- "print",
- {
- "sExtends": "collection",
- "sButtonText": 'Save <span class="caret" />',
- "aButtons": [ "csv", "xls", "pdf" ]
- }
- ],
- "sSwfPath": "/static/packages/TableTools/media/swf/copy_csv_xls_pdf.swf"
+ $('#admin_groups, #user_groups').dataTable( {
+ "drawCallback": function( settings ) {
+ $('#admin_groups tr').click(function(event) {
+ if (event.target.type !== 'checkbox') {
+ $(':checkbox', this).trigger('click');
+ }
+ });
},
- "iDisplayLength": 50,
- "bLengthChange": true,
+ "columns": [
+ { "type": "natural" },
+ { "type": "natural" },
+ { "type": "natural" },
+ { "type": "natural" },
+ { "type": "natural" },
+ { "type": "natural" }
+ ],
+ "columnDefs": [ {
+ "targets": 0,
+ "orderable": false
+ } ],
+ "order": [[1, "asc" ]],
+ "sDom": "Ztr",
+ "iDisplayLength": -1,
+ "autoWidth": true,
"bDeferRender": true,
- "bSortClasses": false
+ "bSortClasses": false,
+ "paging": false,
+ "orderClasses": true
} );
- console.timeEnd("Creating table");
});
</script>
{% endblock %}
diff --git a/wqflask/wqflask/templates/base.html b/wqflask/wqflask/templates/base.html
index 2c95bf5e..07c1b48e 100644
--- a/wqflask/wqflask/templates/base.html
+++ b/wqflask/wqflask/templates/base.html
@@ -52,6 +52,7 @@
<a href="/help" class="dropdow-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">Help <span class="caret"></a>
<ul class="dropdown-menu">
<li><a href="/references">References</a></li>
+ <li><a href="/tutorials">Tutorials/Primers</a></li>
<li><a href="http://gn1.genenetwork.org/glossary.html">Glossary of Term</a></li>
<li><a href="http://gn1.genenetwork.org/faq.html">FAQ</a></li>
<li><a href="/policies">Policies</a></li>
@@ -71,6 +72,7 @@
<li><a href="httP://datafiles.genenetwork.org">Interplanetary File System</a></li>
</ul>
</li>
+ {% if g.user_session %}
<li class="">
<a href="/collections/list">Collections
<span class="badge badge-info">{{ g.user_session.num_collections }}</span>
@@ -92,6 +94,7 @@
<a id="login_in" href="/n/login">Sign in</a>
{% endif %}
</li>
+ {% endif %}
<!--
<li style="margin-left: 20px;">
<a href="http://gn2-staging.genenetwork.org" style="font-weight: bold;" >Use Staging Branch</a>
@@ -131,13 +134,15 @@
This site is currently operated by
<a href="mailto:rwilliams@uthsc.edu">Rob Williams</a>,
<a href="http://thebird.nl/">Pjotr Prins</a>,
+ <a href="http://www.senresearch.org">Saunak Sen</a>,
<a href="mailto:zachary.a.sloan@gmail.com">Zachary Sloan</a>,
<a href="mailto:acenteno@uthsc.edu">Arthur Centeno</a>,
and <a href="mailto:cfische7@uthsc.edu">Christian Fischer</a>.
</p>
<p>Design and code by Pjotr Prins, Zach Sloan, Arthur Centeno, Christan Fischer, Danny Arends, Sam Ockman, Lei Yan, Xiaodong Zhou, Christian Fernandez,
- Ning Liu, Rudi Alberts, Elissa Chesler, Sujoy Roy, Evan G. Williams, Alexander G. Williams, Kenneth Manly, Jintao Wang, and Robert W. Williams,
- <a href="http://genenetwork.org/credit.html">colleagues</a>.</p>
+ Ning Liu, Rudi Alberts, Elissa Chesler, Sujoy Roy, Evan G. Williams, Alexander G. Williams, Kenneth Manly, Jintao Wang, Robert W. Williams, and
+ <!--<a href="http://genenetwork.org/credit.html">colleagues</a>.</p>-->
+ <a href="/credits">colleagues</a>.</p>
<br />
<p>GeneNetwork support from:</p>
<ul>
diff --git a/wqflask/wqflask/templates/collections/list.html b/wqflask/wqflask/templates/collections/list.html
index 3829b950..c8705c7d 100644
--- a/wqflask/wqflask/templates/collections/list.html
+++ b/wqflask/wqflask/templates/collections/list.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}Your Collections{% endblock %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
<link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/extensions/buttons.bootstrap.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
{% endblock %}
@@ -66,7 +66,7 @@
{% block js %}
<script type="text/javascript" src="/static/packages/smart-time-ago/lib/timeago.js"></script>
<script type="text/javascript" src="/static/new/javascript/search_results.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
+ <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
<script language="javascript" type="text/javascript" src="/static/new/js_external/jszip.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.naturalSort.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/extensions/dataTables.buttons.min.js"></script>
diff --git a/wqflask/wqflask/templates/collections/view.html b/wqflask/wqflask/templates/collections/view.html
index 6639f46a..60a1a081 100644
--- a/wqflask/wqflask/templates/collections/view.html
+++ b/wqflask/wqflask/templates/collections/view.html
@@ -1,14 +1,14 @@
{% extends "base.html" %}
{% block title %}View Collection{% endblock %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
<link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/extensions/buttons.dataTables.css">
<link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
{% endblock %}
{% block content %}
<!-- Start of body -->
- <div class="container" style="min-width: 1250px;">
+ <div class="container" style="min-width: 2050px;">
<h1>
<span id="collection_name">{{ uc.name }}</span>
<input type="text" name="new_collection_name" style="font-size: 20px; display: none; width: 500px;" class="form-control" placeholder="{{ uc.name }}">
@@ -122,9 +122,9 @@
</a>
</TD>
{% if this_trait.symbol %}
- <TD data-export="{{ this_trait.symbol }}">{{ this_trait.symbol }}</TD>
+ <TD title="{{ this_trait.symbol }}" data-export="{{ this_trait.symbol }}">{% if this_trait.symbol|length > 20 %}{{ this_trait.symbol[:20] }}...{% else %}{{ this_trait.symbol }}{% endif %}</TD>
{% elif this_trait.abbreviation %}
- <TD data-export="{{ this_trait.abbreviation }}">{{ this_trait.abbreviation }}</TD>
+ <TD title="{{ this_trait.abbreviation }}" data-export="{{ this_trait.abbreviation }}">{% if this_trait.abbreviation|length > 20 %}{{ this_trait.abbreviation[:20] }}...{% else %}{{ this_trait.abbreviation }}{% endif %}</TD>
{% else %}
<TD data-export="N/A">N/A</TD>
{% endif %}
@@ -166,7 +166,7 @@
<script language="javascript" type="text/javascript" src="/static/new/js_external/jszip.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/js_external/md5.min.js"></script>
<script type="text/javascript" src="/static/new/javascript/search_results.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
+ <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.naturalSort.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/extensions/dataTables.colResize.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/extensions/dataTables.colReorder.js"></script>
@@ -190,7 +190,7 @@
{ "type": "natural", "width": 50 },
{ "type": "natural" },
{ "type": "natural", "width": 120 },
- { "type": "natural", "width": 120 },
+ { "type": "natural" },
{ "type": "natural" },
{ "type": "natural", "width": 130 },
{ "type": "natural", "width": 35 },
diff --git a/wqflask/wqflask/templates/corr_scatterplot.html b/wqflask/wqflask/templates/corr_scatterplot.html
index ffc8244d..5877e367 100644
--- a/wqflask/wqflask/templates/corr_scatterplot.html
+++ b/wqflask/wqflask/templates/corr_scatterplot.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
<link rel="stylesheet" type="text/css" href="/static/new/css/panelutil.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/d3-tip.min.css" />
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/nvd3/1.8.5/nv.d3.min.css">
diff --git a/wqflask/wqflask/templates/correlation_matrix.html b/wqflask/wqflask/templates/correlation_matrix.html
index 9af52021..cb9fb815 100644
--- a/wqflask/wqflask/templates/correlation_matrix.html
+++ b/wqflask/wqflask/templates/correlation_matrix.html
@@ -1,6 +1,6 @@
{% extends "base.html" %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
<link rel="stylesheet" type="text/css" href="/static/new/css/corr_matrix.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/panelutil.css" />
@@ -135,7 +135,7 @@
<script language="javascript" type="text/javascript" src="/static/new/js_external/chroma.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/javascript/loadings_plot.js"></script>
<script type="text/javascript" src="/static/new/javascript/create_corr_matrix.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
+ <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
<script type="text/javascript" src="/static/new/javascript/search_results.js"></script>
<script>
diff --git a/wqflask/wqflask/templates/correlation_page.html b/wqflask/wqflask/templates/correlation_page.html
index 03b03aa7..1c84239c 100644
--- a/wqflask/wqflask/templates/correlation_page.html
+++ b/wqflask/wqflask/templates/correlation_page.html
@@ -1,6 +1,6 @@
{% extends "base.html" %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
<link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/extensions/buttons.bootstrap.css" />
<link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/extensions/buttons.dataTables.css">
{% endblock %}
@@ -82,6 +82,7 @@
<button id="redraw" class="btn btn-default" type="button">Reset Columns</button>
</form>
<br />
+ {% if target_dataset.type != "Publish" %}
<br />
<button id="more_options" class="btn btn-primary">More Options...</button>
<br />
@@ -107,6 +108,7 @@
<br />
<br />
</div>
+ {% endif %}
</div>
<div style="margin-bottom: 5px;">
<b>Show/Hide Columns:</b>
@@ -126,7 +128,7 @@
{% for trait in correlation_results %}
<tr>
<td><INPUT TYPE="checkbox" NAME="searchResult" class="checkbox trait_checkbox" style="padding-right: 0px;" VALUE="{{ data_hmac('{}:{}'.format(trait.name, trait.dataset.name)) }}"></td>
- <td data-export="{{ loop.index }}" style="padding-left: 8px; padding-right: 0px; padding-top: 4px; align: center;">{{ loop.index }}</td>
+ <td data-export="{{ loop.index }}" style="padding-left: 8px; padding-right: 0px; padding-top: 4px; align: right;">{{ loop.index }}</td>
<td data-export="{{ trait.name }}">
<a href="{{ url_for('show_trait_page',
trait_id = trait.name,
@@ -159,7 +161,12 @@
<td data-export="{{ trait.LRS_location_repr }}" align="right">{{ trait.LRS_location_repr }}</td>
<td data-export={% if trait.additive != "" %}"{{ '%0.3f' % trait.additive|float }}"{% else %}"N/A"{% endif %} align="right">{% if trait.additive != "" %}{{ '%0.3f' % trait.additive|float }}{% else %}N/A{% endif %}</td>
{% elif target_dataset.type == "Publish" %}
- <td data-export="{{ trait.description_display }}">{{ trait.description_display }}</td>
+ {% if trait.abbreviation %}
+ <TD title="{{ trait.abbreviation }}" data-export="{{ trait.abbreviation }}">{% if trait.abbreviation|length > 20 %}{{ trait.abbreviation[:20] }}...{% else %}{{ trait.abbreviation }}{% endif %}</TD>
+ {% else %}
+ <TD data-export="N/A">N/A</TD>
+ {% endif %}
+ <td data-export="{{ trait.description_display }}">{% if trait.description_display|length > 50 %}{{ trait.description_display[:50] }}...{% else %}{{ trait.description_display }}{% endif %}</td>
<td data-export="{{ trait.authors }}">{{ trait.authors }}</td>
<td data-export="{{ trait.pubmed_text }}">
<a href="{{ trait.pubmed_link }}">
@@ -187,13 +194,13 @@
{% endblock %}
{% block js %}
- <script type="text/javascript" src="/static/new/js_external/md5.min.js"></script>
+ <!--<script type="text/javascript" src="/static/new/js_external/md5.min.js"></script>-->
<script type="text/javascript" src="/static/new/javascript/search_results.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/js_external/jszip.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/packages/underscore/underscore-min.js"></script>
- <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>
+ <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/extensions/dataTables.buttons.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/extensions/buttons.colVis.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.naturalSort.js"></script>
@@ -234,8 +241,7 @@
return ((x < y) ? 1 : ((x > y) ? -1 : 0));
};
- //$.fn.dataTableExt.afnFiltering.push(
-
+ {% if target_dataset.type != "Publish" %}
$.fn.dataTable.ext.search.push( function( settings, data, dataIndex ) {
var r_column = {{ filter_cols[0] }};
var r_greater = parseFloat($('input[name=r_greater_select]').val())
@@ -275,6 +281,7 @@
}
return true
});
+ {% endif %}
$(document).ready( function () {
@@ -298,7 +305,6 @@
$(button).prop("disabled", false);
}
}
- //});
if ($(this).is(":checked")) {
if (!$(this).closest('tr').hasClass('selected')) {
$(this).closest('tr').addClass('selected')
@@ -377,8 +383,15 @@
{% elif target_dataset.type == "Publish" %}
table_conf = {
- "paging": false,
- buttons: [
+ "drawCallback": function( settings ) {
+ $('#trait_table tr').click(function(event) {
+ if (event.target.type !== 'checkbox') {
+ $(':checkbox', this).trigger('click');
+ }
+ });
+ $('.trait_checkbox:checkbox').on("change", change_buttons);
+ },
+ "buttons": [
{
extend: 'columnsToggle',
columns: function( idx, data, node ) {
@@ -398,6 +411,7 @@
{ "type": "natural" },
{ "type": "natural" },
{ "type": "natural" },
+ { "type": "natural" },
{ "type": "natural", "width": "20%" },
{ "type": "natural", "width": "12%" },
{ "orderDataType": "dom-innertext" },
@@ -420,10 +434,14 @@
$('td', row).eq(4).text($('td', row).eq(4).text() + '...')
}
},
- "order": [[8, "asc" ]],
+ "order": [[9, "asc" ]],
"sDom": "Btir",
+ "iDisplayLength": -1,
"autoWidth": false,
- "bDeferRender": true
+ "deferRender": true,
+ "bSortClasses": false,
+ "paging": false,
+ "orderClasses": true,
}
{% elif target_dataset.type == "Geno" %}
table_conf = {
@@ -462,7 +480,7 @@
}
{% endif %}
- var the_table = $('#trait_table').DataTable(table_conf);
+ the_table = $('#trait_table').DataTable(table_conf);
console.timeEnd("Creating table");
diff --git a/wqflask/wqflask/templates/credits.html b/wqflask/wqflask/templates/credits.html
new file mode 100644
index 00000000..95c424cc
--- /dev/null
+++ b/wqflask/wqflask/templates/credits.html
@@ -0,0 +1,55 @@
+{% extends "base.html" %}
+{% block title %}Credit{% endblock %}
+{% block content %}
+
+<Table width= "100%" cellSpacing=0 cellPadding=5><TR>
+<!-- Body Start from Here -->
+<TD valign="top" height="200" width="100%">
+ <P class="title"><H2>Web site design and coding</H2></P>
+ <UL>
+<LI> <A HREF="mailto:rwilliams@uthsc.edu">Robert W Williams</a>
+<LI>Kenneth Manly (design and QTL mapping, 1995-2007)
+<LI>Jintao Wang (lead programmer, 2001–2006)
+<LI><a href="http://www.nervenet.org/main/people.html">Arthur G. Centeno (IT Analyst III, 2001–present)</a>
+<LI><a href="http://www.nervenet.org/main/people.html">Zachary Sloan (IT Analyst III, 2009–present)</a>
+<LI><a href="http://www.nervenet.org/main/people.html">Lei Yan (systems and web services interface 2008-2018)</a>
+<LI><a href="http://www.nervenet.org/main/people.html">Xusheng Wang (data analysis, 2008-2012)</a>
+<LI><a href="http://www.nervenet.org/main/people.html">Xiaodong Zhou (lead programmer 2009–2011)</a>
+<LI>Ning Liu (programmer 2008–2009)</LI>
+<LI>Zhaohui Sun (SNP browser, programmer 2007)
+<LI>Yanhua Qu (data entry, 2005-2008)
+<LI>Stephen Pitts (programmer)
+<LI>Hongqiang Li (lead programmer, 2007-2009)
+<LI><A HREF="http://www.jax.org/news/archives/2009/chesler.html">Elissa Chesler</A> (design of QTL Heat Map, Compare Correlations, 2004-2006)
+<LI>Kevitt Adler (systems, 2006-2008)
+<LI>Robert Crowell (SNP Browser, 2006-2007)
+<LI>David Crowell (partial correlations, 2008-2009)
+<LI>Evan G. Williams (SNP and Variant Browser, data entry, 2004-2006)
+<LI>Alex G Williams (QTL Maps GUI, 2003-2006)
+ </UL>
+ <P class="title"><H2>Published and Unpublished Phenotype Data</H2></P>
+ <UL>
+ <LI><A HREF="http://www.nervenet.org/people/lulu_cv.html">Lu Lu</A>
+ <LI> <A HREF="http://www.jax.org/news/archives/2009/chesler.html">Elissa J. Chesler</A>
+ <LI><a href="http://www.ohsu.edu/som-BehNeuro/Faculty/Crabbe.html">John C Crabbe</a>, OHSU
+ <LI><a href="http://www.ohsu.edu/som-BehNeuro/Faculty/Belknap.html">John K Belknap</a>, OHSU
+ <LI>Mary-Kathleen Sullivan
+ <LI>Emily English
+ <LI>Byron Jones
+ <LI>Ryan McNieve
+ <LI>Nathan Copeland
+ </UL>
+ <P class="title"><H2>Genotype / Genomic Data</H2></P>
+ <UL>
+ <LI> <A HREF="http://www.nervenet.org/people/lulu_cv.html">Lu Lu</A>
+ <LI><a href="http://www.nervenet.org/people/Gu_cv.html">Jing Gu</a>
+ <LI>Shuhua Qi
+ <LI>John Hogenesch
+ <LI>Timothy Wiltshire
+ <LI><a href="http://www.nervenet.org/people/Yanhua_cv.html">Yanhua Qu</a>
+ </UL>
+ <P></P>
+</TD>
+</TR></TABLE>
+
+{% endblock %}
diff --git a/wqflask/wqflask/templates/ctl_results.html b/wqflask/wqflask/templates/ctl_results.html
index d85075a9..0108d93a 100644
--- a/wqflask/wqflask/templates/ctl_results.html
+++ b/wqflask/wqflask/templates/ctl_results.html
@@ -61,6 +61,7 @@
<script>
elements_list = {{ elements | safe }}
+ gn2_url = "{{ gn2_url | safe }}"
</script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.js"></script>
diff --git a/wqflask/wqflask/templates/gsearch_gene.html b/wqflask/wqflask/templates/gsearch_gene.html
index 556d46d3..8c261eec 100644
--- a/wqflask/wqflask/templates/gsearch_gene.html
+++ b/wqflask/wqflask/templates/gsearch_gene.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}Search Results{% endblock %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
<link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
{% endblock %}
{% block content %}
@@ -48,7 +48,7 @@
{% block js %}
<script language="javascript" type="text/javascript" src="/static/new/js_external/md5.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/javascript/search_results.js"></script>
- <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script>
+ <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
<script language="javascript" type="text/javascript" src="/static/new/js_external/jszip.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.naturalSort.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/extensions/dataTables.colReorder.js"></script>
diff --git a/wqflask/wqflask/templates/gsearch_pheno.html b/wqflask/wqflask/templates/gsearch_pheno.html
index f6ffff47..05b2f988 100644
--- a/wqflask/wqflask/templates/gsearch_pheno.html
+++ b/wqflask/wqflask/templates/gsearch_pheno.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}Search Results{% endblock %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
<link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
{% endblock %}
{% block content %}
@@ -48,7 +48,7 @@
{% block js %}
<script language="javascript" type="text/javascript" src="/static/new/js_external/md5.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/javascript/search_results.js"></script>
- <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script>
+ <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
<script language="javascript" type="text/javascript" src="/static/new/js_external/jszip.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.naturalSort.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/extensions/dataTables.colReorder.js"></script>
diff --git a/wqflask/wqflask/templates/index_page.html b/wqflask/wqflask/templates/index_page.html
index 0116245d..f8720d39 100644
--- a/wqflask/wqflask/templates/index_page.html
+++ b/wqflask/wqflask/templates/index_page.html
@@ -219,9 +219,9 @@
<h3>GN1 Mirror and development sites</h3>
<ul>
- <li><a href="http://www.genenetwork.org/">Main GN1 site at UTHSC</a> (main site)</li>
+ <li><a href="http://gn1.genenetwork.org/">Main GN1 site at UTHSC</a> (main site)</li>
<li><a href="http://genenetwork.helmholtz-hzi.de/">Germany at the HZI</a></li>
- <li><a href="http://gn2.genenetwork.org/">Memphis at the U of M</a></li>
+ <li><a href="http://genenetwork.org/">Memphis at the U of M</a></li>
</ul>
</section>
diff --git a/wqflask/wqflask/templates/index_page_orig.html b/wqflask/wqflask/templates/index_page_orig.html
index 963531cb..06b71f53 100755
--- a/wqflask/wqflask/templates/index_page_orig.html
+++ b/wqflask/wqflask/templates/index_page_orig.html
@@ -254,8 +254,8 @@
</div>
<h3>GeneNetwork v2:</h3>
<ul>
- <li><a href="http://gn2.genenetwork.org/">Main website</a> at UTHSC</li>
- <!--<li><a href="http://test-gn2.genenetwork.org/">Testing website</a> at UTHSC</li>-->
+ <li><a href="http://genenetwork.org/">Main website</a> at UTHSC</li>
+ <!--<li><a href="http://test-genenetwork.org/">Testing website</a> at UTHSC</li>-->
</ul>
<h3>GeneNetwork v1:</h3>
<ul>
diff --git a/wqflask/wqflask/templates/mapping_results.html b/wqflask/wqflask/templates/mapping_results.html
index ba0ebef9..b4429b46 100644
--- a/wqflask/wqflask/templates/mapping_results.html
+++ b/wqflask/wqflask/templates/mapping_results.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}Mapping Results{% endblock %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
<link rel="stylesheet" type="text/css" href="/static/packages/DT_bootstrap/DT_bootstrap.css" />
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
<link rel="stylesheet" type="text/css" href="/static/packages/purescript_genome_browser/css/purescript-genetics-browser.css" />
@@ -36,7 +36,7 @@
<input type="hidden" name="value:{{ sample }}" value="{{ vals[loop.index - 1] }}">
{% endfor %}
<input type="hidden" name="num_vals" value="{{ n_samples }}">
- <input type="hidden" name="maf">
+ <input type="hidden" name="maf" value="{{ maf }}">
<input type="hidden" name="use_loco" value="{{ use_loco }}">
<input type="hidden" name="selected_chr" value="{{ selectedChr }}">
<input type="hidden" name="manhattan_plot" value="{{ manhattan_plot }}">
@@ -45,10 +45,14 @@
<input type="hidden" name="num_bootstrap" value="{{ nboot }}">
<input type="hidden" name="do_control" value="{{ doControl }}">
<input type="hidden" name="control_marker" value="{{ controlLocus }}">
- <input type="hidden" name="covariates" values="{{ covariates }}">
+ <input type="hidden" name="covariates" value="{{ covariates }}">
<input type="hidden" name="mapmethod_rqtl_geno" value="{{ mapmethod_rqtl_geno }}">
<input type="hidden" name="mapmodel_rqtl_geno" value="{{ mapmodel_rqtl_geno }}">
<input type="hidden" name="pair_scan" value="{{ pair_scan }}">
+ <input type="hidden" name="transform" value="{{ transform }}">
+ <input type="hidden" name="tool_used" value="Mapping">
+ <input type="hidden" name="wanted_inputs" value="">
+ <input type="hidden" name="form_url" value="/run_mapping">
<div class="container">
<div class="col-xs-5">
@@ -270,7 +274,11 @@
{% endif %}
<td align="right">{{marker.chr}}</td>
{% if plotScale != "physic" %}
+ {% if 'cM' in marker %}
+ <td align="right">{{ '%0.3f' | format(marker.cM|float) }}</td>
+ {% else %}
<td align="right">{{ '%0.3f' | format(marker.Mb|float) }}</td>
+ {% endif %}
{% else %}
<td align="right">{{ '%0.6f' | format(marker.Mb|float) }}</td>
{% endif %}
@@ -329,7 +337,7 @@
<script type="text/javascript" src="/static/new/js_external/d3-tip.min.js"></script>
<script type="text/javascript" src="/static/new/js_external/plotly-latest.min.js"></script>
- <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"></script>
+ <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
<script language="javascript" type="text/javascript" src="https://cdn.datatables.net/buttons/1.0.0/js/dataTables.buttons.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.scientific.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.naturalSort.js"></script>
@@ -422,11 +430,19 @@
});
+ var mapping_input_list = ['temp_uuid', 'trait_id', 'dataset', 'tool_used', 'form_url', 'method', 'transform', 'trimmed_markers', 'selected_chr', 'chromosomes', 'mapping_scale',
+ 'score_type', 'suggestive', 'significant', 'num_perm', 'permCheck', 'perm_output', 'perm_strata', 'categorical_vars', 'num_bootstrap', 'bootCheck', 'bootstrap_results',
+ 'LRSCheck', 'covariates', 'maf', 'use_loco', 'manhattan_plot', 'control_marker', 'control_marker_db', 'do_control', 'genofile',
+ 'pair_scan', 'startMb', 'endMb', 'graphWidth', 'lrsMax', 'additiveCheck', 'showSNP', 'showGenes', 'viewLegend', 'haplotypeAnalystCheck',
+ 'mapmethod_rqtl_geno', 'mapmodel_rqtl_geno', 'temp_trait', 'group', 'species', 'reaper_version', 'primary_samples', 'num_vals']
+
+ $('input[name=wanted_inputs]').val(mapping_input_list.join(","));
+
chrView = function(this_chr, chr_mb_list) {
$('input[name=selected_chr]').val(this_chr)
$('input[name=chr_mb_list]').val(chr_mb_list)
- $('#marker_regression_form').attr('action', '/run_mapping');
+ $('#marker_regression_form').attr('action', '/loading');
return $('#marker_regression_form').submit();
};
@@ -436,13 +452,13 @@
$('input[name=endMb]').val(end_mb)
//$('input[name=mb_range]').val(start_mb + "," + end_mb)
- $('#marker_regression_form').attr('action', '/run_mapping');
+ $('#marker_regression_form').attr('action', '/loading');
return $('#marker_regression_form').submit();
};
remap = function() {
$('input[name=selected_chr]').val($('select[name=chromosomes]').val());
- $('#marker_regression_form').attr('action', '/run_mapping');
+ $('#marker_regression_form').attr('action', '/loading');
return $('#marker_regression_form').submit();
};
diff --git a/wqflask/wqflask/templates/network_graph.html b/wqflask/wqflask/templates/network_graph.html
index 4492dd3f..25af7bb1 100644
--- a/wqflask/wqflask/templates/network_graph.html
+++ b/wqflask/wqflask/templates/network_graph.html
@@ -137,6 +137,7 @@
<script>
elements_list = {{ elements | safe }}
+ gn2_url = "{{ gn2_url | safe }}"
</script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.js"></script>
diff --git a/wqflask/wqflask/templates/pair_scan_results.html b/wqflask/wqflask/templates/pair_scan_results.html
index 1ccb2b27..b13b393f 100644
--- a/wqflask/wqflask/templates/pair_scan_results.html
+++ b/wqflask/wqflask/templates/pair_scan_results.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}Pair Scan{% endblock %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
<link rel="stylesheet" type="text/css" href="/static/packages/DT_bootstrap/DT_bootstrap.css" />
<link rel="stylesheet" type="text/css" href="/static/packages/TableTools/media/css/TableTools.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/d3-tip.min.css" />
@@ -65,7 +65,7 @@
<script language="javascript" type="text/javascript" src="http://d3js.org/d3.v3.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/js_external/d3-tip.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.js"></script>
- <script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/jquery.dataTables.min.js"></script>
+ <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.scientific.js"></script>
<script language="javascript" type="text/javascript" src="/static/packages/DT_bootstrap/DT_bootstrap.js"></script>
<script language="javascript" type="text/javascript" src="/static/packages/TableTools/media/js/TableTools.min.js"></script>
diff --git a/wqflask/wqflask/templates/search_error.html b/wqflask/wqflask/templates/search_error.html
index 7399b377..df8d9dff 100644
--- a/wqflask/wqflask/templates/search_error.html
+++ b/wqflask/wqflask/templates/search_error.html
@@ -1,7 +1,7 @@
{% extends "base.html" %}
{% block title %}Search Results{% endblock %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
{% endblock %}
{% block content %}
<!-- Start of body -->
diff --git a/wqflask/wqflask/templates/search_result_page.html b/wqflask/wqflask/templates/search_result_page.html
index 33221e0f..3dfae3dd 100644
--- a/wqflask/wqflask/templates/search_result_page.html
+++ b/wqflask/wqflask/templates/search_result_page.html
@@ -1,14 +1,14 @@
{% extends "base.html" %}
{% block title %}Search Results{% endblock %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
<link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/extensions/scroller.dataTables.min.css">
<link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/extensions/buttons.dataTables.css">
<link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
{% endblock %}
{% block content %}
<!-- Start of body -->
- <div style="padding-left: 10px; {% if dataset.type == 'Publish' %}min-width: 1000px;{% else %}min-width: 1200px;{% endif %}">
+ <div style="padding-left: 10px;>
<input type="hidden" name="uc_id" id="uc_id" value="{{ uc_id }}">
<div style="padding-top: 10px; padding-bottom: 10px; font-size: 16px;">
@@ -27,6 +27,8 @@
with <u>GeneWiki</u> containing <strong>{{ word.search_term[0] }}</strong>{% if loop.last %}.{% else %} and {% endif %}
{% elif word.key|lower == "mean" %}
with <u>MEAN</u> between <strong>{{ word.search_term[0] }}</strong> and <strong>{{ word.search_term[1] }}</strong>{% if loop.last %}.{% else %} and {% endif %}
+ {% elif word.key|lower == "range" %}
+ with <u>RANGE</u> between <strong>{{ word.search_term[0] }}</strong> and <strong>{{ word.search_term[1] }}</strong>{% if loop.last %}.{% else %} and {% endif %}
{% elif word.key|lower == "lrs" or word.key|lower == "lod" or word.key|lower == "translrs" or word.key|lower == "cislrs" or word.key|lower == "translod" or word.key|lower == "cislod" %}
{% if word.search_term|length == 1 %}
with {% if word.key|lower == "translrs" %}trans{% elif word.key|lower == "cislrs" %}cis{% endif %}LRS {% if word.separator == ">" %} greater than {% elif word.separator == "<" %} less than {% elif word.separator == ">=" %} greater than or equal to {% elif word.separator == "<=" %} less than or equal to {% endif %} <strong>{{ word.search_term[0] }}</strong>{% if loop.last %}.{% else %} and {% endif %}
@@ -57,7 +59,7 @@
</div>
- <div>
+ <div style="min-width: 950px;">
<form id="trait_submission_form" target="_blank" action="/corr_matrix" method="post">
<input type="hidden" name="tool_used" value="" />
<input type="hidden" name="form_url" value="" />
@@ -109,29 +111,34 @@
<div>
<br />
<form id="export_form" method="POST" action="/export_traits_csv" style="display: inline;">
- <input type="hidden" name="headers" id="headers" value="{% for field in header_fields %}{{ field }},{% endfor %}">
- <input type="hidden" name="search_string" id="search_string" value="{{ original_search_string }}">
- <input type="hidden" name="database_name" id="database_name" value="{{ dataset.fullname }}">
- <input type="hidden" name="file_name" id="file_name" value="search_results">
- <input type="hidden" name="filter_term" id="filter_term" value="None">
- {% if dataset.accession_id is defined %}
- <input type="hidden" name="accession_id" id="accession_id" value="{{ dataset.accession_id }}">
- {% endif %}
- <input type="hidden" name="export_data" id="export_data" value="">
- <button class="btn btn-default" id="select_all" type="button"><span class="glyphicon glyphicon-ok"></span> Select</button>
- <button class="btn btn-default" id="add" type="button" disabled><span class="glyphicon glyphicon-plus-sign"></span> Add</button>
- <button class="btn btn-default" id="export_traits">Download CSV</button>
- <input type="text" id="searchbox" class="form-control" style="width: 200px; display: inline;" placeholder="Search This Table For ...">
- <input type="text" id="select_top" class="form-control" style="width: 200px; display: inline;" placeholder="Select Top ...">
- <button class="btn btn-default" id="deselect_all" type="button"><span class="glyphicon glyphicon-remove"></span> Deselect</button>
+ <div style="min-width: 950px;">
+ <input type="hidden" name="headers" id="headers" value="{% for field in header_fields %}{{ field }},{% endfor %}">
+ <input type="hidden" name="search_string" id="search_string" value="{{ original_search_string }}">
+ <input type="hidden" name="database_name" id="database_name" value="{{ dataset.fullname }}">
+ <input type="hidden" name="file_name" id="file_name" value="search_results">
+ <input type="hidden" name="filter_term" id="filter_term" value="None">
+ {% if dataset.accession_id is defined %}
+ <input type="hidden" name="accession_id" id="accession_id" value="{{ dataset.accession_id }}">
+ {% endif %}
+ <input type="hidden" name="export_data" id="export_data" value="">
+ <button class="btn btn-default" id="select_all" type="button"><span class="glyphicon glyphicon-ok"></span> Select</button>
+ <button class="btn btn-default" id="add" type="button" disabled><span class="glyphicon glyphicon-plus-sign"></span> Add</button>
+ <button class="btn btn-default" id="export_traits">Download CSV</button>
+ <input type="text" id="searchbox" class="form-control" style="width: 200px; display: inline;" placeholder="Search This Table For ...">
+ <input type="text" id="select_top" class="form-control" style="width: 200px; display: inline;" placeholder="Select Top ...">
+ <button class="btn btn-default" id="deselect_all" type="button"><span class="glyphicon glyphicon-remove"></span> Deselect</button>
+ </div>
</form>
<br />
+ {% if dataset.type != 'Geno' %}
<br />
<div style="margin-bottom: 5px;">
<b>Show/Hide Columns:</b>
</div>
+ {% endif %}
+ <!--<div id="table_container" style="min-width: {% if dataset.type == 'ProbeSet' or dataset.type == 'Publish' %}2000{% else %}380{% endif %}px;">-->
<div id="table_container">
- <table class="table-hover table-striped cell-border" id='trait_table' style="float: left;">
+ <table class="table-hover table-striped cell-border" id='trait_table' style="float: left; width: {% if dataset.type == 'Geno' %}380px{% else %}100%{% endif %};">
<tbody>
<td colspan="100%" align="center"><br><b><font size="15">Loading...</font></b><br></td>
</tbody>
@@ -150,7 +157,7 @@
<script language="javascript" type="text/javascript" src="/static/new/js_external/md5.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/javascript/search_results.js"></script>
- <script language="javascript" type="text/javascript" src="https://cdn.datatables.net/1.10.13/js/jquery.dataTables.min.js"></script>
+ <script language="javascript" type="text/javascript" src="{{ url_for('js', filename='DataTables/js/jquery.dataTables.min.js') }}"></script>
<script language="javascript" type="text/javascript" src="/static/new/js_external/jszip.min.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/js/dataTables.naturalSort.js"></script>
<script language="javascript" type="text/javascript" src="/static/new/packages/DataTables/extensions/dataTables.buttons.min.js"></script>
@@ -263,7 +270,7 @@
'columns': [
{
'data': null,
- 'width': "30px",
+ 'width': "25px",
'orderDataType': "dom-checkbox",
'orderSequence': [ "desc", "asc"],
'render': function(data, type, row, meta) {
@@ -289,11 +296,13 @@
{
'title': "Symbol",
'type': "natural",
+ 'width': "120px",
'data': "symbol"
},
{
'title': "Description",
'type': "natural",
+ 'width': "500px",
'data': null,
'render': function(data, type, row, meta) {
try {
@@ -320,24 +329,26 @@
'title': "Max LRS<a href=\"http://genenetwork.org//glossary.html#LRS\" target=\"_blank\" style=\"color: white;\"><sup>?</sup></a>",
'type': "natural",
'data': "lrs_score",
+ 'width': "80px",
'orderSequence': [ "desc", "asc"]
},
{
'title': "Max LRS Location",
'type': "natural",
- 'width': "120px",
+ 'width': "150px",
'data': "lrs_location"
},
{
'title': "Additive Effect<a href=\"http://genenetwork.org//glossary.html#A\" target=\"_blank\" style=\"color: white;\"><sup>?</sup></a>",
'type': "natural",
'data': "additive",
+ 'width': "120px",
'orderSequence': [ "desc", "asc"]
}{% elif dataset.type == 'Publish' %},
{
'title': "Description",
'type': "natural",
- 'width': "800px",
+ 'width': "500px",
'data': null,
'render': function(data, type, row, meta) {
try {
@@ -378,6 +389,7 @@
'type': "natural",
'orderDataType': "dom-inner-text",
'data': null,
+ 'width': "80px",
'render': function(data, type, row, meta) {
if (data.pubmed_id != "N/A"){
return '<a href="' + data.pubmed_link + '">' + data.pubmed_text + '</a>'
@@ -391,29 +403,31 @@
'title': "Max LRS<a href=\"http://genenetwork.org//glossary.html#LRS\" target=\"_blank\" style=\"color: white;\"><sup>?</sup></a>",
'type': "natural",
'data': "lrs_score",
+ 'width': "80px",
'orderSequence': [ "desc", "asc"]
},
{
'title': "Max LRS Location",
'type': "natural",
- 'width': "200px",
+ 'width': "150px",
'data': "lrs_location"
},
{
- 'title': "Additive<br>Effect<a href=\"http://genenetwork.org//glossary.html#A\" target=\"_blank\" style=\"color: white;\"><sup>?</sup></a>",
+ 'title': "Additive Effect<a href=\"http://genenetwork.org//glossary.html#A\" target=\"_blank\" style=\"color: white;\"><sup>?</sup></a>",
'type': "natural",
- 'width': "100px",
+ 'width': "120px",
'data': "additive",
'orderSequence': [ "desc", "asc"]
}{% elif dataset.type == 'Geno' %},
{
'title': "Location",
'type': "natural",
- 'width': "160px",
+ 'width': "140px",
'data': "location"
}{% endif %}
],
"order": [[1, "asc" ]],
+ {% if dataset.type != 'Geno' %}
buttons: [
{
extend: 'columnsToggle',
@@ -428,6 +442,9 @@
}
],
'sDom': "Bitir",
+ {% else %}
+ 'sDom': "itir",
+ {% endif %}
'deferRender': true,
'paging': false,
'orderClasses': true,
diff --git a/wqflask/wqflask/templates/show_trait.html b/wqflask/wqflask/templates/show_trait.html
index 27c3e398..7380d198 100644
--- a/wqflask/wqflask/templates/show_trait.html
+++ b/wqflask/wqflask/templates/show_trait.html
@@ -6,7 +6,7 @@
<link rel="stylesheet" type="text/css" href="/static/new/css/prob_plot.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/scatter-matrix.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/d3-tip.min.css" />
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
<link rel="stylesheet" type="text/css" href="/static/new/packages/noUiSlider/nouislider.css" />
<link rel="stylesheet" type="text/css" href="/static/new/packages/noUiSlider/nouislider.pips.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/show_trait.css" />
@@ -74,6 +74,7 @@
<div class="panel-body">
{% include 'show_trait_transform_and_filter.html' %}
</div>
+ <div id="transform_alert_placeholder"><div id="transform_alert" style="display: none;"class="alert alert-success outlier-alert"><a class="close" data-dismiss="alert">�</a><span>Because there are some values between 0 and 1, log2 and log10 transforms will add 1 to each value.</span></div></div>
</div>
</div>
<div class="panel panel-default">
@@ -98,7 +99,7 @@
<div class="panel-body">
{% include 'show_trait_mapping_tools.html' %}
</div>
- <div id="alert_placeholder"></div>
+ <div id="outlier_alert_placeholder"></div>
</div>
</div>
<div class="panel panel-default">
diff --git a/wqflask/wqflask/templates/show_trait_details.html b/wqflask/wqflask/templates/show_trait_details.html
index 20dee54e..878b6ced 100644
--- a/wqflask/wqflask/templates/show_trait_details.html
+++ b/wqflask/wqflask/templates/show_trait_details.html
@@ -141,6 +141,12 @@
GTEx Portal
</a>
&nbsp;&nbsp;
+ {% if phenogen_link %}
+ <a href="{{ phenogen_link }}" target="_blank">
+ PhenoGen
+ </a>
+ &nbsp;&nbsp;
+ {% endif %}
{% if genebridge_link %}
<a href="{{ genebridge_link }}" target="_blank">
GeneBridge
@@ -212,7 +218,7 @@
<a href="#redirect">
<button type="button" id="add_to_collection" class="btn btn-primary" title="Add to collection">Add</button>
</a>
- {% if this_trait.dataset.type == 'ProbeSet' %}
+ {% if this_trait.dataset.type == 'ProbeSet' or this_trait.dataset.type == 'Geno' %}
{% if this_trait.symbol != None %}
<a target="_blank" href="http://gn1.genenetwork.org/webqtl/main.py?cmd=sch&amp;gene={{ this_trait.symbol }}&amp;alias=1&amp;species={{ dataset.group.species }}">
<button type="button" class="btn btn-default" title="Find similar expression data">Find</button>
diff --git a/wqflask/wqflask/templates/show_trait_mapping_tools.html b/wqflask/wqflask/templates/show_trait_mapping_tools.html
index 777d4a2d..a2416ced 100644..100755
--- a/wqflask/wqflask/templates/show_trait_mapping_tools.html
+++ b/wqflask/wqflask/templates/show_trait_mapping_tools.html
@@ -121,6 +121,16 @@
</div>
{% if genofiles and genofiles|length>0 %}
<div class="mapping_method_fields form-group">
+ <label for="scale_select" style="text-align: right;" class="col-xs-3 control-label">Map Scale</label>
+ <div style="margin-left:20px;" class="col-xs-2 controls">
+ <select id="scale_reaper" class="form-control" style="width: 80px;">
+ {% for item in scales_in_geno[genofiles[0]['location']] %}
+ <option value="{{ item[0] }}">{{ item[1] }}</option>
+ {% endfor %}
+ </select>
+ </div>
+ </div>
+ <div class="mapping_method_fields form-group">
<label style="text-align: right;" for="genofiles" class="col-xs-3 control-label">Genotypes</label>
<div style="margin-left:20px;" class="col-xs-4 controls">
<select id="genofile_reaper" class="form-control">
@@ -225,7 +235,17 @@
</select>
</div>
</div>
- {% if genofiles and genofiles|length>0 %}
+ {% if genofiles and genofiles|length > 0 %}
+ <div class="mapping_method_fields form-group">
+ <label for="scale_select" style="text-align: right;" class="col-xs-3 control-label">Map Scale</label>
+ <div style="margin-left:20px;" class="col-xs-2 controls">
+ <select id="scale_rqtl_geno" class="form-control" style="width: 80px;">
+ {% for item in scales_in_geno[genofiles[0]['location']] %}
+ <option value="{{ item[0] }}">{{ item[1] }}</option>
+ {% endfor %}
+ </select>
+ </div>
+ </div>
<div class="mapping_method_fields form-group">
<label style="text-align:right;" for="genofiles" class="col-xs-3 control-label">Genotypes</label>
<div style="margin-left:20px;" class="col-xs-4 controls">
@@ -379,7 +399,7 @@
<dt style="padding-top: 20px;">GEMMA</dt>
<dd>Maps traits with correction for kinship among samples using a linear mixed model method, and also allows users to fit multiple covariates such as sex, age, treatment, and genetic markers (<a href="https://www.ncbi.nlm.nih.gov/pubmed/24531419">PMID: 2453419</a>, and <a href="https://github.com/genetics-statistics/GEMMA"> GitHub code</a>). GEMMA incorporates the Leave One Chromosome Out (LOCO) method to ensure that the correction for kinship does not remove useful genetic variance near each marker. Markers can be filtered to include only those with minor allele frequencies (MAF) above a threshold. The default MAF is 0.05.</dd>
{% elif mapping_method == "R/qtl" %}
- <dt style="margin-top: 20px;">R/qtl</dt>
+ <dt style="margin-top: 20px;">R/qtl (version 1.44.9</dt>
<dd>The original R/qtl mapping package that supports classic experimental crosses including 4-parent F2 intercrosses (e.g., NIA ITP UM-HET3). R/qtl is ideal for populations that do not have complex kinship or admixture (<a href="https://www.ncbi.nlm.nih.gov/pubmed/12724300">PMID: 12724300</a>). Both R/qtl as implemented here, and R/qtl2 (<a href="https://www.ncbi.nlm.nih.gov/pubmed/30591514">PMID: 30591514</a>) are available as <a href="https://kbroman.org/pages/software.html">R suites</a>.</dd>
{% elif mapping_method == "QTLReaper" %}
<dt style="margin-top: 20px;">Haley-Knott Regression</dt>
diff --git a/wqflask/wqflask/templates/show_trait_transform_and_filter.html b/wqflask/wqflask/templates/show_trait_transform_and_filter.html
index 4be6d249..b4118b04 100644
--- a/wqflask/wqflask/templates/show_trait_transform_and_filter.html
+++ b/wqflask/wqflask/templates/show_trait_transform_and_filter.html
@@ -70,7 +70,7 @@
<div>
<p>Outliers highlighted in
- <strong style="background-color:yellow;">yellow</strong>
+ <strong style="background-color:orange;">orange</strong>
can be hidden using
the <strong>Hide Outliers</strong> button.
</p>
diff --git a/wqflask/wqflask/templates/snp_browser.html b/wqflask/wqflask/templates/snp_browser.html
index 4422ba73..88cb4d31 100644
--- a/wqflask/wqflask/templates/snp_browser.html
+++ b/wqflask/wqflask/templates/snp_browser.html
@@ -1,6 +1,6 @@
{% extends "base.html" %}
{% block css %}
- <link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/css/jquery.dataTables.css" />
+ <link rel="stylesheet" type="text/css" href="{{ url_for('css', filename='DataTables/css/jquery.dataTables.css') }}" />
<link rel="stylesheet" type="text/css" href="/static/new/packages/DataTables/extensions/buttons.bootstrap.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/typeahead-bootstrap.css" />
<link rel="stylesheet" type="text/css" href="/static/new/css/snp_browser.css" />
diff --git a/wqflask/wqflask/templates/tutorials.html b/wqflask/wqflask/templates/tutorials.html
new file mode 100644
index 00000000..3e6ef01c
--- /dev/null
+++ b/wqflask/wqflask/templates/tutorials.html
@@ -0,0 +1,17 @@
+{% extends "base.html" %}
+{% block title %}Tutorials/Primers{% endblock %}
+{% block content %}
+
+<Table width= "100%" cellSpacing=0 cellPadding=5><TR>
+<!-- Body Start from Here -->
+<TD valign="top" height="200" width="100%">
+ <P class="title"><H2>Tutorials/Primers</H2></P>
+ <UL>
+ <LI><A HREF="http://www.nervenet.org/tutorials/HS_Rat_Using_GeneNetwork_21Apr2020v7.pptx">Statistical and genetic functions,
+and initial mapping results for Rat GWAS P50 as implemented in GeneNetwork.org</A><P></P>
+ </UL>
+ <P></P>
+</TD>
+</TR></TABLE>
+
+{% endblock %}
diff --git a/wqflask/wqflask/user_login.py b/wqflask/wqflask/user_login.py
index da3cc504..edd272c2 100644
--- a/wqflask/wqflask/user_login.py
+++ b/wqflask/wqflask/user_login.py
@@ -6,7 +6,6 @@ import datetime
import time
import logging
import uuid
-import hashlib
import hmac
import base64
import requests
@@ -42,17 +41,20 @@ def basic_info():
ip_address = request.remote_addr,
user_agent = request.headers.get('User-Agent'))
-def encode_password(pass_gen_fields):
+def encode_password(pass_gen_fields, unencrypted_password):
hashfunc = getattr(hashlib, pass_gen_fields['hashfunc'])
salt = base64.b64decode(pass_gen_fields['salt'])
- password = pbkdf2.pbkdf2_hex(str(pass_gen_fields['unencrypted_password']),
+ encrypted_password = pbkdf2.pbkdf2_hex(str(unencrypted_password),
pass_gen_fields['salt'],
pass_gen_fields['iterations'],
pass_gen_fields['keylength'],
hashfunc)
- return password
+ pass_gen_fields.pop("unencrypted_password", None)
+ pass_gen_fields["password"] = encrypted_password
+
+ return pass_gen_fields
def set_password(password):
pass_gen_fields = {
@@ -67,19 +69,10 @@ def set_password(password):
assert len(password) >= 6, "Password shouldn't be shorter than 6 characters"
- encoded_password = encode_password(pass_gen_fields)
+ encoded_password = encode_password(pass_gen_fields, pass_gen_fields['unencrypted_password'])
return encoded_password
-def encrypt_password(unencrypted_password, pwfields):
- hashfunc = getattr(hashlib, pwfields['hashfunc'])
- salt = base64.b64decode(pwfields['salt'])
- iterations = pwfields['iterations']
- keylength = pwfields['keylength']
- encrypted_password = pbkdf2.pbkdf2_hex(str(unencrypted_password),
- salt, iterations, keylength, hashfunc)
- return encrypted_password
-
def get_signed_session_id(user):
session_id = str(uuid.uuid4())
@@ -186,9 +179,12 @@ def login():
password_match = False
if user_details:
submitted_password = params['password']
- pwfields = json.loads(user_details['password'])
- encrypted_pass = encrypt_password(submitted_password, pwfields)
- password_match = pbkdf2.safe_str_cmp(encrypted_pass, pwfields['password'])
+ pwfields = user_details['password']
+ if type(pwfields) is str:
+ pwfields = json.loads(pwfields)
+ encrypted_pass_fields = encode_password(pwfields, submitted_password)
+ password_match = pbkdf2.safe_str_cmp(encrypted_pass_fields['password'], pwfields['password'])
+
else: # Invalid e-mail
flash("Invalid e-mail address. Please try again.", "alert-danger")
response = make_response(redirect(url_for('login')))
@@ -226,7 +222,7 @@ def github_oauth2():
"client_secret": GITHUB_CLIENT_SECRET,
"code": code
}
- logger.debug("LOGIN DATA:", data)
+
result = requests.post("https://github.com/login/oauth/access_token", json=data)
result_dict = {arr[0]:arr[1] for arr in [tok.split("=") for tok in [token.encode("utf-8") for token in result.text.split("&")]]}
@@ -437,19 +433,18 @@ def register_user(params):
if params.get('password_confirm') != password:
errors.append("Passwords don't match.")
- if errors:
- return errors
-
user_details['password'] = set_password(password)
user_details['user_id'] = str(uuid.uuid4())
user_details['confirmed'] = 1
- user_details['registration_info'] = json.dumps(basic_info(), sort_keys=True)
+ user_details['registration_info'] = basic_info()
save_user(user_details, user_details['user_id'])
+ return errors
+
@app.route("/n/register", methods=('GET', 'POST'))
def register():
- errors = None
+ errors = []
params = request.form if request.form else request.args
params = params.to_dict(flat=True)
diff --git a/wqflask/wqflask/user_manager.py b/wqflask/wqflask/user_manager.py
index 1b27d7cb..a871e91a 100644
--- a/wqflask/wqflask/user_manager.py
+++ b/wqflask/wqflask/user_manager.py
@@ -351,11 +351,12 @@ class UserSession(object):
logger.debug("At end of delete_session")
@app.before_request
-def before_request():
+def get_cookie():
+ logger.info("@app.before_request get cookie")
g.user_session = UserSession()
g.cookie_session = AnonUser()
-@app.after_request
+#@app.after_request
def set_cookie(response):
if not request.cookies.get(g.cookie_session.cookie_name):
response.set_cookie(g.cookie_session.cookie_name, g.cookie_session.cookie)
@@ -537,7 +538,7 @@ def basic_info():
ip_address = request.remote_addr,
user_agent = request.headers.get('User-Agent'))
-@app.route("/manage/verify_email")
+#@app.route("/manage/verify_email")
def verify_email():
user = DecodeUser(VerificationEmail.key_prefix).user
user.confirmed = json.dumps(basic_info(), sort_keys=True)
@@ -551,7 +552,7 @@ def verify_email():
response.set_cookie(UserSession.cookie_name, session_id_signed)
return response
-@app.route("/n/password_reset", methods=['GET'])
+#@app.route("/n/password_reset", methods=['GET'])
def password_reset():
"""Entry point after user clicks link in E-mail"""
logger.debug("in password_reset request.url is:", request.url)
@@ -575,7 +576,7 @@ def password_reset():
else:
return redirect(url_for("login"))
-@app.route("/n/password_reset_step2", methods=('POST',))
+#@app.route("/n/password_reset_step2", methods=('POST',))
def password_reset_step2():
"""Handle confirmation E-mail for password reset"""
logger.debug("in password_reset request.url is:", request.url)
@@ -619,7 +620,7 @@ class DecodeUser(object):
logger.debug("data is:", data)
return model.User.query.get(data['id'])
-@app.route("/n/login", methods=('GET', 'POST'))
+#@app.route("/n/login", methods=('GET', 'POST'))
def login():
lu = LoginUser()
login_type = request.args.get("type")
@@ -629,7 +630,7 @@ def login():
else:
return lu.standard_login()
-@app.route("/n/login/github_oauth2", methods=('GET', 'POST'))
+#@app.route("/n/login/github_oauth2", methods=('GET', 'POST'))
def github_oauth2():
from utility.tools import GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET
code = request.args.get("code")
@@ -660,7 +661,7 @@ def github_oauth2():
url = "/n/login?type=github&uid="+user_details["user_id"]
return redirect(url)
-@app.route("/n/login/orcid_oauth2", methods=('GET', 'POST'))
+#@app.route("/n/login/orcid_oauth2", methods=('GET', 'POST'))
def orcid_oauth2():
from uuid import uuid4
from utility.tools import ORCID_CLIENT_ID, ORCID_CLIENT_SECRET, ORCID_TOKEN_URL, ORCID_AUTH_URL
@@ -840,7 +841,7 @@ class LoginUser(object):
db_session.add(login_rec)
db_session.commit()
-@app.route("/n/logout")
+#@app.route("/n/logout")
def logout():
logger.debug("Logging out...")
UserSession().delete_session()
@@ -851,7 +852,7 @@ def logout():
return response
-@app.route("/n/forgot_password", methods=['GET'])
+#@app.route("/n/forgot_password", methods=['GET'])
def forgot_password():
"""Entry point for forgotten password"""
print("ARGS: ", request.args)
@@ -859,7 +860,7 @@ def forgot_password():
print("ERRORS: ", errors)
return render_template("new_security/forgot_password.html", errors=errors)
-@app.route("/n/forgot_password_submit", methods=('POST',))
+#@app.route("/n/forgot_password_submit", methods=('POST',))
def forgot_password_submit():
"""When a forgotten password form is submitted we get here"""
params = request.form
@@ -944,7 +945,7 @@ def is_redis_available():
# return LoginUser().actual_login(user, assumed_by=assumed_by)
-@app.route("/n/register", methods=('GET', 'POST'))
+#@app.route("/n/register", methods=('GET', 'POST'))
def register():
params = None
errors = None
diff --git a/wqflask/wqflask/user_session.py b/wqflask/wqflask/user_session.py
index d75a03df..50419146 100644
--- a/wqflask/wqflask/user_session.py
+++ b/wqflask/wqflask/user_session.py
@@ -9,6 +9,7 @@ import simplejson as json
import redis # used for collections
Redis = redis.StrictRedis()
+
from flask import (Flask, g, render_template, url_for, request, make_response,
redirect, flash, abort)
@@ -24,6 +25,19 @@ logger = getLogger(__name__)
THREE_DAYS = 60 * 60 * 24 * 3
THIRTY_DAYS = 60 * 60 * 24 * 30
+@app.before_request
+def get_user_session():
+ logger.info("@app.before_request get_session")
+ g.user_session = UserSession()
+
+@app.after_request
+def set_user_session(response):
+ if hasattr(g, 'user_session'):
+ if not request.cookies.get(g.user_session.cookie_name):
+ response.set_cookie(g.user_session.cookie_name, g.user_session.cookie)
+ return response
+
+
def verify_cookie(cookie):
the_uuid, separator, the_signature = cookie.partition(':')
assert len(the_uuid) == 36, "Is session_id a uuid?"
@@ -69,19 +83,23 @@ class UserSession(object):
if not self.record or self.record == []:
if user_cookie:
self.logged_in = False
+ self.record = dict(login_time = time.time(),
+ user_type = "anon",
+ user_id = str(uuid.uuid4()))
+ Redis.hmset(self.redis_key, self.record)
+ Redis.expire(self.redis_key, THIRTY_DAYS)
+ response = make_response(redirect(url_for('login')))
+ response.set_cookie(self.user_cookie_name, '', expires=0)
########### Grrr...this won't work because of the way flask handles cookies
# Delete the cookie
- response = make_response(redirect(url_for('login')))
- #response.set_cookie(self.cookie_name, '', expires=0)
flash("Due to inactivity your session has expired. If you'd like please login again.")
- #return response
+ return response
#return
else:
self.record = dict(login_time = time.time(),
user_type = "anon",
user_id = str(uuid.uuid4()))
-
Redis.hmset(self.redis_key, self.record)
Redis.expire(self.redis_key, THIRTY_DAYS)
else:
@@ -101,10 +119,10 @@ class UserSession(object):
@property
def user_id(self):
"""Shortcut to the user_id"""
- if 'user_id' in self.record:
- return self.record['user_id']
- else:
- return ''
+ if 'user_id' not in self.record:
+ self.record['user_id'] = str(uuid.uuid4())
+
+ return self.record['user_id']
@property
def redis_user_id(self):
@@ -143,7 +161,7 @@ class UserSession(object):
"""List of user's collections"""
#ZS: Get user's collections if they exist
- collections = get_user_collections(self.redis_user_id)
+ collections = get_user_collections(self.user_id)
collections = [item for item in collections if item['name'] != "Your Default Collection"] + [item for item in collections if item['name'] == "Your Default Collection"] #ZS: Ensure Default Collection is last in list
return collections
@@ -259,7 +277,7 @@ class UserSession(object):
def update_collections(self, updated_collections):
collection_body = json.dumps(updated_collections)
- save_collections(self.redis_user_id, collection_body)
+ save_collections(self.user_id, collection_body)
def import_traits_to_user(self, anon_id):
collections = get_user_collections(anon_id)
@@ -275,12 +293,4 @@ class UserSession(object):
Redis.delete(self.redis_key)
self.logged_in = False
-@app.before_request
-def before_request():
- g.user_session = UserSession()
-@app.after_request
-def set_cookie(response):
- if not request.cookies.get(g.user_session.cookie_name):
- response.set_cookie(g.user_session.cookie_name, g.user_session.cookie)
- return response \ No newline at end of file
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index 923c89bd..938570f3 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -40,7 +40,7 @@ from wqflask import update_search_results
from wqflask import docs
from wqflask import news
from wqflask.submit_bnw import get_bnw_input
-from base.data_set import DataSet # Used by YAML in marker_regression
+from base.data_set import create_dataset, DataSet # Used by YAML in marker_regression
from wqflask.show_trait import show_trait
from wqflask.show_trait import export_trait_data
from wqflask.heatmap import heatmap
@@ -80,6 +80,7 @@ logger = utility.logger.getLogger(__name__ )
@app.before_request
def connect_db():
+ logger.info("@app.before_request connect_db")
db = getattr(g, '_database', None)
if db is None:
logger.debug("Get new database connector")
@@ -299,6 +300,18 @@ def links():
#return render_template("docs.html", **doc.__dict__)
return render_template("links.html")
+@app.route("/tutorials")
+def tutorials():
+ #doc = docs.Docs("links", request.args)
+ #return render_template("docs.html", **doc.__dict__)
+ return render_template("tutorials.html")
+
+@app.route("/credits")
+def credits():
+ #doc = docs.Docs("links", request.args)
+ #return render_template("docs.html", **doc.__dict__)
+ return render_template("credits.html")
+
@app.route("/environments")
def environments():
doc = docs.Docs("environments", request.args)
@@ -577,18 +590,32 @@ def loading_page():
if key in wanted or key.startswith(('value:')):
start_vars[key] = value
- if 'primary_samples' in start_vars:
+ if 'num_vals' in start_vars:
+ num_vals = int(start_vars['num_vals'])
+ else:
+ dataset = create_dataset(start_vars['dataset'])
+ genofile_samplelist = []
samples = start_vars['primary_samples'].split(",")
+ if 'genofile' in start_vars:
+ if start_vars['genofile'] != "":
+ genofile_string = start_vars['genofile']
+ dataset.group.genofile = genofile_string.split(":")[0]
+ genofile_samples = run_mapping.get_genofile_samplelist(dataset)
+ if len(genofile_samples) > 1:
+ samples = genofile_samples
+
for sample in samples:
value = start_vars.get('value:' + sample)
if value != "x":
num_vals += 1
start_vars['num_vals'] = num_vals
+ start_vars['wanted_inputs'] = initial_start_vars['wanted_inputs']
start_vars_container['start_vars'] = start_vars
else:
start_vars_container['start_vars'] = initial_start_vars
+
rendered_template = render_template("loading.html", **start_vars_container)
return rendered_template
@@ -652,7 +679,8 @@ def mapping_results_page():
'mapmodel_rqtl_geno',
'temp_trait',
'reaper_version',
- 'num_vals'
+ 'num_vals',
+ 'transform'
)
start_vars = {}
for key, value in initial_start_vars.iteritems():