Subject: [PATCH] gnu: Add python-torchdiffeq.

From: Navid Afkhami <[email-masked]>
Date: Wed, 21 May 2025 16:01:01 +0200

* gnu/packages/bioinformatics.scm (python-torchdiffeq): New variable.

Change-Id: Ic2ab73250b60f1733d2721ebd6d3abae719c5a1f
---
 gnu/packages/bioinformatics.scm | 35 +++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 72fa9d946f..18f929dff7 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -4056,6 +4056,41 @@ (define-public python-telomerecat
 telomerecat can produce an estimate in ~1 hour.")
     (license license:gpl3)))
 
+(define-public python-torchdiffeq
+  ;; There are neither releases, nor tags.
+  (let ((commit "a88aac53cae738addee44251288ce5be9a018af3")
+        (revision "0"))
+    (package
+      (name "python-torchdiffeq")
+      (version (git-version "0.2.5" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/rtqichen/torchdiffeq")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0c2zqbdxqvd5abfpk0im6rcy1ij39xvrmixc6l9znb6bhcxk2jra"))))
+      (build-system pyproject-build-system)
+      (arguments
+       `(#:phases (modify-phases %standard-phases
+                    (replace 'check
+                      (lambda* (#:key tests? #:allow-other-keys)
+                        (when tests?
+                          ;; Run all test files in 'tests/' but skip test_seminorm
+                          (apply invoke "pytest" "-k" "not test_seminorm"
+                                 (find-files "tests" "\\.py$"))))))))
+      (propagated-inputs (list python-numpy python-scipy python-pytorch))
+      (native-inputs (list python-pytest python-setuptools))
+      (home-page "https://github.com/rtqichen/torchdiffeq")
+      (synopsis "ODE solvers and adjoint sensitivity analysis in PyTorch")
+      (description
+       "This tool provides ordinary differential equation solvers implemented in PyTorch.
+Backpropagation through ODE solutions is supported using the adjoint method for constant
+memory cost.")
+      (license license:expat))))
+
 (define-public python-bioframe
   (package
     (name "python-bioframe")

base-commit: 450a361532573a02389530a6a80b7821683ed41b
-- 
2.39.5