diff options
-rw-r--r-- | README.md | 49 | ||||
-rw-r--r-- | scripts/rqtl_wrapper.R | 10 |
2 files changed, 48 insertions, 11 deletions
@@ -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) } } |