Bioinformatics packages for GNU Guix that are used in https://genenetwork.org/ and some other places. See Guix notes for installing and hacking GNU Guix. Other channels of bioinformatics interest can be found at
- https://github.com/BIMSBbioinfo
- https://github.com/UMCUGenetics/guix-additions
- https://github.com/ekg/guix-genomics
Also see Guix notes for a list of channels.
To easily use the packages from this repo, simply add it to your `channels` list in ~/.config/guix/channels.scm as described here:
(list (channel
(name 'gn-bioinformatics)
(url "https://git.genenetwork.org/guix-bioinformatics/guix-bioinformatics.git")
(branch "master")))
and run guix pull like normal to update your software. This is the recommended way to use the software from this repository and the code snippets in this README assume you have done so. In order to maintain stability, the guix-bioinformatics channel depends on a specific commit of upstream Guix. So, it is recommended to isolate use of the guix-bioinformatics channel in a separate guix pull profile. That is described here.
If you want to make changes to the packages in this repo you can set the GUIX_PACKAGE_PATH to point to the root of this directory before running Guix. E.g.
git clone https://git.genenetwork.org/guix-bioinformatics/guix-bioinformatics.git
git clone https://gitlab.inria.fr/guix-hpc/guix-past.git
export GUIX_PACKAGE_PATH=$PWD/guix-bioinformatics/:$PWD/guix-past/modules
guix package -A cwl
or using a checked out Guix repo with
env GUIX_PACKAGE_PATH=$genenetwork/guix-bioinformatics/ ./pre-inst-env guix package -A cwl
Some (or most) of these package definitions should make it upstream into the GNU Guix repository when tested and stable.
Install slurm with
guix pull
guix package -i slurm-llnl
~/.guix-profile/sbin/slurmd -C -D
ClusterName=(null) NodeName=selinunte CPUs=4 Boards=1 SocketsPerBoard=1 CoresPerSocket=2 ThreadsPerCore=2 RealMemory=7890 TmpDisk=29909
Note that CWL moved into Guix master!
Install the common workflow language tool cwltool from this repo with
guix pull
export PATH=$HOME/.config/guix/current/bin/guix:$PATH
~/guix-bioinformatics$ env GUIX_PACKAGE_PATH=.:../guix-past/modules/ ~/.config/guix/current/bin/guix package -i cwl-runner -p ~/opt/CWL
The following package will be installed:
cwl-runner 1.0
The following derivations will be built:
/gnu/store/ld59374zr45rbqanh7ccfi2wa4d5x4yl-cwl-runner-1.0.drv
/gnu/store/86j15mxj5zp3k3sjimhqhb6zsj19azsf-python-schema-salad-7.0.20200811075006.drv
/gnu/store/0q2ls0is3253r4gx6hs7kmvlcz412lh1-schema-salad-7.0.20200811075006.tar.gz.drv
/gnu/store/myj1365ph687ynahjhg6zqslrmd6zpjq-cwltool-3.0.20201117141248.drv
source ~/opt/CWL/etc/profile
cwltool --version
/gnu/store/50mncjcgc8vmq5dfrh0pb82avbzy8c4r-cwltool-3.0.20201117141248/bin/.cwltool-real 3.0
To run CWL definitions you can install tools in a Guix environment (avoiding Docker). Say you need mafft in a workflow
~/guix-bioinformatics$ env GUIX_PACKAGE_PATH=.:../guix-past/modules/ ~/.config/guix/current/bin/guix environment \
guix --ad-hoc cwl-runner mafft
in the new shell you should be able to find both CWL and MAFFT:
ls $GUIX_ENVIRONMENT/bin/cwl*
/gnu/store/bhfc5rk29s38w9kgcl4zmcdlh369y9f9-profile/bin/cwl-runner
/gnu/store/bhfc5rk29s38w9kgcl4zmcdlh369y9f9-profile/bin/cwltool
ls $GUIX_ENVIRONMENT/bin/mafft
/gnu/store/bhfc5rk29s38w9kgcl4zmcdlh369y9f9-profile/bin/mafft
The paths can be loaded into the shell with
source $GUIX_ENVIRONMENT/etc/profile
For those who think they need modules: install the module environment with
guix pull
guix package -i environment-modules
modulecmd --version
VERSION=3.2.10
DATE=2012-12-21
Note that GNU Guix supercedes module functionality!
The cheerful way of overriding a version of a package:
(use-modules (guix) (gnu packages emacs))
(package
(inherit emacs)
(name "emacs-snapshot")
(source "/path/to/some-file-or-directory.tar.gz"))
and then run:
guix package --install-from-file=that-file.scm
We run our own substitution server. Add the key to your machine as root with
guix archive --authorize < tux02-guix-substitutions-public-key.txt guix build -L ~/guix-bioinformatics/ -L ~/guix-past/modules/ genenetwork2 --substitute-urls="https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://guix.genenetwork.org" --dry-run
These package descriptions (so-called Guix expressions) are distributed by the same license as GNU Guix, i.e. GPL3+