guix-bioinformatics
IMPORTANT: this repository lives at https://git.genenetwork.org/guix-bioinformatics/! Older packages have been moved to https://git.genenetwork.org/guix-bioinformatics-past/.
Bioinformatics packages for Guix that are used in https://genenetwork.org/ and some other places. See Guix documentation and Guix notes for installing and hacking Guix.
See awesome guix for a list of other channels.
To easily use the packages from this repo, simply add it to your `channels` list in ~/.config/guix/channels.scm as described here:
;; example channels.scm
(list (channel
(name 'guix-bioinformatics)
(url "https://git.genenetwork.org/guix-bioinformatics")
(branch "main")))
and run guix pull like normal to update your software. E.g.
guix pull --url=https://codeberg.org/guix/guix -p ~/opt/guix-b0fa1dc --commit=b0fa1dc --channels=channels.scm
The channel file actually accesses https://git.genenetwork.org/guix-bioinformatics/tree/.guix-channel which pulls other channels and fixates the hashes. The commit hash b0fa1dc can be found from the guix you want to run with guix -V, it speeds up installation and makes it reproducible. Note that the upstream channel may override that version.
The latest channel file that is used by our CI/CD you can find at https://ci.genenetwork.org/channels.scm.
Channels are 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, described here.
Development tips
Modify the load path
If you want to make changes to the packages in this repo you can set the GUIXPACKAGEPATH (or use the -L switch) 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
Override individual packages
The cheap and 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
Substitute server
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-rust-past-crates/modules/ -L ~/guix-bioinformatics/ -L ~/guix-past/modules/ --substitute-urls="https://cuirass.genenetwork.org https://ci.guix.gnu.org https://bordeaux.guix.gnu.org https://guix.genenetwork.org" hello
An important note on AI
The packages in guix-bioinformatics channel are generally written with the help of AI. Only the directory ./gnu/packages contains software that was crafted by hand without the help of AI. The packages in this directory align with Guix policy and may be upstreamed to guix trunk.
LICENSE
These package descriptions (so-called Guix expressions) are distributed by the same license as Guix, i.e. GPL3+
