aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMuriithi Frederick Muriuki2021-08-31 06:58:42 +0300
committerMuriithi Frederick Muriuki2021-08-31 06:58:42 +0300
commit750eff22f33fc8c78d529702369446e3acbdcae6 (patch)
tree1cd0cdaf732a4508feb2405bb0c8fa8d22b66e6c
parent6c872943597f3664cca77abbdf56f074fc5231e6 (diff)
parent2cf220a11936125f059dc9b6a494d0f70eac068d (diff)
downloadgenenetwork3-750eff22f33fc8c78d529702369446e3acbdcae6.tar.gz
Merge branch 'main' of github.com:genenetwork/genenetwork3 into heatmap_generation
-rw-r--r--README.md49
-rw-r--r--scripts/rqtl_wrapper.R10
2 files changed, 48 insertions, 11 deletions
diff --git a/README.md b/README.md
index 61ca539..84a7a54 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,17 @@ GeneNetwork3 REST API for data science and machine learning
## Installation
-#### Using guix
+#### GNU Guix packages
+
+Install GNU Guix - this can be done on every running Linux system.
+
+There are at least three ways to start GeneNetwork3 with GNU Guix:
+
+1. Create an environment with `guix environment`
+2. Create a container with `guix environment -C`
+3. Use a profile and shell settings with `source ~/opt/genenetwork3/etc/profile`
+
+#### Create an environment:
Simply load up the environment (for development purposes):
@@ -19,12 +29,39 @@ python3
import redis
```
-Better run a proper container
+#### Run a Guix container
```
env GUIX_PACKAGE_PATH=~/guix-bioinformatics/ ~/.config/guix/current/bin/guix environment -C --network --expose=$HOME/genotype_files/ --load=guix.scm
```
+
+#### Using a Guix profile (or rolling back)
+
+Create a new profile with
+
+```
+env GUIX_PACKAGE_PATH=~/guix-bioinformatics/ ~/.config/guix/current/bin/guix package -i genenetwork3 -p ~/opt/genenetwork3
+```
+
+and load the profile settings with
+
+```
+source ~/opt/genenetwork3/etc/profile
+start server...
+```
+
+Note that GN2 profiles include the GN3 profile (!). To roll genenetwork3 back you can use either in the same fashion (probably best to start a new shell first)
+
+```
+bash
+source ~/opt/genenetwork2-older-version/etc/profile
+set|grep store
+run tests, server etc...
+```
+
+#### Troubleshooting Guix packages
+
If you get a Guix error, such as `ice-9/boot-9.scm:1669:16: In procedure raise-exception:
error: python-sqlalchemy-stubs: unbound variable` it typically means an update to guix latest is required (i.e., guix pull):
@@ -33,11 +70,11 @@ guix pull
source ~/.config/guix/current/etc/profile
```
-and try again.
+and try again. Also make sure your ~/guix-bioinformatics is up to date.
See also instructions in [.guix.scm](.guix.scm).
-#### Running Tests
+## Running Tests
(assuming you are in a guix container; otherwise use venv!)
@@ -59,7 +96,7 @@ Running mypy(type-checker):
mypy .
```
-#### Running the flask app
+## Running the GN3 web service
To spin up the server on its own (for development):
@@ -88,7 +125,7 @@ And for the scalable production version run
gunicorn --bind 0.0.0.0:8080 --workers 8 --keep-alive 6000 --max-requests 10 --max-requests-jitter 5 --timeout 1200 wsgi:app
```
-##### Using python-pip
+## Using python-pip
IMPORTANT NOTE: we do not recommend using pip tools, use Guix instead
diff --git a/scripts/rqtl_wrapper.R b/scripts/rqtl_wrapper.R
index f7e0406..7518175 100644
--- a/scripts/rqtl_wrapper.R
+++ b/scripts/rqtl_wrapper.R
@@ -167,7 +167,7 @@ if (!is.null(opt$addcovar)) {
if (!is.null(opt$pstrata)) {
covar_names = trait_names[3:length(trait_names) - 1]
} else {
- covar_names = trait_names[3:length(trait_names)]
+ covar_names = trait_names[2:length(trait_names)]
}
covars <- pull.pheno(cross_object, covar_names)
}
@@ -195,18 +195,18 @@ if (opt$nperm > 0) {
if (!is.null(opt$addcovar) || !is.null(opt$control)){
if (!is.null(opt$pstrata)) {
- verbose_print('Running permutations with cofactors and strata\n')
+ verbose_print('Running ', opt$nperm, ' permutations with cofactors and strata\n')
perm_results = scanone(cross_object, pheno.col=1, addcovar=covars, n.perm=opt$nperm, perm.strata=perm_strata, model=opt$model, method=opt$method)
} else {
- verbose_print('Running permutations with cofactors\n')
+ verbose_print('Running ', opt$nperm, ' permutations with cofactors\n')
perm_results = scanone(cross_object, pheno.col=1, addcovar=covars, n.perm=opt$nperm, model=opt$model, method=opt$method)
}
} else {
if (!is.null(opt$pstrata)) {
- verbose_print('Running permutations with strata\n')
+ verbose_print('Running ', opt$nperm, ' permutations with strata\n')
perm_results = scanone(cross_object, pheno.col=1, n.perm=opt$nperm, perm.strata=perm_strata, model=opt$model, method=opt$method)
} else {
- verbose_print('Running permutations\n')
+ verbose_print('Running ', opt$nperm, ' permutations\n')
perm_results = scanone(cross_object, pheno.col=1, n.perm=opt$nperm, model=opt$model, method=opt$method)
}
}