diff options
40 files changed, 1266 insertions, 220 deletions
diff --git a/.guix-channel b/.guix-channel index 3913b23..7a4ee1b 100644 --- a/.guix-channel +++ b/.guix-channel @@ -2,22 +2,31 @@ (version 0) (dependencies (channel + (name guix) + (url "https://codeberg.org/guix/guix") + (branch "master") + (introduction + (channel-introduction + (version 0) + (commit "9edb3f66fd807b096b48283debdcddccfea34bad") + (signer + "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))) + (channel (name guix-past) - (url "https://gitlab.inria.fr/guix-hpc/guix-past") + (url "https://codeberg.org/guix-science/guix-past") (introduction (channel-introduction (version 0) - (commit "0c119db2ea86a389769f4d2b9c6f5c41c027e336") + (commit "c3bc94ee752ec545e39c1b8a29f739405767b51c") (signer "3CE4 6455 8A84 FDC6 9DB4 0CFB 090B 1199 3D9A EBB5")))) (channel - (name guix) - (url "https://git.savannah.gnu.org/git/guix.git") - (branch "master") - (commit "61428ccf41f21f5ea1e4f1eec722ef9b1efc3a0e") + (name guix-rust-past-crates) + (url "https://codeberg.org/guix/guix-rust-past-crates.git") + (branch "trunk") (introduction (channel-introduction (version 0) - (commit "9edb3f66fd807b096b48283debdcddccfea34bad") + (commit "1db24ca92c28255b28076792b93d533eabb3dc6a") (signer - "BBB0 2DDF 2CEA F6A8 0D1D E643 A2A0 6DF2 A33A 54FA")))))) + "F4C2 D1DF 3FDE EA63 D1D3 0776 ACC6 6D09 CA52 8292")))))) diff --git a/README.org b/README.org index c5936fa..be8db7c 100644 --- a/README.org +++ b/README.org @@ -20,7 +20,7 @@ To easily use the packages from this repo, simply add it to your #+BEGIN_SRC scheme (list (channel (name 'gn-bioinformatics) - (url "https://git.genenetwork.org/guix-bioinformatics/guix-bioinformatics.git") + (url "https://git.genenetwork.org/guix-bioinformatics") (branch "master"))) #+END_SRC diff --git a/gn/deploy/machines/myserver.scm b/gn/deploy/machines/myserver.scm index 11ffcd1..9a8bedf 100644 --- a/gn/deploy/machines/myserver.scm +++ b/gn/deploy/machines/myserver.scm @@ -51,7 +51,7 @@ ;; Add services to the baseline: a DHCP client and ;; an SSH server with nginx - (services (append (list (service dhcp-client-service-type) + (services (append (list (service dhcp-service-type) (service openssh-service-type (openssh-configuration ; (authorized-keys diff --git a/gn/deploy/octopus.scm b/gn/deploy/octopus.scm index 32a0495..fc631b8 100644 --- a/gn/deploy/octopus.scm +++ b/gn/deploy/octopus.scm @@ -154,7 +154,7 @@ (run-mfsmetalogger-service? #t) )) - (service dhcp-client-service-type) + (service dhcp-service-type) (service openntpd-service-type)) %base-services)) diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm index 4a85cff..fb2ee18 100644 --- a/gn/packages/bioinformatics.scm +++ b/gn/packages/bioinformatics.scm @@ -41,9 +41,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages cpp) #:use-module (gnu packages cran) - #:use-module (gnu packages crates-compression) - #:use-module (gnu packages crates-io) - #:use-module (gnu packages crates-graphics) + #:use-module (past-crates packages crates-io) #:use-module (gnu packages curl) #:use-module (gnu packages databases) #:use-module (gnu packages datastructures) @@ -74,13 +72,16 @@ #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-build) + #:use-module (gnu packages python-compression) #:use-module (gnu packages python-science) #:use-module (gnu packages python-web) - #:use-module ((gnu packages python-xyz) #:hide (python2-six)) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages python-check) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) #:use-module (gnu packages rsync) #:use-module (gnu packages ruby) + #:use-module (gnu packages ruby-xyz) #:use-module (gnu packages rust) #:use-module (gnu packages serialization) #:use-module (gnu packages shells) @@ -2980,6 +2981,76 @@ to the user.") "http://www.kentinformatics.com/index.html" "Free for universities and non-profit institutions."))))) +(define htslib-1.14 + (package/inherit htslib + (version "1.14") + (source (origin + (method url-fetch) + (uri (string-append + "https://github.com/samtools/htslib/releases/download/" + version "/htslib-" version ".tar.bz2")) + (sha256 + (base32 + "0pwk8yhhvb85mi1d2qhwsb4samc3rmbcrq7b1s0jz0glaa7in8pd")))) + (arguments + (substitute-keyword-arguments (package-arguments htslib) + ((#:configure-flags cf #~'()) + #~(delete "--with-external-htscodecs" #$cf)))) + (propagated-inputs + (modify-inputs (package-propagated-inputs htslib) + (delete "htscodecs"))))) + +(define-public pbbam + (package + (name "pbbam") + (version "2.1.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/PacificBiosciences/pbbam") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1iyazi3l7dswpfxh39k5j7ydi0ywja0579xz3r6l9kkwz2n1z6dc")))) + (build-system meson-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-tests + (lambda* (#:key inputs #:allow-other-keys) + ;; Disable this test. I tried fixing it by including + ;; optional_io.hpp, but there's a type error. + (substitute* "tests/src/meson.build" + (("'test_ReadGroupInfo.cpp',") "")) + #; + (substitute* "include/pbbam/ReadGroupInfo.h" + (("#include <boost/optional.hpp>" m) + (string-append m "\n#include <boost/optional/optional_io.hpp>"))) + (substitute* '("tests/scripts/cram/_test.py" + "tests/scripts/cram/_main.py") + (("'/bin/sh'") + (string-append "'" (which "sh") "'")))))))) + ;; These libraries are listed as "Required" in the pkg-config file. + (propagated-inputs + (list htslib-1.14 pbcopper zlib)) + (inputs + (list boost samtools)) + (native-inputs + (list googletest + pkg-config + python-wrapper)) ;for tests + (home-page "https://github.com/PacificBiosciences/pbbam") + (synopsis "Work with PacBio BAM files") + (description + "The pbbam software package provides components to create, query, and +edit PacBio BAM files and associated indices. These components include a core +C++ library, bindings for additional languages, and command-line utilities. +This library is not intended to be used as a general-purpose BAM utility - all +input and output BAMs must adhere to the PacBio BAM format specification. +Non-PacBio BAMs will cause exceptions to be thrown.") + (license license:bsd-3))) + (define-public bam2fastx (package (name "bam2fastx") @@ -4502,6 +4573,8 @@ automatically vectorize for different architectures without adapting the code.") (base32 "1vhqy8licl2pkzar4aag0q5fhnb3fdch8acyjh9445ia42z01z9c")))) (build-system r-build-system) + (arguments + (list #:tests? #f)) ;; tests fail and seem to require data (propagated-inputs (list r-rcpp r-rcpparmadillo)) @@ -4600,6 +4673,32 @@ interface to the basic htslib. It can be easily included in a C++ program for scripting high-performance genomic analyses.") (license license:asl2.0))) +(define-public r-genio + (package + (name "r-genio") + (version "1.1.2") + (source + (origin + (method url-fetch) + (uri (cran-uri "genio" version)) + (sha256 + (base32 "0izx8yv8mvnfxdqnqpnp2ldw1hzs6ggxi7jgmjlgxkgmm4vngbgl")))) + (properties `((upstream-name . "genio"))) + (build-system r-build-system) + (propagated-inputs (list r-dplyr r-rcpp r-readr r-tibble)) + (native-inputs (list r-knitr r-testthat)) + (home-page "https://github.com/OchoaLab/genio") + (synopsis "Genetics Input/Output Functions") + (description "@code{r-genio} implements readers and writers for file formats +associated with genetics data. Reading and writing Plink BED/BIM/FAM +and GCTA binary GRM formats is fully supported, including a +lightning-fast BED reader and writer implementations. Other functions +are readr wrappers that are more constrained, user-friendly, and +efficient for these particular applications; handles Plink and +Eigenstrat tables (FAM, BIM, IND, and SNP files). There are also make +functions for FAM and BIM tables with default values to go with +simulated genotype data.") + (license license:gpl3))) (define-public r-stitch (package diff --git a/gn/packages/bnw.scm b/gn/packages/bnw.scm index 1e2c86e..a609905 100644 --- a/gn/packages/bnw.scm +++ b/gn/packages/bnw.scm @@ -8,6 +8,7 @@ #:use-module (gnu packages graphviz) #:use-module (gnu packages maths) #:use-module (gnu packages python) + #:use-module (gnu packages python-science) #:use-module (gnu packages statistics) #:use-module (gn packages javascript) #:use-module (gn packages web)) diff --git a/gn/packages/check.scm b/gn/packages/check.scm new file mode 100644 index 0000000..960e78e --- /dev/null +++ b/gn/packages/check.scm @@ -0,0 +1,61 @@ +(define-module (gn packages check) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system python) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages check) + #:use-module (gnu packages python-xyz) + #:use-module (past packages python27)) + +(define-public python-nosexcover + (package + (name "python-nosexcover") + (version "1.0.11") + (source (origin + (method url-fetch) + (uri (pypi-uri "nosexcover" version)) + (sha256 + (base32 + "10xqr12qv62k2flxwqhh8cr00cjhn7sfjrm6p35gd1x5bmjkr319")))) + (build-system python-build-system) + (propagated-inputs + (list python-coverage python-nose)) + (home-page "https://github.com/cmheisel/nose-xcover") + (synopsis "Extends nose.plugins.cover to add Cobertura-style XML reports") + (description "Nose-xcover is a companion to the built-in +@code{nose.plugins.cover}. This plugin will write out an XML coverage report +to a file named coverage.xml. + +It will honor all the options you pass to the Nose coverage plugin, +especially -cover-package.") + (license license:expat))) + +(define-public python-unittest2 + (package + (name "python-unittest2") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "unittest2" version)) + (patches + (search-patches "python-unittest2-python3-compat.patch" + "python-unittest2-remove-argparse.patch")) + (sha256 + (base32 + "0y855kmx7a8rnf81d3lh5lyxai1908xjp0laf4glwa4c8472m212")))) + (build-system python-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (replace 'check + (lambda _ + (zero? (system* "python" "-m" "unittest2" "discover" "--verbose"))))))) + (propagated-inputs + (list python-six python-traceback2)) + (home-page "https://pypi.org/project/unittest2/") + (synopsis "Python unit testing library") + (description + "Unittest2 is a replacement for the unittest module in the Python +standard library.") + (license license:psfl))) diff --git a/gn/packages/cran.scm b/gn/packages/cran.scm index 6a2a4ea..34e781c 100644 --- a/gn/packages/cran.scm +++ b/gn/packages/cran.scm @@ -4,7 +4,8 @@ #:use-module (guix download) #:use-module (guix build-system r) #:use-module (gnu packages) - #:use-module (gnu packages statistics)) + #:use-module (gnu packages statistics) + #:use-module (gnu packages cran)) (define-public r-tictoc (package diff --git a/gn/packages/crates-io.scm b/gn/packages/crates-io.scm index 92969fd..ea87358 100644 --- a/gn/packages/crates-io.scm +++ b/gn/packages/crates-io.scm @@ -5,11 +5,7 @@ #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix build-system cargo) - #:use-module (gnu packages crates-check) - #:use-module (gnu packages crates-compression) - #:use-module (gnu packages crates-graphics) - #:use-module (gnu packages crates-io) - #:use-module (gnu packages crates-windows) + #:use-module (past-crates packages crates-io) #:use-module (gnu packages maths) #:use-module (gnu packages python)) @@ -690,7 +686,7 @@ or any combination.") (license license:gpl3+))) (define-public gn-rust-correlation - (let ((commit "d7b1fd65814511890a4e606e6e610379b6d89393") + (let ((commit "48604d86471df965f189e46580578b24191add0e") (revision "0")) (package (name "gn-rust-correlation") @@ -703,7 +699,7 @@ or any combination.") (commit commit))) (file-name (git-file-name name version)) (sha256 - (base32 "1z5p9pjja6a697l558axnp1hr5376b6ng3yl3vxcp2h1skfrykvq")))) + (base32 "1x7zz0ldf9bmb4lmj3yrhbgcqanc64pl03dimrx5aw7cap006pjw")))) (build-system cargo-build-system) (native-inputs (list gsl)) (arguments diff --git a/gn/packages/databases.scm b/gn/packages/databases.scm index 93280c2..20ea612 100644 --- a/gn/packages/databases.scm +++ b/gn/packages/databases.scm @@ -136,3 +136,15 @@ (inputs `(("zlib" ,zlib) ,@(package-inputs base)))))) + + +(define-public python-mysqlclient-2.2.7 + (package + (inherit python-mysqlclient) + (version "2.2.7") + (source + (origin + (method url-fetch) + (uri (pypi-uri "mysqlclient" version)) + (sha256 + (base32 "0i9q2vj6rb4w2iggk0mcp9jla2rm91sx7jcrgv7grm8njjsj5bi4")))))) diff --git a/gn/packages/dlang.scm b/gn/packages/dlang.scm index 5cab985..a7d76a2 100644 --- a/gn/packages/dlang.scm +++ b/gn/packages/dlang.scm @@ -103,7 +103,7 @@ std.algorithm.endsWith(tzName, \"/leapseconds\"))"))))))) ("tzdata" ,tzdata) ("zlib" ,zlib))) (native-inputs - `(("llvm" ,llvm-6) + `(("llvm" ,llvm-12) ("python-wrapper" ,python-wrapper) ("unzip" ,unzip) ("phobos-src" diff --git a/gn/packages/edash.scm b/gn/packages/edash.scm index ac88e22..42da046 100644 --- a/gn/packages/edash.scm +++ b/gn/packages/edash.scm @@ -18,7 +18,8 @@ #:use-module (gnu packages check) #:use-module (gn packages web) #:use-module (gnu packages sqlite) - #:use-module (gn packages python)) + #:use-module (gn packages python) + #:use-module (past packages python27)) (define-public python-s3transfer-0.1.13 (package @@ -271,8 +272,7 @@ necessary.") ("python-pyyaml" ,python-pyyaml) ("python-pytest-cov" ,python-pytest-cov) ("python-jsonschema" ,python-jsonschema) - ("python-pytest-pep8" ,python-pytest-pep8) - ("python-pytest-cache" ,python-pytest-cache) + ("python-pytest-pycodestyle" ,python-pytest-pycodestyle) ;; ("python-pytest-flakes" ,python-pytest-flakes) )) (arguments `(#:tests? #f)) @@ -303,8 +303,7 @@ with the Specification.") ("python-pyflakes" ,python-pyflakes) ("python-flake8" ,python-flake8) ("python-pytest-cov" ,python-pytest-cov) - ("python-pytest-pep8" ,python-pytest-pep8) - ("python-pytest-cache" ,python-pytest-cache) + ("python-pytest-pycodestyle" ,python-pytest-pycodestyle) ;; ("python-pytest-flakes" ,python-pytest-flakes) )) (arguments `(#:tests? #f)) diff --git a/gn/packages/emacs-xyz.scm b/gn/packages/emacs-xyz.scm index 6d1e525..e524358 100644 --- a/gn/packages/emacs-xyz.scm +++ b/gn/packages/emacs-xyz.scm @@ -8,6 +8,7 @@ #:use-module (guix build emacs-utils) #:use-module (guix build-system gnu) #:use-module (gnu packages) + #:use-module (gnu packages emacs-build) #:use-module (gnu packages emacs-xyz) #:use-module (gnu packages python-xyz) #:use-module (gnu packages rust-apps) @@ -20,6 +21,7 @@ #:use-module (gnu packages gtk) #:use-module (gnu packages gstreamer) #:use-module (gnu packages gnome) + #:use-module (gnu packages emacs-build) #:use-module (ice-9 match)) (define-public emacs-trident-mode diff --git a/gn/packages/fpga.scm b/gn/packages/fpga.scm index 654b71d..b8c3537 100644 --- a/gn/packages/fpga.scm +++ b/gn/packages/fpga.scm @@ -1,5 +1,5 @@ (define-module (gn packages fpga) - #:use-module (gnu packages fpga) + #:use-module (gnu packages electronics) #:use-module (guix git-download) #:use-module (guix packages)) diff --git a/gn/packages/genecup.scm b/gn/packages/genecup.scm index 868bfff..88e0879 100644 --- a/gn/packages/genecup.scm +++ b/gn/packages/genecup.scm @@ -20,7 +20,8 @@ #:use-module (gn packages javascript) #:use-module (gn packages machine-learning) #:use-module (gn packages python) - #:use-module (gn packages web)) + #:use-module (gn packages web) + #:use-module (gn packages machine-learning)) (define use-corrected-inputs (package-input-rewriting/spec @@ -29,19 +30,6 @@ `(("tensorflow" . ,(const tensorflow-native)) ("python-h5py" . ,(const python-h5py-2))))) -(define-public python-keras-no-tests - (hidden-package - (package - (inherit python-keras) - (source - (origin - (inherit (package-source python-keras)))) - (arguments - (substitute-keyword-arguments (package-arguments python-keras) - ((#:phases phases) - `(modify-phases ,phases - (delete 'check)))))))) - (define-public hrdp-project (package @@ -249,7 +237,7 @@ if __name__ == '__main__': ("python-nltk" ,python-nltk) ("python-pandas" ,python-pandas) ("python-regex" ,python-regex) - ("tensorflow" ,tensorflow))) + ("tensorflow" ,tensorflow-lite))) (native-inputs `(("bootstrap" ,web-bootstrap) ("cytoscape" ,javascript-cytoscape-3.17) diff --git a/gn/packages/genenetwork.scm b/gn/packages/genenetwork.scm index 8d8c4df..f8db089 100644 --- a/gn/packages/genenetwork.scm +++ b/gn/packages/genenetwork.scm @@ -19,12 +19,12 @@ #:use-module (guix packages) #:use-module (gnu packages) #:use-module (gnu packages base) - #:use-module (gnu packages certs) + #:use-module ((gnu packages nss) #:select (nss-certs)) #:use-module (gnu packages bioconductor) #:use-module (gnu packages bioinformatics) #:use-module (gnu packages check) #:use-module (gnu packages cran) - #:use-module (gnu packages crates-io) + #:use-module (past-crates packages crates-io) #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages ghostscript) @@ -40,6 +40,7 @@ #:use-module (gnu packages python-science) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages python-science) #:use-module (gnu packages rdf) #:use-module (gnu packages rust) #:use-module (gnu packages scheme) @@ -58,12 +59,12 @@ #:use-module (gn packages python) #:use-module (gn packages statistics) #:use-module (gn packages web) - #:use-module (gn packages python-web) - #:use-module (srfi srfi-1)) + #:use-module (srfi srfi-1) + #:use-module (gn packages databases)) (define-public rust-qtlreaper - (let ((commit "2e7fed6d45b0b602d80fa2a55835f96ef1cba9e3") + (let ((commit "4dafa7289432d10685b6b235e3552ac3d681bb03") (revision "1")) (package (name "rust-qtlreaper") @@ -72,12 +73,12 @@ (origin (method git-fetch) (uri (git-reference - (url "https://github.com/chfi/rust-qtlreaper.git") + (url "https://github.com/genenetwork/rust-qtlreaper.git") (commit commit))) (file-name (git-file-name name version)) (sha256 (base32 - "0h70aalsplmc6xn1w7ha102n3bsi3gqkbnbrjvjm2za37c07gv0g")))) + "1p7dmxh43ly0k7q6va0lzisqnk1i7af3dy5aw1sr4y5s7z0h6i0y")))) (build-system cargo-build-system) (arguments `(#:cargo-inputs @@ -101,7 +102,7 @@ (("-0.3223330030526561") "-0.32233300305265566")) (assoc-ref %standard-phases 'check))) #t))))) - (home-page "https://github.com/chfi/rust-qtlreaper") + (home-page "https://github.com/genenetwork/rust-qtlreaper") (synopsis "Reimplementation of genenetwork/QTLReaper in Rust") (description "Reimplementation of genenetwork/QTLReaper in Rust") (license #f)))) @@ -116,7 +117,7 @@ ((#:tests? _ #f) #f))))) (define-public genenetwork3 - (let ((commit "82885f945499415b00b4ef2ee2a5464ea13fb8fb") + (let ((commit "e6c44577b2489f7b1523cb6a5fd332015bde25c5") (revision "5")) (package (name "genenetwork3") @@ -130,7 +131,7 @@ (file-name (git-file-name name version)) (sha256 (base32 - "06020m1pv2p2hd1wbsinbapy54670xfp85yspi4nm555g3hjiv5f")))) + "0i2n46lg73w06dfqcs4sxvwwfdxa0536gv95ism85h4j3dm9vzhz")))) (inputs (list python-click)) (native-inputs @@ -146,15 +147,15 @@ nss-certs gemma-wrapper gn-rust-correlation + gunicorn python-argon2-cffi python-authlib - python-bcrypt ;; Replace use of bcrypt with argon python-biopython python-email-validator python-flask python-flask-cors python-lmdb - python-mysqlclient + python-mysqlclient-2.2.7 python-numpy python-pandas python-pingouin-without-tests @@ -168,6 +169,7 @@ python-scikit-learn python-scipy python-sparqlwrapper + python-structlog python-wrapper python-xapian-bindings r @@ -178,6 +180,7 @@ r-rjson r-stringi r-wgcna + r-thor rust-qtlreaper)) (build-system python-build-system) (arguments @@ -224,7 +227,7 @@ storage.") (license license:bsd-3))) (define-public genenetwork2 - (let ((commit "b39bc1111414aca5025ccab9006e1a740d9a07a3") + (let ((commit "5e596f0814b4cad57a847fae03df2867b6327653") (revision "4")) (package (name "genenetwork2") @@ -237,7 +240,7 @@ storage.") (file-name (string-append name "-" version)) (sha256 (base32 - "06y9y4nvar26vmrf0qh9i4q6z241v5gdxw7yqhqq8zkzqcxcz9ab")))) + "1arnq4b7c6i6fnvfim3yyghrvr0ncjdp1a4ix1hgj9bz2r9vxnzi")))) (native-inputs (list graphviz)) (propagated-inputs @@ -326,7 +329,7 @@ storage.") python-lxml python-markdown python-mypy - python-mysqlclient + python-mysqlclient-2.2.7 python-numpy python-pandas python-pylint @@ -336,13 +339,15 @@ storage.") python-rdflib python-redis python-requests - python-rpy2 + ;; python-rpy2 ; restore once python-rpy2 dependencies get upstream + python-rpy2-patched ; remove this once python-rpy2 is fixed upstream python-scipy python-setuptools python-simplejson python-wrapper python-xlsxwriter python-pillow-9 + python-structlog r r-ctl r-qtl @@ -375,21 +380,6 @@ storage.") (("\\./gn2/wqflask/static/gif/error") (string-append (site-packages inputs outputs) "/gn2/wqflask/static/gif/error"))))) - (add-after 'unpack 'fix-paths-scripts - (lambda _ - (substitute* "bin/genenetwork2" - (("/usr/bin/env") (which "env")) - (("python ") (string-append (which "python3") " ")) - (("readlink") (which "readlink")) - (("dirname") (which "dirname")) - (("basename") (which "basename")) - (("cat") (which "cat")) - (("echo") (which "echo")) - (("redis-server") (which "redis-server")) - (("git") (which "git")) - (("grep") (which "grep")) - (("rm") (which "rm")) - (("which") (which "which"))))) (add-before 'install 'fix-paths (lambda* (#:key inputs #:allow-other-keys) (let* ((plink2cmd (string-append (assoc-ref inputs "plink-ng-gn") "/bin/plink2")) @@ -468,7 +458,7 @@ storage.") )))))) (define-public gn-uploader - (let ((commit "18a4c8c743fec10f1a1eacf1cb72443a98733e8c") + (let ((commit "c4494da2e81780bbeeac8936d1fe1aede01cf73c") (version "0.1.1")) (package (name "gn-uploader") @@ -483,21 +473,22 @@ storage.") (hash (content-hash (base32 - "0bddfx8m6hg2pfid9r9lh08g7h1vk50i7zxz6afmwbgy5zx3p0jb"))))) + "0fhhpvxaj0anh21pqabikv5wmd1cj3nx2j1bcd9ld8q3ykmm8a9s"))))) (build-system python-build-system) (arguments (list #:phases #~(modify-phases %standard-phases - (replace 'check - (lambda* (#:key tests? #:allow-other-keys) - (when tests? - (invoke "pytest" "-m" "unit_test"))))))) + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "pytest" "-m" "unit_test" "-n" "auto"))))))) (native-inputs (list python-mypy python-pylint python-pytest - python-hypothesis)) + python-hypothesis + python-pytest-xdist)) (propagated-inputs (list gn-libs gunicorn @@ -509,7 +500,7 @@ storage.") python-authlib python-pymonad python-jsonpickle - python-mysqlclient + python-mysqlclient-2.2.7 ;;python-flask-session temporary-python-flask-session web-bootstrap-5 @@ -518,7 +509,8 @@ storage.") javascript-datatables-select javascript-datatables-buttons-3 javascript-datatables-scroller-2 - node-resumablejs)) + node-resumablejs + rust-qtlreaper)) (synopsis "GeneNetwork Quality Control Application") (description "gn-uploader is a service allowing upload of new data into GeneNetwork, @@ -528,7 +520,7 @@ storage.") (license license:agpl3+)))) (define-public gn-auth - (let ((commit "5cad25d44bc789e3f7de417cbe3b40b5073d2294") + (let ((commit "9839e5bf35bd7be158b35fa98a734f7a3473688d") (revision "01")) (package (name "gn-auth") @@ -543,7 +535,7 @@ storage.") (hash (content-hash (base32 - "1qvpn2f55z51g9y5rpszipjz4pk5h6g8fjxshc36fxjn298p3g7v"))))) + "1lsi7z8hvpdqgcsx3zc5ip701xka9s75c7r4pjlby2ryjc0gw83d"))))) (build-system python-build-system) (arguments (list @@ -552,14 +544,15 @@ storage.") (replace 'check (lambda* (#:key tests? #:allow-other-keys) (when tests? - (invoke "pytest" "-k" "unit_test"))))))) + (invoke "pytest" "-m" "unit_test" "-n" "auto"))))))) (native-inputs (list python-hypothesis python-mypy python-mypy-extensions python-pylint python-pytest - python-pytest-mock)) + python-pytest-mock + python-pytest-xdist)) (propagated-inputs (list gn-libs gunicorn @@ -570,9 +563,10 @@ storage.") python-email-validator python-flask python-flask-cors - python-mysqlclient + python-mysqlclient-2.2.7 python-pymonad python-redis + python-structlog yoyo-migrations)) (home-page "https://github.com/genenetwork/gn-auth") (synopsis "Authentication and Authorisation server for GeneNetwork services") @@ -581,8 +575,8 @@ storage.") (define-public gn-libs - (let ((commit "44a251732b980b699e2ea00fb9405db39bb6e08f") - (revision "01")) + (let ((commit "9422e39e5b79a4aaca7dc368368d39141a0242b7") + (revision "02")) (package (name "gn-libs") (version (git-version "0.0.0" revision commit)) @@ -596,7 +590,7 @@ storage.") (hash (content-hash (base32 - "1ccl4dq386knn0lr5j1f12gqxnm1kiwhal662g0i3j4yj0s56pzf"))))) + "03i1kj7jbmlkjs61a9fb4j3s78p4d5lmd8lqnfsv42wxwwyvsm8p"))))) (build-system pyproject-build-system) (arguments (list @@ -616,7 +610,8 @@ storage.") (list python-authlib python-pymonad python-requests - python-mysqlclient)) + python-structlog + python-mysqlclient-2.2.7)) (home-page "https://github.com/genenetwork/gn-libs") (synopsis "Tools/utilities for GeneNetwork projects.") (description "A collection of tools and utilities used across multiple diff --git a/gn/packages/guile.scm b/gn/packages/guile.scm index 3587b00..8341e74 100644 --- a/gn/packages/guile.scm +++ b/gn/packages/guile.scm @@ -17,9 +17,10 @@ #:use-module (gnu packages package-management) #:use-module ((gnu packages bash) #:select (bash-minimal)) #:use-module ((gnu packages bioinformatics) #:select (gemma)) - #:use-module ((gnu packages certs) #:select (nss-certs)) + #:use-module ((gnu packages nss) #:select (nss-certs)) + #:use-module ((gnu packages gnupg) #:select (guile-gcrypt)) #:use-module ((gnu packages guile) #:select (guile-json-4 guile-3.0 guile-2.2 guile-readline)) - #:use-module ((gnu packages guile-xyz) #:select (guile-dbi guile-dbd-mysql guile-fibers guile-redis guile-hashing guile-commonmark guile-lmdb guile-lib)) + #:use-module ((gnu packages guile-xyz) #:select (guile-dbi guile-dbd-mysql guile-fibers guile-redis guile-hashing guile-commonmark guile-lmdb guile-lib guile-uuid)) #:use-module ((gnu packages parallel) #:select (parallel)) #:use-module ((gnu packages perl) #:select (perl)) #:use-module ((gnu packages tls) #:select (guile-gnutls openssl))) @@ -119,7 +120,7 @@ for MySQL.") (license license:gpl2+))) (define-public gn-guile - (let ((commit "169d26710c978484f8e9464a95be6eaa47fa704e") + (let ((commit "454244b774ece37f04f146c74353ea4ec35d43e1") (revision "0")) (package (name "gn-guile") @@ -132,7 +133,7 @@ for MySQL.") (file-name (string-append name "-" version)) (sha256 (base32 - "10f6icsg9ifyvmg544xqb1ggzzvd4hdbbni7vhlz9xj5vyf9bih2")))) + "1n1zjpwfksq8bf42d7xr7lnblgsbqc0yszkbid253s943fyxzhfn")))) (build-system guile-build-system) (native-inputs (list guile-3.0)) (propagated-inputs @@ -197,25 +198,40 @@ for MySQL.") guile-redis guile-hashing guile-json-4)) + (scm-dev-path + (cons* + "./" + (map (lambda (x) (string-append x scm-dir)) + guile-inputs))) (scm-path (map (lambda (x) (string-append x scm-dir)) (cons* out guile-inputs))) (go-dir (string-append "/lib/guile/" effective "/site-ccache/")) + (go-dev-path + (map (lambda (x) (string-append x go-dir)) + guile-inputs)) (go-path (map (lambda (x) (string-append x go-dir)) (cons* out guile-inputs)))) (mkdir-p "bin") (copy-file "gn-guile.sh" "bin/gn-guile") + (copy-file "gn-guile.sh" "bin/gn-guile-dev") (copy-file "scripts/lmdb-publishdata-export.scm" "bin/lmdb-publishdata-export") (substitute* "bin/gn-guile" (("@SHELL@") bash) (("guile") guile) (("web/webserver.scm") webserver)) + (substitute* "bin/gn-guile-dev" + (("@SHELL@") bash) + (("guile") guile) + (("web/webserver.scm") "./web/webserver.scm")) (chmod "bin/gn-guile" #o755) + (chmod "bin/gn-guile-dev" #o755) (chmod "bin/lmdb-publishdata-export" #o755) (install-file "bin/gn-guile" bin) + (install-file "bin/gn-guile-dev" bin) (install-file "bin/lmdb-publishdata-export" bin) (wrap-script (string-append out "/bin/gn-guile") @@ -223,6 +239,12 @@ for MySQL.") `("GUILE_AUTO_COMPILE" ":" = ("0")) `("GUILE_LOAD_PATH" ":" prefix ,scm-path) `("GUILE_LOAD_COMPILED_PATH" ":" prefix ,go-path)) + (wrap-script + (string-append out "/bin/gn-guile-dev") + `("PATH" ":" prefix ,path) + `("GUILE_AUTO_COMPILE" ":" = ("0")) + `("GUILE_LOAD_PATH" ":" prefix ,scm-dev-path) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix ,go-dev-path)) (wrap-program (string-append out "/bin/lmdb-publishdata-export") `("PATH" ":" prefix ,path) @@ -233,3 +255,99 @@ for MySQL.") (synopsis "Next generation GN code in guile") (description "Use of guile.") (license license:gpl3)))) + +(define-public guile-sheepdog + (let ((commit "1426617d58f305a4126bb867202843e8cf7dd4b2") + (revision "0")) + (package + (name "guile-sheepdog") + (version "0.0.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/BonfaceKilz/guile-sheepdog.git") + (commit commit))) + (file-name (string-append name "-" version)) + (sha256 + (base32 + "1z0xzg11p75s2hk312akxlg2h5278w2abma27dhzjf981g3lcqvr")))) + (build-system guile-build-system) + (native-inputs (list guile-3.0)) + (propagated-inputs + (list bash-minimal guile-3.0 guile-uuid guile-hashing guile-fibers guile-json-4 guile-gcrypt guile-gnutls guile-redis)) + (arguments + (list + #:not-compiled-file-regexp "(guix|guix/.*)[.]scm$" + #:modules '((srfi srfi-1) + (ice-9 popen) + (guix build guile-build-system) + (guix build utils)) + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'remove-conf + (lambda* _ + (delete-file "conf.example.scm"))) + (add-after 'build 'install-script + (lambda* _ + (let* ((bash #$(this-package-input "bash-minimal")) + (bash (string-append bash "/bin/bash")) + (guile #$(this-package-input "guile")) + (guile (string-append guile "/bin/guile")) + (build-guile #$(this-package-native-input "guile")) + (build-guile (string-append build-guile "/bin/guile")) + (guile-uuid #$(this-package-input "guile-uuid")) + (guile-gnutls #$(this-package-input "guile-gnutls")) + (guile-hashing #$(this-package-input "guile-hashing")) + (guile-fibers #$(this-package-input "guile-fibers")) + (guile-redis #$(this-package-input "guile-redis")) + (guile-json-4 #$(this-package-input "guile-json")) + (guile-gcrypt #$(this-package-input "guile-gcrypt")) + (guile-lib #$(this-package-input "guile-lib")) + (out #$output) + (bin (string-append out "/bin")) + (effective (read + (open-pipe* OPEN_READ + build-guile "-c" + "(write (effective-version))"))) + (path (list (string-append guile "/bin"))) + (guile-sheepdog (string-append + out + "/share/guile/site/" + effective + "/gn-monitor.scm")) + (scm-dir (string-append "/share/guile/site/" effective)) + (guile-inputs (list guile-fibers + guile-hashing + guile-uuid + guile-gnutls + guile-gcrypt + guile-redis + guile-json-4)) + (scm-path + (cons* + scm-dir + (map (lambda (x) (string-append x scm-dir)) + (cons* out guile-inputs)))) + (go-dir (string-append "/lib/guile/" effective + "/site-ccache/")) + (go-path + (map (lambda (x) (string-append x go-dir)) + (cons* out guile-inputs)))) + (mkdir-p "bin") + (copy-file "sheepdog.sh" "bin/guile-sheepdog") + (substitute* "bin/guile-sheepdog" + (("@SHELL@") bash) + (("guile") guile) + (("gn-monitor.scm") guile-sheepdog)) + (chmod "bin/guile-sheepdog" #o755) + (install-file "bin/guile-sheepdog" bin) + (wrap-script + (string-append out "/bin/guile-sheepdog") + `("PATH" ":" prefix ,path) + `("GUILE_AUTO_COMPILE" ":" = ("0")) + `("GUILE_LOAD_PATH" ":" prefix ,scm-path) + `("GUILE_LOAD_COMPILED_PATH" ":" prefix ,go-path)))))))) + (home-page "https://github.com/BonfaceKilz/guile-sheepdog.git") + (synopsis "Genenetwork monitoring tool") + (description "Genenetwork monitoring tool") + (license license:gpl3)))) diff --git a/gn/packages/java.scm b/gn/packages/java.scm index f39c5c7..2a3b07b 100644 --- a/gn/packages/java.scm +++ b/gn/packages/java.scm @@ -30,7 +30,7 @@ #:use-module (gnu packages autotools) #:use-module (gnu packages bash) #:use-module (gnu packages bioinformatics) - #:use-module (gnu packages certs) + #:use-module ((gnu packages nss) #:select (nss-certs)) #:use-module (gnu packages compression) #:use-module (gnu packages cups) #:use-module (gnu packages gcc) diff --git a/gn/packages/javascript.scm b/gn/packages/javascript.scm index e4bf803..059999b 100644 --- a/gn/packages/javascript.scm +++ b/gn/packages/javascript.scm @@ -595,24 +595,29 @@ tables with minimal effort. This package comes with Bootstrap5 integration (source (origin (method url-fetch) - (uri (string-append "https://cdn.jsdelivr.net/npm/xterm@" version - "/lib/xterm.min.js")) - (file-name (string-append "xterm.min" version ".js")) + (uri + (string-append "https://registry.npmjs.org/xterm/-/xterm-" + version + ".tgz")) (sha256 - (base32 "0pb5f3rjbpg7zz1zkd72vkwsma3pnj07mq46jj95yghy48dx67gw")))) - (build-system trivial-build-system) + (base32 "11db21afvny4m8ar40jpbc5wb5kgx4wqcbha0w2ixbr8p1l82lhz")))) + (build-system minify-build-system) (arguments - `(#:modules ((guix build utils)) - #:builder (begin - (use-modules (guix build utils)) - (let* ((out (assoc-ref %outputs "out")) - (targetdir (string-append - out - "/share/genenetwork2/javascript/xterm")) - (source (assoc-ref %build-inputs "source"))) - (mkdir-p targetdir) - (copy-file source - (string-append targetdir "/xterm.min.js")))))) + `(#:phases + (modify-phases %standard-phases + (delete 'build) ; xterm.js is already minified + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + ;; copy the minified files + (let* ((source (getcwd)) + (out (assoc-ref outputs "out")) + (js (string-append out "/share/genenetwork2/javascript/xterm"))) + (mkdir-p js) + (for-each + (lambda (filename) + (install-file filename js)) + (append + (find-files (string-append source "/lib")))))))))) (native-inputs `(("source" ,source))) (home-page "https://xtermjs.org/") (synopsis @@ -629,23 +634,37 @@ tables with minimal effort. This package comes with Bootstrap5 integration (source (origin (method url-fetch) - (uri (string-append "https://cdn.jsdelivr.net/npm/xterm@" version - "/css/xterm.min.css")) - (file-name (string-append "xterm.min" version ".css")) + (uri + (string-append "https://registry.npmjs.org/xterm/-/xterm-" + version + ".tgz")) (sha256 - (base32 "0qhfll6g9vfamicw6kccmdgzrz6m7jz97whydwbzj10qsyv8npr7")))) + (base32 "11db21afvny4m8ar40jpbc5wb5kgx4wqcbha0w2ixbr8p1l82lhz")))) + (build-system minify-build-system) (arguments - `(#:modules ((guix build utils)) - #:builder (begin - (use-modules (guix build utils)) - (let* ((out (assoc-ref %outputs "out")) - (targetdir (string-append - out - "/share/genenetwork2/javascript/xterm")) - (source (assoc-ref %build-inputs "source"))) - (mkdir-p targetdir) - (copy-file source - (string-append targetdir "/xterm.min.css")))))) + `(#:javascript-files (list "css/xterm.css") + #:phases + (modify-phases %standard-phases + (add-before 'install 'rename-minified-css + (lambda* _ + (for-each + (lambda (file) + (let* ((path-length (string-length file)) + (ext-length (string-length ".css.min.js"))) + (copy-recursively file + (string-replace file ".min.css" (- path-length ext-length))))) + (find-files (string-append (getcwd) "/guix/build") + "\\.css\\.min\\.js$")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (js (string-append out "/share/genenetwork2/javascript/xterm"))) + (mkdir-p js) + (for-each + (lambda (file) + (install-file file js)) + (find-files (string-append (getcwd) "/guix/build") + "\\.min\\.css$")))))))) (native-inputs `(("source" ,source))) (synopsis "Style sheets for xtermjs") (description "Style sheets for xtermjs") @@ -2224,35 +2243,53 @@ vector graphics.") "A low-level markdown compiler for parsing markdown without caching or blocking for long periods of time.") (license license:expat))) + (define-public javascript-marked-highlight (package - (name "javascript-marked-highlight") - (version "2.0.6") - (source - (origin - (method url-fetch) - (uri (string-append "https://cdn.jsdelivr.net/npm/marked-highlight@" version "/lib/index.umd.min.js")) - (sha256 - (base32 - "087qcy77fm3r7dl6w0mxsqygmdpimrmksw78r4wkkkjdx9x9dshf")))) - (build-system trivial-build-system) - (arguments - `(#:modules ((guix build utils)) - #:builder - (begin - (use-modules (guix build utils)) - (let* ((out (assoc-ref %outputs "out")) - (targetdir - (string-append out "/share/genenetwork2/javascript/marked")) - (source (assoc-ref %build-inputs "source"))) - (mkdir-p targetdir) - (copy-file source (string-append targetdir "/marked-highlight.js")))))) - (native-inputs `(("source" ,source))) - (home-page "https://github.com/markedjs/marked-highlight") - (synopsis "Highlight code blocks.") - (description - "Add code highlighting to marked.") - (license license:expat))) + (name "javascript-marked-highlight") + (version "2.0.6") + (source + (origin + (method url-fetch) + (uri (string-append + "https://github.com/markedjs/marked-highlight/archive/refs/tags/v" + version ".tar.gz")) + (sha256 + (base32 "14pvaknic0pwh1ll7i0z66mi2gviww35palmk03xidyywlbvwklr")))) + (build-system minify-build-system) + (arguments + `(#:javascript-files (list "src/index.js") + #:phases (modify-phases %standard-phases + (add-before 'install 'rename-minified-js + (lambda* _ + (for-each (lambda (file) + ;; rename to "marked-highlight.js" + (copy-recursively file + (string-append (dirname + file) + "/marked-highlight.js"))) + (find-files (string-append (getcwd) + "/guix/build") + "\\.min\\.js$")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (use-modules (guix build utils)) + (let* ((out (assoc-ref outputs "out")) + (targetdir (string-append out + "/share/genenetwork2/javascript/marked"))) + (mkdir-p targetdir) + (for-each (lambda (file) + (install-file file targetdir)) + (find-files (string-append (getcwd) + "/guix/build") + "marked-highlight\\.js$")))))))) + (home-page "https://github.com/markedjs/marked-highlight") + (synopsis "Code highlighting extension for Marked") + (description + "This package provides a plugin for the Marked Markdown parser that adds +syntax highlighting support for fenced code blocks.") + (license license:expat))) + (define-public javascript-ace (package diff --git a/gn/packages/julia.scm b/gn/packages/julia.scm index a00244f..0557dfc 100644 --- a/gn/packages/julia.scm +++ b/gn/packages/julia.scm @@ -2784,3 +2784,50 @@ that still support Julia versions older than 1.6.") (synopsis "binary provider for Julia") (description "Packages are installed to a @code{Prefix}; a folder that acts similar to the @code{/usr/local} directory on Unix-like systems, containing a @code{bin} folder for binaries, a @code{lib} folder for libraries, etc... @code{Prefix} objects can have tarballs @code{install()}'ed within them, @code{uninstall()}'ed from them, etc...") (license license:expat))) + +(define-public julia-progressmeter + (package + (name "julia-progressmeter") + (version "1.11.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/timholy/ProgressMeter.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mgsq5ynqd35yldmafmbcmch0xdjqyga4wb1lllqfffsipj8ki4k")))) + (build-system julia-build-system) + (home-page "https://github.com/timholy/ProgressMeter.jl") + (synopsis "Progress meter for long-running computations") + (description "@code{julia-progressmeter} provides a progress meter +for long-running computations.") + (license license:expat))) + +(define-public julia-jwas + (package + (name "julia-jwas") + (version "1.2.1") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/reworkhow/JWAS.jl") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0mbs8h98bb503x0k3xf4n11h8lwnnyz9y757b8dgx888jf1firv1")))) + (build-system julia-build-system) + (propagated-inputs + (list julia-csv + julia-dataframes + julia-distributions + julia-forwarddiff + julia-progressmeter)) + (home-page "https://github.com/reworkhow/JWAS.jl") + (synopsis "Julia whole-genome analysis library") + (description "@code{julia-jwas} is an open-source software tool + written in Julia for Bayesian multiple regression methods applied to +genomic prediction and genome-wide association studies.") + (license license:gpl2))) diff --git a/gn/packages/jupyterhub.scm b/gn/packages/jupyterhub.scm index 322999b..2779d3e 100644 --- a/gn/packages/jupyterhub.scm +++ b/gn/packages/jupyterhub.scm @@ -7,6 +7,7 @@ #:use-module (gnu packages check) #:use-module (gnu packages databases) #:use-module (gnu packages docker) + #:use-module (gnu packages jupyter) #:use-module (gnu packages libffi) #:use-module (gnu packages linux) #:use-module (gnu packages monitoring) @@ -16,6 +17,7 @@ #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) + #:use-module (gnu packages jupyter) #:use-module (gnu packages rpc) #:use-module (gnu packages serialization) #:use-module (gnu packages time) diff --git a/gn/packages/machine-learning.scm b/gn/packages/machine-learning.scm index 8f9f1f0..541b3b6 100644 --- a/gn/packages/machine-learning.scm +++ b/gn/packages/machine-learning.scm @@ -2,14 +2,24 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) - #:use-module (gnu packages machine-learning)) + #:use-module (gnu packages machine-learning) + #:use-module (guix download) + #:use-module (guix build-system python) + #:use-module (gnu packages python-xyz) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages python-science) + #:use-module (gnu packages check) + #:use-module (gnu packages python-check) + #:use-module (gnu packages sphinx) + #:use-module (gnu packages python-web) + #:use-module (past packages python27)) (define-public tensorflow-native (package - (inherit tensorflow) + (inherit tensorflow-lite) (name "tensorflow-native") (arguments - (substitute-keyword-arguments (package-arguments tensorflow) + (substitute-keyword-arguments (package-arguments tensorflow-lite) ((#:substitutable? _ #f) #f) ((#:configure-flags flags) `(cons @@ -19,3 +29,163 @@ (define-public tensowflow-native-instead-of-tensorflow (package-input-rewriting/spec `(("tensorflow" . ,(const tensorflow-native))))) + + +(define-public python-keras-applications + (package + (name "python-keras-applications") + (version "1.0.8") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Keras_Applications" version)) + (sha256 + (base32 + "1rcz31ca4axa6kzhjx4lwqxbg4wvlljkj8qj9a7p9sfd5fhzjyam")))) + (build-system python-build-system) + ;; The tests require Keras, but this package is needed to build Keras. + (arguments '(#:tests? #f)) + (propagated-inputs + (list python-h5py python-numpy)) + (native-inputs + (list python-pytest python-pytest-cov + python-pytest-xdist)) + (home-page "https://github.com/keras-team/keras-applications") + (synopsis "Reference implementations of popular deep learning models") + (description + "This package provides reference implementations of popular deep learning +models for use with the Keras deep learning framework.") + (license license:expat))) + + +(define-public python-keras-preprocessing + (package + (name "python-keras-preprocessing") + (version "1.1.0") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Keras_Preprocessing" version)) + (sha256 + (base32 + "1r98nm4k1svsqjyaqkfk23i31bl1kcfcyp7094yyj3c43phfp3as")))) + (build-system python-build-system) + (propagated-inputs + (list python-numpy python-six)) + (native-inputs + (list python-pandas + python-pillow + python-pytest + python-pytest-cov + python-pytest-xdist + tensorflow-lite)) + (home-page "https://github.com/keras-team/keras-preprocessing/") + (synopsis "Data preprocessing and augmentation for deep learning models") + (description + "Keras Preprocessing is the data preprocessing and data augmentation +module of the Keras deep learning library. It provides utilities for working +with image data, text data, and sequence data.") + (license license:expat))) + + +(define-public python-keras-no-tests + (package + (name "python-keras-no-tests") + (version "2.3.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "Keras" version)) + (sha256 + (base32 + "1k68xd8n2y9ldijggjc8nn4d6d1axw0p98gfb0fmm8h641vl679j")) + (modules '((guix build utils))) + (snippet + '(substitute* '("keras/callbacks/callbacks.py" + "keras/engine/training_utils.py" + "keras/engine/training.py" + "keras/engine/training_generator.py" + "keras/utils/generic_utils.py") + (("from collections import Iterable") + "from collections.abc import Iterable") + (("collections.Container") + "collections.abc.Container") + (("collections.Mapping") + "collections.abc.Mapping") + (("collections.Sequence") + "collections.abc.Sequence"))))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'tf-compatibility + (lambda _ + (substitute* "keras/backend/tensorflow_backend.py" + (("^get_graph = .*") + "get_graph = tf.get_default_graph") + (("tf.compat.v1.nn.fused_batch_norm") + "tf.nn.fused_batch_norm") + ;; categorical_crossentropy does not support axis + (("from_logits=from_logits, axis=axis") + "from_logits=from_logits") + ;; dropout accepts a level number, not a named rate argument. + (("dropout\\(x, rate=level,") + "dropout(x, level,") + (("return x.shape.rank") + "return len(x.shape)")))) + (add-after 'unpack 'hdf5-compatibility + (lambda _ + ;; The truth value of an array with more than one element is ambiguous. + (substitute* "tests/keras/utils/io_utils_test.py" + ((" *assert .* == \\[b'(asd|efg).*") "")) + (substitute* "tests/test_model_saving.py" + (("h5py.File\\('does not matter',") + "h5py.File('does not matter', 'w',")) + (substitute* "keras/utils/io_utils.py" + (("h5py.File\\('in-memory-h5py', driver='core', backing_store=False\\)") + "h5py.File('in-memory-h5py', 'w', driver='core', backing_store=False)") + (("h5file.fid.get_file_image") + "h5file.id.get_file_image")) + (substitute* "keras/engine/saving.py" + (("\\.decode\\('utf-?8'\\)") "")))) + (add-after 'unpack 'delete-unavailable-backends + (lambda _ + (delete-file "keras/backend/theano_backend.py") + (delete-file "keras/backend/cntk_backend.py"))) + (delete 'check)))) + (propagated-inputs + (list python-h5py + python-keras-applications + python-keras-preprocessing + python-numpy + python-pydot + python-pyyaml + python-scipy + python-six + tensorflow-lite + graphviz)) + (native-inputs + (list python-flaky + python-markdown + python-pandas + python-pytest + python-pytest-cov + python-pytest-timeout + python-pytest-xdist + python-pyux + python-sphinx + python-requests)) + (home-page "https://keras.io/") + (synopsis "High-level deep learning framework") + (description "Keras is a high-level neural networks API, written in Python +and capable of running on top of TensorFlow. It was developed with a focus on +enabling fast experimentation. Use Keras if you need a deep learning library +that: +@itemize +@item Allows for easy and fast prototyping (through user friendliness, + modularity, and extensibility). +@item Supports both convolutional networks and recurrent networks, as well as + combinations of the two. +@item Runs seamlessly on CPU and GPU. +@end itemize\n") + (license license:expat))) diff --git a/gn/packages/pangenome.scm b/gn/packages/pangenome.scm index c66b594..5c5ef00 100644 --- a/gn/packages/pangenome.scm +++ b/gn/packages/pangenome.scm @@ -5,7 +5,7 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix build-system cargo) - #:use-module (gnu packages crates-io) + #:use-module (past-crates packages crates-io) #:use-module (gn packages crates-io)) diff --git a/gn/packages/patches/python-unittest2-python3-compat.patch b/gn/packages/patches/python-unittest2-python3-compat.patch new file mode 100644 index 0000000..68fbcca --- /dev/null +++ b/gn/packages/patches/python-unittest2-python3-compat.patch @@ -0,0 +1,46 @@ +Skip tests that fail with newer versions of Python. + +Patch copied from Gentoo: + +https://gitweb.gentoo.org/repo/gentoo.git/tree/dev-python/unittest2/files/unittest2-1.1.0-python3.5-test.patch + +diff --git a/unittest2/test/test_loader.py b/unittest2/test/test_loader.py +index 683f662..347eea5 100644 +--- a/unittest2/test/test_loader.py ++++ b/unittest2/test/test_loader.py +@@ -509,6 +509,7 @@ class Test_TestLoader(unittest2.TestCase): + # + # What happens when an impossible name is given, relative to the provided + # `module`? ++ @unittest.skipIf(sys.version_info[:2] >= (3, 5), "python 3.5 has problems here") + def test_loadTestsFromName__relative_malformed_name(self): + loader = unittest.TestLoader() + +@@ -811,6 +812,7 @@ class Test_TestLoader(unittest2.TestCase): + # TestCase or TestSuite instance." + # + # What happens when presented with an impossible module name? ++ @unittest.skipIf(sys.version_info[:2] >= (3, 5), "python 3.5 has problems here") + def test_loadTestsFromNames__malformed_name(self): + loader = unittest2.TestLoader() + +@@ -918,6 +920,7 @@ class Test_TestLoader(unittest2.TestCase): + # "The method optionally resolves name relative to the given module" + # + # What happens when presented with an impossible attribute name? ++ @unittest.skipIf(sys.version_info[:2] >= (3, 5), "python 3.5 has problems here") + def test_loadTestsFromNames__relative_malformed_name(self): + loader = unittest.TestLoader() + +diff --git a/unittest2/compatibility.py b/unittest2/compatibility.py +index 9e5f1a5..2d20c19 100644 +--- a/unittest2/compatibility.py ++++ b/unittest2/compatibility.py +@@ -140,6 +140,6 @@ except ImportError: + ### ChainMap (helper for configparser and string.Template) + ######################################################################## + +-class ChainMap(collections.MutableMapping): ++class ChainMap(collections.abc.MutableMapping): + ''' A ChainMap groups multiple dicts (or other mappings) together + to create a single, updateable view. diff --git a/gn/packages/patches/python-unittest2-remove-argparse.patch b/gn/packages/patches/python-unittest2-remove-argparse.patch new file mode 100644 index 0000000..c967387 --- /dev/null +++ b/gn/packages/patches/python-unittest2-remove-argparse.patch @@ -0,0 +1,11 @@ +--- a/setup.py 2017-09-12 01:22:06.273997788 +0200 ++++ b/setup.py 2017-09-12 01:22:14.297918757 +0200 +@@ -57,7 +57,7 @@ + # Both install and setup requires - because we read VERSION from within the + # package, and the package also exports all the APIs. + # six for compat helpers +-REQUIRES = ['argparse', 'six>=1.4', 'traceback2'], ++REQUIRES = ['six>=1.4', 'traceback2'], + + params = dict( + name=NAME, diff --git a/gn/packages/python-web.scm b/gn/packages/python-web.scm deleted file mode 100644 index e0bfacf..0000000 --- a/gn/packages/python-web.scm +++ /dev/null @@ -1,41 +0,0 @@ -(define-module (gn packages python-web) - ;; core guix packages - #:use-module (guix packages) - #:use-module (guix download) - #:use-module (guix build-system python) - #:use-module ((guix licenses) #:prefix license:) - ;; packages modules - #:use-module (gnu packages django) - #:use-module (gnu packages databases) - #:use-module (gnu packages python-web) - #:use-module (gnu packages python-crypto)) - -(define-public python-authlib - (package - (name "python-authlib") - (version "1.5.0") - (source (origin - (method url-fetch) - (uri (pypi-uri "authlib" version)) - (sha256 - (base32 "08slfa8qm4ycjpwp8qcmixl59kw2k5bpp89rmhrab1b4h27vvn4g")))) - (build-system python-build-system) - (native-inputs - (list python-httpx - python-flask - python-django - python-werkzeug - python-starlette - python-sqlalchemy - python-pycryptodomex)) - (propagated-inputs - (list python-cryptography)) - (arguments `(#:tests? #f)) ;; temporarily deactivate tests - (home-page "https://authlib.org/") - (synopsis - "The ultimate Python library in building OAuth and OpenID Connect servers and clients.") - (description - "The ultimate Python library in building OAuth and OpenID Connect servers and -clients. It is designed from low level specifications implementations to high -level frameworks integrations, to meet the needs of everyone.") - (license license:bsd-3))) diff --git a/gn/packages/python.scm b/gn/packages/python.scm index 7cb5d77..e429058 100644 --- a/gn/packages/python.scm +++ b/gn/packages/python.scm @@ -3,11 +3,13 @@ #:use-module (gnu packages) #:use-module (gnu packages check) #:use-module (gnu packages compression) + #:use-module (gnu packages cran) #:use-module (gnu packages databases) #:use-module (gnu packages fontutils) #:use-module (gnu packages ghostscript) #:use-module (gnu packages icu4c) #:use-module (gnu packages image) + #:use-module (gnu packages jupyter) #:use-module (gnu packages libffi) #:use-module (gnu packages linux) #:use-module (gnu packages maths) @@ -22,7 +24,9 @@ #:use-module (gnu packages python-crypto) #:use-module (gnu packages python-science) #:use-module (gnu packages python-web) - #:use-module ((gnu packages python-xyz) #:hide (python2-six)) + #:use-module (gnu packages jupyter) + #:use-module (gnu packages cran) + #:use-module (gnu packages python-xyz) #:use-module (gnu packages rdf) #:use-module (gnu packages readline) #:use-module (gnu packages serialization) @@ -38,7 +42,8 @@ #:use-module (guix utils) #:use-module (guix build-system pyproject) #:use-module (guix build-system python) - #:use-module (srfi srfi-1)) + #:use-module (srfi srfi-1) + #:use-module (gn packages check)) (define-public python-rpy2-2.9 (package @@ -2019,3 +2024,32 @@ a general image processing tool.") (license (license:x11-style "http://www.pythonware.com/products/pil/license.htm" "The PIL Software License")))) + +(define-public python-misaka + (package + (name "python-misaka") + (version "2.1.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "misaka" version)) + (sha256 + (base32 + "1mzc29wwyhyardclj1vg2xsfdibg2lzb7f1azjcxi580ama55wv2")))) + (build-system python-build-system) + (arguments + `(;; Line 37 of setup.py calls self.run_command('develop') + ;; in the 'check' phase. This command seems to be trying + ;; to write to + ;; /gnu/store/...-python-<version>/lib/python<version>/site-packages/ + ;; for which it does not have the permission to write. + #:tests? #f)) + (propagated-inputs + (list python-cffi)) + (home-page "https://github.com/FSX/misaka") + (synopsis "Python binding for Hoedown") + (description + "@code{Misaka} is a CFFI-based binding for @code{Hoedown}, a fast markdown processing + library written in C. It features a fast HTML renderer and functionality to make custom + renderers (e.g. man pages or LaTeX).") + (license license:expat))) diff --git a/gn/packages/ruby.scm b/gn/packages/ruby.scm index befb550..4b5d903 100644 --- a/gn/packages/ruby.scm +++ b/gn/packages/ruby.scm @@ -29,7 +29,11 @@ #:use-module (gnu packages python) #:use-module (gnu packages ragel) #:use-module (gnu packages rails) + #:use-module (gnu packages rdf) #:use-module (gnu packages ruby) + #:use-module (gnu packages ruby-check) + #:use-module (gnu packages ruby-xyz) + #:use-module (gnu packages ruby-check) #:use-module (gnu packages tls) #:use-module (gnu packages version-control) #:use-module (guix packages) @@ -5972,16 +5976,16 @@ Simple gem that adds various color methods to String class, and can be used as f "http://github.com/pjotrp/regressiontest") (license license:expat))) -(define-public ruby-lmdb +(define-public ruby-lmdb ; note you may need to explicitly use ruby@3.3.8 to run the extension - the guix default (package (name "ruby-lmdb") - (version "0.6.1") + (version "0.6.5") (source (origin (method url-fetch) (uri (rubygems-uri "lmdb" version)) (sha256 (base32 - "0yzlf56ynj545ln5dxl422rpi8r6h11cr6rag5hk2qpbkzs6l9c2")))) + "094vwmp97av17k9sf8f42i308240a8aikbp3hf1f8wabcy7c7ar2")))) (build-system ruby-build-system) (inputs (list lmdb)) @@ -5996,4 +6000,270 @@ Simple gem that adds various color methods to String class, and can be used as f (synopsis "lmdb is a Ruby binding to OpenLDAP Lightning MDB.") (description "lmdb is a Ruby binding to OpenLDAP Lightning MDB.") (home-page "https://github.com/doriantaylor/rb-lmdb") - (license license:expat))) + (license license:expat))) ;; note that all these license statements need to be checked! + + +(define-public ruby-unicode-types + (package + (name "ruby-unicode-types") + (version "1.10.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "unicode-types" version)) + (sha256 + (base32 "1mif6v3wlfpb69scikpv7i4zq9rhj19px23iym6j8m3wnnh7d2wi")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (synopsis + "[Unicode 16.0.0] Determines the very basic type of codepoints (one of: Graphic, Format, Control, Private-use, Surrogate, Noncharacter, Reserved)") + (description + "[Unicode 16.0.0] Determines the very basic type of codepoints (one of: Graphic, +Format, Control, Private-use, Surrogate, Noncharacter, Reserved).") + (home-page "https://github.com/janlelis/unicode-types") + (license license:expat))) + +(define-public ruby-sxp + (package + (name "ruby-sxp") + (version "2.0.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "sxp" version)) + (sha256 + (base32 "08a7ha191gdc1n1pwaqgsx133wy1p1g4fchkhr5gx0jannx1p5vr")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs (list ruby-matrix ruby-rdf)) + (synopsis + "Universal S-expression parser with specific support for Common Lisp, Scheme, and RDF/SPARQL") + (description + "Universal S-expression parser with specific support for Common Lisp, Scheme, and +RDF/SPARQL.") + (home-page "https://github.com/dryruby/sxp") + (license license:expat))) + +(define-public ruby-scanf + (package + (name "ruby-scanf") + (version "1.0.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "scanf" version)) + (sha256 + (base32 "000vxsci3zq8m1wl7mmppj7sarznrqlm6v2x2hdfmbxcwpvvfgak")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (synopsis "scanf is an implementation of the C function scanf(3).") + (description "scanf is an implementation of the C function scanf(3).") + (home-page "https://github.com/ruby/scanf") + (license license:expat))) + +(define-public ruby-ebnf + (package + (name "ruby-ebnf") + (version "2.6.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "ebnf" version)) + (sha256 + (base32 "0gpnphpp7qcdjh9vrj8bfrb3k54lq7pk7p23w92wr1d8r8ba6ip7")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs (list ruby-base64 + ruby-htmlentities + ruby-rdf + ruby-scanf + ruby-sxp + ruby-unicode-types)) + (synopsis + "EBNF is a Ruby parser for W3C EBNF and a parser generator for PEG and LL(1). Also includes parsing modes for ISO EBNF and ABNF.") + (description + "EBNF is a Ruby parser for W3C EBNF and a parser generator for PEG and LL(1). +Also includes parsing modes for ISO EBNF and ABNF.") + (home-page "https://github.com/dryruby/ebnf") + (license license:expat))) + +(define-public ruby-bigdecimal + (package + (name "ruby-bigdecimal") + (version "3.2.2") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "bigdecimal" version)) + (sha256 + (base32 "1p2szbr4jdvmwaaj2kxlbv1rp0m6ycbgfyp0kjkkkswmniv5y21r")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (synopsis + "This library provides arbitrary-precision decimal floating-point number class.") + (description + "This library provides arbitrary-precision decimal floating-point number class.") + (home-page "https://github.com/ruby/bigdecimal") + (license license:expat))) + +(define-public ruby-rdf-turtle + (package + (name "ruby-rdf-turtle") + (version "3.3.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rdf-turtle" version)) + (sha256 + (base32 "0irnlxnrkdqsk5wkjj51rwyj59lcj4j8y24s9yxplbksjy4vxwxs")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs (list ruby-base64 ruby-bigdecimal ruby-ebnf ruby-rdf)) + (synopsis + "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.") + (description + "RDF::Turtle is an Turtle reader/writer for the RDF.rb library suite.") + (home-page "https://github.com/ruby-rdf/rdf-turtle") + (license license:unlicense))) + +(define-public ruby-readline + (package + (name "ruby-readline") + (version "0.0.4") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "readline" version)) + (sha256 + (base32 "0shxkj3kbwl43rpg490k826ibdcwpxiymhvjnsc85fg2ggqywf31")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (propagated-inputs (list ruby-reline)) + (synopsis + "This is just a loader for \"readline\". If Ruby has the \"readline-ext\" gem +that is a native extension, this gem will load it. If Ruby does not have +the \"readline-ext\" gem this gem will load \"reline\", a library that is +compatible with the \"readline-ext\" gem and implemented in pure Ruby. +") + (description + "This is just a loader for \"readline\". If Ruby has the \"readline-ext\" gem that +is a native extension, this gem will load it. If Ruby does not have the +\"readline-ext\" gem this gem will load \"reline\", a library that is compatible +with the \"readline-ext\" gem and implemented in pure Ruby.") + (home-page "https://github.com/ruby/readline") + (license license:expat))) + +(define-public ruby-ostruct + (package + (name "ruby-ostruct") + (version "0.6.3") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "ostruct" version)) + (sha256 + (base32 "04nrir9wdpc4izqwqbysxyly8y7hsfr4fsv69rw91lfi9d5fv8lm")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (synopsis "Class to build custom data structures, similar to a Hash.") + (description "Class to build custom data structures, similar to a Hash.") + (home-page "https://github.com/ruby/ostruct") + (license license:expat))) + +(define-public ruby-logger + (package + (name "ruby-logger") + (version "1.7.0") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "logger" version)) + (sha256 + (base32 "00q2zznygpbls8asz5knjvvj2brr3ghmqxgr83xnrdj4rk3xwvhr")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (synopsis "Provides a simple logging utility for outputting messages.") + (description + "This package provides a simple logging utility for outputting messages.") + (home-page "https://github.com/ruby/logger") + (license license:expat))) + +(define-public ruby-bcp47-spec + (package + (name "ruby-bcp47-spec") + (version "0.2.1") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "bcp47_spec" version)) + (sha256 + (base32 "043qld01c163yc7fxlar3046dac2833rlcg44jbbs9n1jvgjxmiz")))) + (build-system ruby-build-system) + (arguments + `(#:tests? #f)) + (synopsis "A subset of the BCP 47 spec.") + (description "This package provides a subset of the BCP 47 spec.") + (home-page "https://github.com/dadah89/bcp47_spec") + (license license:expat))) + +(define-public ruby-rdf + (package + (name "ruby-rdf") + (version "3.3.4") + (source + (origin + (method url-fetch) + (uri (rubygems-uri "rdf" version)) + (sha256 + (base32 "1har1346p7jwrs89d5w1gv98jk2nh3cwkdyvkzm2nkjv3s1a0zx7")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-bcp47-spec + ruby-bigdecimal + ruby-link-header + ruby-logger + ruby-ostruct + ruby-readline)) + (arguments + `(#:tests? #f)) + (synopsis + "RDF.rb is a pure-Ruby library for working with Resource Description Framework (RDF) data.") + (description + "RDF.rb is a pure-Ruby library for working with Resource Description Framework +(RDF) data.") + (home-page "https://github.com/ruby-rdf/rdf") + (license license:unlicense))) + +(define-public ruby-rdf-raptor + (let ((commit "6392cea")) + (package + (name "ruby-rdf-raptor") + (version "3.3.0") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ruby-rdf/rdf-raptor") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1mqdddn8s3j0j7gqw0v34jw5cxg2mkka1x9fx46vy38v15m8bbn1")))) + (build-system ruby-build-system) + (propagated-inputs (list ruby-ffi ruby-rdf raptor2)) + (arguments + `(#:tests? #f)) + (synopsis + "RDF.rb plugin for parsing/serializing NTriples, RDF/XML, Turtle and RDFa data using the Raptor RDF Parser library.") + (description + "RDF.rb plugin for parsing/serializing NTriples, RDF/XML, Turtle and RDFa data +using the Raptor RDF Parser library.") + (home-page "https://github.com/ruby-rdf/rdf-raptor") + (license license:unlicense)))) diff --git a/gn/packages/sambamba.scm b/gn/packages/sambamba.scm index dd8fbfa..e5623d4 100644 --- a/gn/packages/sambamba.scm +++ b/gn/packages/sambamba.scm @@ -89,7 +89,7 @@ data. It also provides the @command{bgzip}, @command{htsfile}, and )) (native-inputs `(("ldc" ,ldc) - ("shunit2-old" ,shunit2-old) + ;; ("shunit2-old" ,shunit2-old) disable for a bit ("coreutils" ,coreutils) ; for env ("perl" ,perl) ; Needed for building htslib ("ruby" ,ruby) ; Needed for building htslib diff --git a/gn/packages/statistics.scm b/gn/packages/statistics.scm index e0edd52..8e8483a 100644 --- a/gn/packages/statistics.scm +++ b/gn/packages/statistics.scm @@ -14,7 +14,18 @@ #:use-module (gnu packages python-science) #:use-module (gnu packages python-xyz) #:use-module (gnu packages statistics) - #:use-module (past packages python27)) + #:use-module (gnu packages cran) + #:use-module (past packages python27) + + ;; for python-rpy2 and dependencies + #:use-module (gnu packages python-build) + #:use-module (guix build-system pyproject); python-rpy2-rinterface + #:use-module (gnu packages libffi); python-rpy2-rinterface + #:use-module (gnu packages check); python-rpy2-rinterface + #:use-module (gnu packages compression); python-rpy2-rinterface + #:use-module (gnu packages icu4c); python-rpy2-rinterface + #:use-module (gnu packages time); python-rpy2-robjects + #:use-module (guix gexp)) (define-public r-hmisc-3 (package @@ -149,3 +160,123 @@ traits (CTL). The additional correlation information obtained can be combined with QTL information to perform de novo reconstruction of interaction networks.") (license license:gpl3))) + + +(define-public python-rpy2-rinterface + (package + (name "python-rpy2-rinterface") + (version "3.6.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rpy2_rinterface" version)) + (sha256 + (base32 "1hjnc4143dvcrp9m4vnxm4fs2ahiagp5lklsqp1nki341kh0samn")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-cffi + python-packaging + ;;python-backports-zoneinfo ; needed for python_version<3.9 + r-minimal)) + (native-inputs (list zlib + icu4c + libdeflate + python-cffi + python-coverage + python-packaging + python-pytest + python-pytest-cov + python-setuptools + python-wheel + r-survival)) + (home-page "https://rpy2.github.io/") + (synopsis "Low-level interface from Python to the R") + (description "Low-level interface for rpy2. rpy2 is an interface to R + running embedded in a Python process.") + (license license:gpl2))) + + +(define-public python-rpy2-robjects + (package + (name "python-rpy2-robjects") + (version "3.6.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rpy2_robjects" version)) + (sha256 + (base32 "0yn4nq26na9hzlm08vsxr050ls5nmngpyma49fpfwc9mhxc7njlk")))) + (build-system pyproject-build-system) + (propagated-inputs (list python-jinja2 + python-packaging + python-rpy2-rinterface + ;;python-backports-zoneinfo; needed for python_version<3.9 + python-tzlocal)) + (native-inputs (list python-coverage + python-ipython + python-numpy + python-packaging + python-pandas + python-pytest + python-pytest-cov + python-setuptools + python-wheel)) + (home-page #f) + (synopsis "Python interface to the R language (embedded R)") + (description "Python interface to the R language (embedded R).") + (license #f))) + + +(define-public python-rpy2-patched + ;; TODO: Delete this after python-rpy2 is fixed upstream. + (package + (inherit python-rpy2) + (name "python-rpy2") + (version "3.6.2") + (source + (origin + (method url-fetch) + (uri (pypi-uri "rpy2" version)) + (sha256 + (base32 "1l3paflfc2wczjms9ghaklg4bxg0c2cqh4anvlskpl4id9vsakhp")))) + (propagated-inputs + (modify-inputs (package-propagated-inputs python-rpy2) + (prepend r-minimal) + (prepend python-rpy2-rinterface) + (prepend python-rpy2-robjects))) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-before 'build 'fix-license-metadata + (lambda* _ + ;; Remove one field + (substitute* "./pyproject.toml" + (("license = \"GPL-2.0-or-later\"\n") + "") + ;; update remaining field to acceptable PEP 621 format + (("^license-files = .*$") + "license = {file = \"LICENSE\"}\n")))) + (delete 'check)))))) + + +(define-public r-thor + (package + (name "r-thor") + (version "1.2.0") + (source + (origin + (method url-fetch) + (uri (cran-uri "thor" version)) + (sha256 + (base32 "1g9204n6khm1k9ifwlmhbycfp996k5c2zpcmk2aqd95iqafpaw4g")))) + (build-system r-build-system) + (propagated-inputs `(("r-r6" ,r-r6) + ("r-storr" ,r-storr))) + (native-inputs (list r-testthat r-knitr)) + (home-page "https://github.com/richfitz/thor") + (synopsis "R binding for the ‘Lightning’ database (LMDB) ") + (description + "This package is an R interface to LMDB. + LMDB is an embedded transactional key-value store and this package provides R mappings to it. + It wraps the entire LMDB interface, except for support for duplicated keys.") + (license license:openldap2.8))) diff --git a/gn/packages/virtualization.scm b/gn/packages/virtualization.scm index e0eb016..22753f8 100644 --- a/gn/packages/virtualization.scm +++ b/gn/packages/virtualization.scm @@ -16,7 +16,8 @@ #:use-module (gnu packages pkg-config) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) - #:use-module (gnu packages python-xyz)) + #:use-module (gnu packages python-xyz) + #:use-module (past packages python27)) (define-public gem5 (package diff --git a/gn/packages/yaj.scm b/gn/packages/yaj.scm index c36a6cc..aa5a0eb 100644 --- a/gn/packages/yaj.scm +++ b/gn/packages/yaj.scm @@ -5,6 +5,7 @@ #:use-module (guix download) #:use-module (guix build-system python) #:use-module (guix build-system trivial) + #:use-module (gn packages python) #:use-module (gnu packages) #:use-module (gnu packages check) #:use-module (gnu packages compression) @@ -12,7 +13,8 @@ #:use-module (gnu packages python-web) #:use-module (gnu packages python-xyz) #:use-module (gnu packages web) - #:use-module (gn packages web)) + #:use-module (gn packages web) + #:use-module (gn packages check)) (define-public python-elasticsearch (package diff --git a/gn/past/genenetwork1.scm b/gn/past/genenetwork1.scm index 717aff6..ff5c7a4 100644 --- a/gn/past/genenetwork1.scm +++ b/gn/past/genenetwork1.scm @@ -21,7 +21,7 @@ #:use-module (gnu packages bootstrap) #:use-module (gnu packages check) #:use-module (gnu packages cran) - #:use-module (gnu packages crates-io) + #:use-module (past-crates packages crates-io) #:use-module (gnu packages compression) #:use-module (gnu packages databases) #:use-module (gnu packages ghostscript) diff --git a/gn/services/bnw-container.scm b/gn/services/bnw-container.scm index 4309f75..723e063 100644 --- a/gn/services/bnw-container.scm +++ b/gn/services/bnw-container.scm @@ -84,7 +84,7 @@ ;; We don't need any packages inside the container. (packages (list coreutils)) - (services (list (service dhcp-client-service-type) + (services (list (service dhcp-service-type) (service bnw-service-type ;; The following is for testing: ;(bnw-configuration diff --git a/gn/services/databases.scm b/gn/services/databases.scm index 4cbbb5e..fbdf39e 100644 --- a/gn/services/databases.scm +++ b/gn/services/databases.scm @@ -54,6 +54,8 @@ (default "/var/lib/virtuoso/virtuoso.lck")) (transaction-file virtuoso-configuration-transaction-file (default "/var/lib/virtuoso/virtuoso.trx")) + (error-log-file virtuoso-configuration-error-log-file + (default "/var/lib/virtuoso/virtuoso-errors.log")) (syslog virtuoso-configuration-syslog (default "0"))) @@ -116,10 +118,11 @@ #$(virtuoso-configuration-http-server-ip config) #$(virtuoso-configuration-http-server-port config))) (format port - "[Database]~%DatabaseFile = ~a~%LockFile = ~a~%TransactionFile = ~a~%Syslog = ~a~%" + "[Database]~%DatabaseFile = ~a~%LockFile = ~a~%TransactionFile = ~a~%ErrorLogFile = ~a~%Syslog = ~a~%" #$(virtuoso-configuration-database-file config) #$(virtuoso-configuration-lock-file config) #$(virtuoso-configuration-transaction-file config) + #$(virtuoso-configuration-error-log-file config) #$(virtuoso-configuration-syslog config)))))) #:directory #$(virtuoso-configuration-state-directory config) #:user "virtuoso" diff --git a/gn/services/discourse.scm b/gn/services/discourse.scm index 0074c7b..feebb98 100644 --- a/gn/services/discourse.scm +++ b/gn/services/discourse.scm @@ -4,7 +4,8 @@ (gn packages ruby) (guix modules) (guix records) - (ice-9 match)) + (ice-9 match) + (gnu packages ruby-check)) (use-service-modules networking shepherd web) (use-package-modules node ruby) @@ -120,7 +121,7 @@ (list node) %base-packages)) - (services (list (service dhcp-client-service-type) + (services (list (service dhcp-service-type) (service discourse-service-type ;; The following is for testing: ;(discourse-configuration diff --git a/gn/services/genecup-container.scm b/gn/services/genecup-container.scm index 42ad097..d61ed80 100644 --- a/gn/services/genecup-container.scm +++ b/gn/services/genecup-container.scm @@ -6,7 +6,8 @@ (guix modules) (guix packages) (guix records) - (ice-9 match)) + (ice-9 match) + ((gnu packages nss) #:select (nss-certs))) (use-service-modules shepherd) (use-package-modules certs compression) diff --git a/gn/services/gitea-container.scm b/gn/services/gitea-container.scm index 5e707ec..397e6fb 100644 --- a/gn/services/gitea-container.scm +++ b/gn/services/gitea-container.scm @@ -90,5 +90,5 @@ (id 998)) %base-groups)) - (services (list (service dhcp-client-service-type) + (services (list (service dhcp-service-type) (service gitea-service-type)))) diff --git a/gn/services/monitoring.scm b/gn/services/monitoring.scm new file mode 100644 index 0000000..9475d31 --- /dev/null +++ b/gn/services/monitoring.scm @@ -0,0 +1,49 @@ +(define-module (gn services monitoring) + #:use-module (gnu) + #:use-module (gnu services shepherd) + #:use-module (gnu services databases) + #:use-module ((gn packages guile) #:select (guile-sheepdog)) + #:use-module (guix gexp) + #:use-module (guix records) + #:use-module (ice-9 match) + #:export (guile-sheepdog-configuration + guile-sheepdog-configuration? + guile-sheepdog-configuration-settings-file + guile-sheepdog-configuration-package + guile-sheepdog-service-type)) + +(define-record-type* <guile-sheepdog-configuration> + guile-sheepdog-configuration + make-guile-sheepdog-configuration + guile-sheepdog-configuration? + (settings-file guile-sheepdog-configuration-settings-file + (default "/etc/conn.scm")) + (package guile-sheepdog-configuration-package (default guile-sheepdog))) + +(define (guile-sheepdog-gexp config) + (match-record config <guile-sheepdog-configuration> (settings-file package) + (program-file + "guile-sheepdog" + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (invoke #$(file-append package "/bin/guile-sheepdog") #$settings-file)))))) + +(define (guile-sheepdog-shepherd-service config) + (shepherd-service + (documentation "Run Sheepdog") + (provision '(guile-sheepdog)) + (requirement '(networking redis)) + (start #~(make-forkexec-constructor + (list #$(guile-sheepdog-gexp config)) + #:log-file "/var/log/sheepdog.log")) + (stop #~(make-kill-destructor)))) + +(define guile-sheepdog-service-type + (service-type + (name 'guile-sheepdog) + (description "Run sheepdog monitor") + (extensions + (list (service-extension shepherd-root-service-type + (compose list guile-sheepdog-shepherd-service)))) + (default-value (guile-sheepdog-configuration)))) diff --git a/gn/services/pluto.scm b/gn/services/pluto.scm index 420e2cf..c6dc40f 100644 --- a/gn/services/pluto.scm +++ b/gn/services/pluto.scm @@ -4,7 +4,8 @@ (gn packages julia) (guix modules) (guix records) - (ice-9 match)) + (ice-9 match) + ((gnu packages nss) #:select (nss-certs))) (use-service-modules shepherd) (use-package-modules admin |
