about summary refs log tree commit diff
diff options
context:
space:
mode:
authorpjotrp2026-04-02 11:50:53 +0200
committerpjotrp2026-04-02 11:50:53 +0200
commite47076db4a40f00beb557fbd67c2c77cefa82b1d (patch)
tree40faf3b45c0b0125ca3c809fac147744b2657a83
parent4f9f2d7ecdebc2be6a35eb5ad67dcd253bfa6d83 (diff)
downloadguix-bioinformatics-e47076db4a40f00beb557fbd67c2c77cefa82b1d.tar.gz
Updated rust package for qtlreaper
-rw-r--r--gn/packages/genenetwork-rust.scm334
-rw-r--r--gn/packages/genenetwork.scm54
2 files changed, 335 insertions, 53 deletions
diff --git a/gn/packages/genenetwork-rust.scm b/gn/packages/genenetwork-rust.scm
new file mode 100644
index 0000000..6189c72
--- /dev/null
+++ b/gn/packages/genenetwork-rust.scm
@@ -0,0 +1,334 @@
+;;; GeneNetwork Rust packages
+
+(define-module (gn packages genenetwork-rust)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix utils)
+  #:use-module (guix download)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system cargo)
+  #:use-module (guix gexp)
+  #:export (lookup-cargo-inputs))
+
+;;; Crate sources for rust-qtlreaper (guix import crate -f Cargo.lock qtlreaper)
+
+(define rust-ansi-term-0.12.1
+  (crate-source "ansi_term" "0.12.1"
+                "1ljmkbilxgmhavxvxqa7qvm6f3fjggi7q2l3a72q9x0cxjvrnanm"))
+
+(define rust-atty-0.2.14
+  (crate-source "atty" "0.2.14"
+                "1s7yslcs6a28c5vz7jwj63lkfgyx8mx99fdirlhi9lbhhzhrpcyr"))
+
+(define rust-autocfg-0.1.8
+  (crate-source "autocfg" "0.1.8"
+                "0y4vw4l4izdxq1v0rrhvmlbqvalrqrmk60v1z0dqlgnlbzkl7phd"))
+
+(define rust-autocfg-1.5.0
+  (crate-source "autocfg" "1.5.0"
+                "1s77f98id9l4af4alklmzq46f21c980v13z2r1pcxx6bqgw0d1n0"))
+
+(define rust-bitflags-1.3.2
+  (crate-source "bitflags" "1.3.2"
+                "12ki6w8gn1ldq7yz9y680llwk5gmrhrzszaa17g1sbrw2r2qvwxy"))
+
+(define rust-clap-2.34.0
+  (crate-source "clap" "2.34.0"
+                "071q5d8jfwbazi6zhik9xwpacx5i6kb2vkzy060vhf0c3120aqd0"))
+
+(define rust-cloudabi-0.0.3
+  (crate-source "cloudabi" "0.0.3"
+                "0kxcg83jlihy0phnd2g8c2c303px3l2p3pkjz357ll6llnd5pz6x"))
+
+(define rust-crossbeam-deque-0.8.6
+  (crate-source "crossbeam-deque" "0.8.6"
+                "0l9f1saqp1gn5qy0rxvkmz4m6n7fc0b3dbm6q1r5pmgpnyvi3lcx"))
+
+(define rust-crossbeam-epoch-0.9.18
+  (crate-source "crossbeam-epoch" "0.9.18"
+                "03j2np8llwf376m3fxqx859mgp9f83hj1w34153c7a9c7i5ar0jv"))
+
+(define rust-crossbeam-utils-0.8.21
+  (crate-source "crossbeam-utils" "0.8.21"
+                "0a3aa2bmc8q35fb67432w16wvi54sfmb69rk9h5bhd18vw0c99fh"))
+
+(define rust-either-1.15.0
+  (crate-source "either" "1.15.0"
+                "069p1fknsmzn9llaizh77kip0pqmcwpdsykv2x30xpjyija5gis8"))
+
+(define rust-fuchsia-cprng-0.1.1
+  (crate-source "fuchsia-cprng" "0.1.1"
+                "1fnkqrbz7ixxzsb04bsz9p0zzazanma8znfdqjvh39n14vapfvx0"))
+
+(define rust-heck-0.3.3
+  (crate-source "heck" "0.3.3"
+                "0b0kkr790p66lvzn9nsmfjvydrbmh9z5gb664jchwgw64vxiwqkd"))
+
+(define rust-hermit-abi-0.1.19
+  (crate-source "hermit-abi" "0.1.19"
+                "0cxcm8093nf5fyn114w8vxbrbcyvv91d4015rdnlgfll7cs6gd32"))
+
+(define rust-itertools-0.7.11
+  (crate-source "itertools" "0.7.11"
+                "03cpsj26xmyamcalclqzr1i700vwx8hnbgxbpjvs354f8mnr8iqd"))
+
+(define rust-itoa-1.0.18
+  (crate-source "itoa" "1.0.18"
+                "10jnd1vpfkb8kj38rlkn2a6k02afvj3qmw054dfpzagrpl6achlg"))
+
+(define rust-libc-0.2.184
+  (crate-source "libc" "0.2.184"
+                "1bz4525m7lwzr63iidh7lp9ppz2c9va1pn6fyjh5wsp1ajjd5xa8"))
+
+(define rust-matrixmultiply-0.1.15
+  (crate-source "matrixmultiply" "0.1.15"
+                "00p0fpjhm45qdzi37mgv7ggsy8b9gqvq4999yrbgyn1dxkf6gbfw"))
+
+(define rust-memchr-2.8.0
+  (crate-source "memchr" "2.8.0"
+                "0y9zzxcqxvdqg6wyag7vc3h0blhdn7hkq164bxyx2vph8zs5ijpq"))
+
+(define rust-ndarray-0.12.1
+  (crate-source "ndarray" "0.12.1"
+                "0a5rfwcbqnvbwi3nw5sfz6kf0flhmjxs64s0b4kxc6lhmyl81wvw"))
+
+(define rust-num-complex-0.2.4
+  (crate-source "num-complex" "0.2.4"
+                "15dwaksw729r3v14sgzc9723s3fnfixiir8jzwx7b7kim48r9cdn"))
+
+(define rust-num-traits-0.2.19
+  (crate-source "num-traits" "0.2.19"
+                "0h984rhdkkqd4ny9cif7y2azl3xdfb7768hb9irhpsch4q3gq787"))
+
+(define rust-proc-macro2-0.4.30
+  (crate-source "proc-macro2" "0.4.30"
+                "0nd71fl24sys066jrha6j7i34nfkjv44yzw8yww9742wmc8j0gfg"))
+
+(define rust-proc-macro2-1.0.106
+  (crate-source "proc-macro2" "1.0.106"
+                "0d09nczyaj67x4ihqr5p7gxbkz38gxhk4asc0k8q23g9n85hzl4g"))
+
+(define rust-quote-0.6.13
+  (crate-source "quote" "0.6.13"
+                "1qgqq48jymp5h4y082aanf25hrw6bpb678xh3zw993qfhxmkpqkc"))
+
+(define rust-quote-1.0.45
+  (crate-source "quote" "1.0.45"
+                "095rb5rg7pbnwdp6v8w5jw93wndwyijgci1b5lw8j1h5cscn3wj1"))
+
+(define rust-rand-0.6.5
+  (crate-source "rand" "0.6.5"
+                "1jl4449jcl4wgmzld6ffwqj5gwxrp8zvx8w573g1z368qg6xlwbd"))
+
+(define rust-rand-chacha-0.1.1
+  (crate-source "rand_chacha" "0.1.1"
+                "1vxwyzs4fy1ffjc8l00fsyygpiss135irjf7nyxgq2v0lqf3lvam"))
+
+(define rust-rand-core-0.3.1
+  (crate-source "rand_core" "0.3.1"
+                "0jzdgszfa4bliigiy4hi66k7fs3gfwi2qxn8vik84ph77fwdwvvs"))
+
+(define rust-rand-core-0.4.2
+  (crate-source "rand_core" "0.4.2"
+                "1p09ynysrq1vcdlmcqnapq4qakl2yd1ng3kxh3qscpx09k2a6cww"))
+
+(define rust-rand-hc-0.1.0
+  (crate-source "rand_hc" "0.1.0"
+                "1i0vl8q5ddvvy0x8hf1zxny393miyzxkwqnw31ifg6p0gdy6fh3v"))
+
+(define rust-rand-isaac-0.1.1
+  (crate-source "rand_isaac" "0.1.1"
+                "027flpjr4znx2csxk7gxb7vrf9c7y5mydmvg5az2afgisp4rgnfy"))
+
+(define rust-rand-jitter-0.1.4
+  (crate-source "rand_jitter" "0.1.4"
+                "16z387y46bfz3csc42zxbjq89vcr1axqacncvv8qhyy93p4xarhi"))
+
+(define rust-rand-os-0.1.3
+  (crate-source "rand_os" "0.1.3"
+                "0wahppm0s64gkr2vmhcgwc0lij37in1lgfxg5rbgqlz0l5vgcxbv"))
+
+(define rust-rand-pcg-0.1.2
+  (crate-source "rand_pcg" "0.1.2"
+                "0i0bdla18a8x4jn1w0fxsbs3jg7ajllz6azmch1zw33r06dv1ydb"))
+
+(define rust-rand-xorshift-0.1.1
+  (crate-source "rand_xorshift" "0.1.1"
+                "0p2x8nr00hricpi2m6ca5vysiha7ybnghz79yqhhx6sl4gkfkxyb"))
+
+(define rust-rawpointer-0.1.0
+  (crate-source "rawpointer" "0.1.0"
+                "06ghpm9y7gacks78s3maakha07kbnwrxif5q37r2l7z1sali3b7b"))
+
+(define rust-rayon-1.11.0
+  (crate-source "rayon" "1.11.0"
+                "13x5fxb7rn4j2yw0cr26n7782jkc7rjzmdkg42qxk3xz0p8033rn"))
+
+(define rust-rayon-core-1.13.0
+  (crate-source "rayon-core" "1.13.0"
+                "14dbr0sq83a6lf1rfjq5xdpk5r6zgzvmzs5j6110vlv2007qpq92"))
+
+(define rust-rdrand-0.4.0
+  (crate-source "rdrand" "0.4.0"
+                "1cjq0kwx1bk7jx3kzyciiish5gqsj7620dm43dc52sr8fzmm9037"))
+
+(define rust-serde-1.0.228
+  (crate-source "serde" "1.0.228"
+                "17mf4hhjxv5m90g42wmlbc61hdhlm6j9hwfkpcnd72rpgzm993ls"))
+
+(define rust-serde-core-1.0.228
+  (crate-source "serde_core" "1.0.228"
+                "1bb7id2xwx8izq50098s5j2sqrrvk31jbbrjqygyan6ask3qbls1"))
+
+(define rust-serde-derive-1.0.228
+  (crate-source "serde_derive" "1.0.228"
+                "0y8xm7fvmr2kjcd029g9fijpndh8csv5m20g4bd76w8qschg4h6m"))
+
+(define rust-serde-json-1.0.149
+  (crate-source "serde_json" "1.0.149"
+                "11jdx4vilzrjjd1dpgy67x5lgzr0laplz30dhv75lnf5ffa07z43"))
+
+(define rust-strsim-0.8.0
+  (crate-source "strsim" "0.8.0"
+                "0sjsm7hrvjdifz661pjxq5w4hf190hx53fra8dfvamacvff139cf"))
+
+(define rust-structopt-0.2.18
+  (crate-source "structopt" "0.2.18"
+                "1mvfv1l8vp3y402fkl2wcl34hi7gmr4bqha13dfz2xf3kjzwvhhn"))
+
+(define rust-structopt-derive-0.2.18
+  (crate-source "structopt-derive" "0.2.18"
+                "01sis9z5kqmyhvzbnmlzpdxcry99a0b9blypksgnhdsbm1hh40ak"))
+
+(define rust-syn-0.15.44
+  (crate-source "syn" "0.15.44"
+                "1id5g6x6zihv3j7hwrw3m1jp636bg8dpi671r7zy3jvpkavb794w"))
+
+(define rust-syn-2.0.117
+  (crate-source "syn" "2.0.117"
+                "16cv7c0wbn8amxc54n4w15kxlx5ypdmla8s0gxr2l7bv7s0bhrg6"))
+
+(define rust-textwrap-0.11.0
+  (crate-source "textwrap" "0.11.0"
+                "0q5hky03ik3y50s9sz25r438bc4nwhqc6dqwynv4wylc807n29nk"))
+
+(define rust-unicode-ident-1.0.24
+  (crate-source "unicode-ident" "1.0.24"
+                "0xfs8y1g7syl2iykji8zk5hgfi5jw819f5zsrbaxmlzwsly33r76"))
+
+(define rust-unicode-segmentation-1.13.2
+  (crate-source "unicode-segmentation" "1.13.2"
+                "135a26m4a0wj319gcw28j6a5aqvz00jmgwgmcs6szgxjf942facn"))
+
+(define rust-unicode-width-0.1.14
+  (crate-source "unicode-width" "0.1.14"
+                "1bzn2zv0gp8xxbxbhifw778a7fc93pa6a1kj24jgg9msj07f7mkx"))
+
+(define rust-unicode-xid-0.1.0
+  (crate-source "unicode-xid" "0.1.0"
+                "1z57lqh4s18rr4x0j4fw4fmp9hf9346h0kmdgqsqx0fhjr3k0wpw"))
+
+(define rust-vec-map-0.8.2
+  (crate-source "vec_map" "0.8.2"
+                "1481w9g1dw9rxp3l6snkdqihzyrd2f8vispzqmwjwsdyhw8xzggi"))
+
+(define rust-winapi-0.3.9
+  (crate-source "winapi" "0.3.9"
+                "06gl025x418lchw1wxj64ycr7gha83m44cjr5sarhynd9xkrm0sw"))
+
+(define rust-winapi-i686-pc-windows-gnu-0.4.0
+  (crate-source "winapi-i686-pc-windows-gnu" "0.4.0"
+                "1dmpa6mvcvzz16zg6d5vrfy4bxgg541wxrcip7cnshi06v38ffxc"))
+
+(define rust-winapi-x86-64-pc-windows-gnu-0.4.0
+  (crate-source "winapi-x86_64-pc-windows-gnu" "0.4.0"
+                "0gqq64czqb64kskjryj8isp62m2sgvx25yyj3kpc2myh85w24bki"))
+
+(define rust-zmij-1.0.21
+  (crate-source "zmij" "1.0.21"
+                "1amb5i6gz7yjb0dnmz5y669674pqmwbj44p4yfxfv2ncgvk8x15q"))
+
+
+(define-cargo-inputs lookup-cargo-inputs
+  (qtlreaper =>
+    (list rust-ansi-term-0.12.1
+          rust-atty-0.2.14
+          rust-autocfg-0.1.8
+          rust-autocfg-1.5.0
+          rust-bitflags-1.3.2
+          rust-clap-2.34.0
+          rust-cloudabi-0.0.3
+          rust-crossbeam-deque-0.8.6
+          rust-crossbeam-epoch-0.9.18
+          rust-crossbeam-utils-0.8.21
+          rust-either-1.15.0
+          rust-fuchsia-cprng-0.1.1
+          rust-heck-0.3.3
+          rust-hermit-abi-0.1.19
+          rust-itertools-0.7.11
+          rust-itoa-1.0.18
+          rust-libc-0.2.184
+          rust-matrixmultiply-0.1.15
+          rust-memchr-2.8.0
+          rust-ndarray-0.12.1
+          rust-num-complex-0.2.4
+          rust-num-traits-0.2.19
+          rust-proc-macro2-0.4.30
+          rust-proc-macro2-1.0.106
+          rust-quote-0.6.13
+          rust-quote-1.0.45
+          rust-rand-0.6.5
+          rust-rand-chacha-0.1.1
+          rust-rand-core-0.3.1
+          rust-rand-core-0.4.2
+          rust-rand-hc-0.1.0
+          rust-rand-isaac-0.1.1
+          rust-rand-jitter-0.1.4
+          rust-rand-os-0.1.3
+          rust-rand-pcg-0.1.2
+          rust-rand-xorshift-0.1.1
+          rust-rawpointer-0.1.0
+          rust-rayon-1.11.0
+          rust-rayon-core-1.13.0
+          rust-rdrand-0.4.0
+          rust-serde-1.0.228
+          rust-serde-core-1.0.228
+          rust-serde-derive-1.0.228
+          rust-serde-json-1.0.149
+          rust-strsim-0.8.0
+          rust-structopt-0.2.18
+          rust-structopt-derive-0.2.18
+          rust-syn-0.15.44
+          rust-syn-2.0.117
+          rust-textwrap-0.11.0
+          rust-unicode-ident-1.0.24
+          rust-unicode-segmentation-1.13.2
+          rust-unicode-width-0.1.14
+          rust-unicode-xid-0.1.0
+          rust-vec-map-0.8.2
+          rust-winapi-0.3.9
+          rust-winapi-i686-pc-windows-gnu-0.4.0
+          rust-winapi-x86-64-pc-windows-gnu-0.4.0
+          rust-zmij-1.0.21
+          ))
+)
+
+(define-public rust-qtlreaper
+  (package
+    (name "rust-qtlreaper")
+    (version "0.1.4")
+    ;; Use local source with updated Cargo.lock for modern Rust.
+    ;; Push Cargo.lock upstream, then switch to git-fetch.
+    (source (local-file "/fast/pjotr/tmp/claude/factory/rust-qtlreaper"
+                        #:recursive? #t))
+    (build-system cargo-build-system)
+    (arguments (list #:install-source? #f
+                     #:tests? #f)) ; test results vary by machine
+    (inputs (cargo-inputs 'qtlreaper
+                          #:module '(gn packages genenetwork-rust)))
+    (home-page "https://github.com/genenetwork/rust-qtlreaper")
+    (synopsis "Rust implementation of QTL Reaper")
+    (description
+     "Rust-qtlreaper is a Rust implementation of QTL Reaper for mapping
+quantitative trait loci (QTL) in genetic datasets.")
+    (license license:agpl3+)))
diff --git a/gn/packages/genenetwork.scm b/gn/packages/genenetwork.scm
index b1f83c7..c1b3f83 100644
--- a/gn/packages/genenetwork.scm
+++ b/gn/packages/genenetwork.scm
@@ -59,63 +59,11 @@
   #:use-module (gn packages python)
   #:use-module (gn packages statistics)
   #:use-module (gn packages web)
+  #:use-module (gn packages genenetwork-rust)
   #:use-module (srfi srfi-1)
   #:use-module (gn packages databases))
 
 
-(define-public rust-qtlreaper
-  (let ((commit "4dafa7289432d10685b6b235e3552ac3d681bb03")
-        (revision "1"))
-    (package
-      (name "rust-qtlreaper")
-      (version "0.1.4")
-      (source
-        (origin
-          (method git-fetch)
-          (uri (git-reference
-                 (url "https://github.com/genenetwork/rust-qtlreaper.git")
-                 (commit commit)))
-          (file-name (git-file-name name version))
-          (sha256
-           (base32
-            "1p7dmxh43ly0k7q6va0lzisqnk1i7af3dy5aw1sr4y5s7z0h6i0y"))))
-      (build-system cargo-build-system)
-      (arguments
-       `(#:cargo-inputs
-         (("rust-rand" ,rust-rand-0.6)
-          ("rust-structopt" ,rust-structopt-0.2)
-          ("rust-rayon" ,rust-rayon-1)
-          ("rust-serde" ,rust-serde-1)
-          ("rust-serde-json" ,rust-serde-json-1)
-          ("rust-ndarray" ,rust-ndarray-0.12))
-         #:phases
-         (modify-phases %standard-phases
-           ;; Test results vary based on the machine running them.
-           (replace 'check
-             (lambda _
-               (or (assoc-ref %standard-phases 'check)
-                   (begin
-                     (substitute* "src/geneobject.rs"
-                       ;; array![Genotype::Unk, Genotype::Unk, Genotype::Pat]
-                       (("0.3421367343627405") "0.3421367343627406")
-                       ;; array![Genotype::Unk, Genotype::Unk, Genotype::Unk]
-                       (("-0.3223330030526561") "-0.32233300305265566"))
-                     (assoc-ref %standard-phases 'check)))
-               #t)))))
-      (home-page "https://github.com/genenetwork/rust-qtlreaper")
-      (synopsis "Reimplementation of genenetwork/QTLReaper in Rust")
-      (description "Reimplementation of genenetwork/QTLReaper in Rust")
-      (license #f))))
-
-; Tests on the upstream python-pengouin package are broken. So, we
-; create this temporary workaround.
-(define python-pingouin-without-tests
- (package
-   (inherit python-pingouin)
-   (arguments
-    (substitute-keyword-arguments (package-arguments python-pingouin)
-      ((#:tests? _ #f) #f)))))
-
 (define-public genenetwork3
   (let ((commit "e6c44577b2489f7b1523cb6a5fd332015bde25c5")
         (revision "5"))