summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--guix/import/cran.scm13
1 files changed, 13 insertions, 0 deletions
diff --git a/guix/import/cran.scm b/guix/import/cran.scm
index 1adffc4fbb..2de1cd9dba 100644
--- a/guix/import/cran.scm
+++ b/guix/import/cran.scm
@@ -457,6 +457,19 @@ dependencies."
             (any predicate uris))
            (_ #f)))))
 
+(define (bioconductor-experiment-package? package)
+  "Return true if PACKAGE is an R experiment package from Bioconductor."
+  (let ((predicate (lambda (uri)
+                     (and (string-prefix? "http://bioconductor.org" uri)
+                          (string-contains uri "/data/experiment/")))))
+    (and (string-prefix? "r-" (package-name package))
+         (match (and=> (package-source package) origin-uri)
+           ((? string? uri)
+            (predicate uri))
+           ((? list? uris)
+            (any predicate uris))
+           (_ #f)))))
+
 (define %cran-updater
   (upstream-updater
    (name 'cran)