* 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 [[https://gitlab.com/pjotrp/guix-notes/blob/master/HACKING.org][Guix notes]] for installing and hacking Guix. See [[https://github.com/franzos/awesome-guix][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 [[https://guix.gnu.org/manual/en/html_node/Channels.html][here]]: #+BEGIN_SRC scheme ;; example channels.scm (list (channel (name 'guix-bioinformatics) (url "https://git.genenetwork.org/guix-bioinformatics") (branch "main"))) #+END_SRC and run /guix pull/ like normal to update your software. E.g. #+BEGIN_SRC sh guix pull --url=https://codeberg.org/guix/guix -p ~/opt/guix-b0fa1dc --commit=b0fa1dc --channels=channels.scm #+END_SRC 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 [[https://issues.genenetwork.org/topics/guix-profiles][here]]. * Development tips ** Modify the load path If you want to make changes to the packages in this repo you can set the GUIX_PACKAGE_PATH (or use the -L switch) to point to the root of this directory before running Guix. E.g. #+BEGIN_SRC bash 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 #+END_SRC ** Override individual packages The cheap and cheerful way of overriding a version of a package: #+BEGIN_SRC scheme (use-modules (guix) (gnu packages emacs)) (package (inherit emacs) (name "emacs-snapshot") (source "/path/to/some-file-or-directory.tar.gz")) #+END_SRC 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+