GNU bug report logs - #71031
[PATCH] Added r-mcview

Previous Next

Package: guix-patches;

Reported by: guix <at> mawumag.com

Date: Sat, 18 May 2024 09:51:03 UTC

Severity: normal

Tags: patch

Done: Ricardo Wurmus <rekado <at> elephly.net>

To reply to this bug, email your comments to 71031 AT debbugs.gnu.org.
There is no need to reopen the bug first.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#71031; Package guix-patches. (Sat, 18 May 2024 09:51:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to guix <at> mawumag.com:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sat, 18 May 2024 09:51:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: guix <at> mawumag.com
To: guix-patches <at> gnu.org
Cc: rekado <at> elephly.net
Subject: [PATCH] Added r-mcview
Date: Sat, 18 May 2024 07:50:46 +0000
From b6eec887067b4c4697fad3cae4f11fabc6330a86 Mon Sep 17 00:00:00 2001
From: Marco Baggio <guix <at> mawumag.com>
Date: Sat, 18 May 2024 09:23:07 +0200
Subject: [PATCH] Added r-mcview

Change-Id: I377b7fd2256215ddcad73f4263bab251bd4319cd
---

I added the package MCView, used to generate shiny apps for metacell models,
as well as dependencies not yet present in the official Guix repository.

---
 gnu/packages/bioinformatics.scm | 314 ++++++++++++++++++++++++++++++++
 1 file changed, 314 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 6aa35710e5..a696a5df29 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -12228,6 +12228,320 @@ (define-public r-shinycell
 single-cell data.")
       (license license:gpl3))))
 
+(define-public r-mcview
+  (let ((commit "85a61fe6efa241ac72f79fb965c3227538ead518")
+	(revision "1"))
+    (package
+      (name "r-mcview")
+      (version (git-version "0.2.28" revision commit))
+      (source
+       (origin
+	 (method git-fetch)
+	 (uri (git-reference
+	       (url "https://github.com/tanaylab/MCView")
+	       (commit commit)))
+	 (file-name (git-file-name name version))
+	 (sha256
+	  (base32 "187q6qy8ss0g6h3c0ckw9ypq8615bk5yypfl5l4rq6dzaflm4iba"))))
+      (properties `((upstream-name . "MCView")))
+      (build-system r-build-system)
+      (propagated-inputs (list r-anndata
+			       r-cachem
+			       r-chameleon
+			       r-circlize
+			       r-cli
+			       r-colourpicker
+			       r-cowplot
+			       r-dplyr
+			       r-dt
+			       r-fastcluster
+			       r-forcats
+			       r-fs
+			       r-furrr
+			       r-future
+			       r-gert
+			       r-ggplot2
+			       r-ggtext
+			       r-glue
+			       r-golem
+			       r-htmltools
+			       r-markdown
+			       r-matrix
+			       r-matrixstats
+			       r-pkgload
+			       r-plotly
+			       r-promises
+			       r-purrr
+			       r-qs
+			       r-rintrojs
+			       r-rlang
+			       r-rmarkdown
+			       r-scales
+			       r-shiny
+			       r-shinybusy
+			       r-shinycssloaders
+			       r-shinydashboard
+			       r-shinydashboardplus
+			       r-shinyjqui
+			       r-shinyjs
+			       r-shinywidgets
+			       r-slanter
+			       r-tglkmeans
+			       r-tgstat
+			       r-tgutil
+			       r-tibble
+			       r-tidyr
+			       r-umap
+			       r-viridis
+			       r-waiter
+			       r-yaml
+			       r-zip))
+      (native-inputs (list r-knitr))
+      (home-page "https://github.com/tanaylab/MCView")
+      (synopsis "Shiny App for Metacell Analysis")
+      (description
+       "MCView creates a shiny-app facilitating interactive exploration and annotation
+of metacell models.  Metacell itself is described
+[here](https://github.com/tanaylab/metacells/blob/master/vignettes/Metacells_Vignette.ipynb).
+ You can also explore examples of MCV output for
+[PBMC](https://tanaylab.weizmann.ac.il/MCV/PBMC) and [Mouse
+organogenesis](https://tanaylab.weizmann.ac.il/MCV/MOCA) on the Tanay group
+server.")
+      (license license:expat))))
+
+(define-public r-chameleon
+  (package
+    (name "r-chameleon")
+    (version "0.2-3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "chameleon" version))
+       (sha256
+        (base32 "0a3azp0zaakpqqx0pp94hkj3vgb2apnf8gb5ga0as4i8lrn9dz8i"))))
+    (properties `((upstream-name . "chameleon")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-clue r-ggplot2 r-umap))
+    (native-inputs (list r-knitr))
+    (home-page "https://cran.r-project.org/package=chameleon")
+    (synopsis "Automatic Colors for Multi-Dimensional Data")
+    (description
+     "Assign distinct colors to arbitrary multi-dimensional data, considering its
+structure.")
+    (license license:expat)))
+
+(define-public r-shinybusy
+  (package
+    (name "r-shinybusy")
+    (version "0.3.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "shinybusy" version))
+       (sha256
+        (base32 "1bjfi5xdidj8n84mylghvrncvcyg625kj8pnizl59m649k3n10v2"))))
+    (properties `((upstream-name . "shinybusy")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-htmltools r-htmlwidgets r-jsonlite r-shiny))
+    (native-inputs (list esbuild r-knitr))
+    (home-page "https://github.com/dreamRs/shinybusy")
+    (synopsis "Busy Indicators and Notifications for 'Shiny' Applications")
+    (description
+     "Add indicators (spinner, progress bar, gif) in your shiny applications to show
+the user that the server is busy.  And other tools to let your users know
+something is happening (send notifications, reports, ...).")
+    (license license:gpl3)))
+
+(define-public r-shinydashboardplus
+  (package
+    (name "r-shinydashboardplus")
+    (version "2.0.3")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "shinydashboardPlus" version))
+              (sha256
+               (base32
+                "10sdb1vddx2ij867pqijr63l4233hw1vnn7mzbs0z23g77x8ra29"))
+              (modules '((guix build utils)))
+              (snippet
+               `(begin
+                  (with-directory-excursion
+                      ,(string-append "inst/shinydashboardPlus-" version
+                                      "/js/")
+                    (for-each delete-file
+                              '("app.min.js"
+                                "shinydashboardPlus.min.js"
+                                "shinydashboardPlus.min.js.map")))
+                  (with-directory-excursion "inst/materialDesign-1.0/js"
+                    (for-each delete-file
+                              '("material.min.js"
+                                "ripples.min.js")))))))
+    (properties `((upstream-name . "shinydashboardPlus")))
+    (build-system r-build-system)
+    (arguments
+     (list
+      #:tests? #false
+      #:modules
+      '((guix build r-build-system)
+        (guix build minify-build-system)
+        (guix build utils)
+        (ice-9 match))
+      #:imported-modules
+      `(,@%r-build-system-modules
+        (guix build minify-build-system))
+      #:phases
+      #~(modify-phases (@ (guix build r-build-system) %standard-phases)
+          (add-after 'unpack 'process-javascript
+            (lambda* (#:key inputs #:allow-other-keys)
+              (with-directory-excursion
+                  (string-append "inst/shinydashboardPlus-" #$version "/js/")
+                (for-each
+                 (match-lambda
+                   ((source . target)
+                    (minify source #:target target)))
+                 `(("app.js" . "app.min.js")
+                   ("shinydashboardPlus.js" . "shinydashboardPlus.min.js")
+                   (,(search-input-file inputs "/dist/js/material.js")
+                    . "materialDesign-1.0/js/material.min.js")
+                   (,(search-input-file inputs "/dist/js/ripples.js")
+                    . "materialDesign-1.0/js/ripples.min.js")))))))))
+    (propagated-inputs
+     (list r-fresh
+           r-htmltools
+           r-lifecycle
+           r-shiny
+           r-shinydashboard
+           r-waiter))
+    (native-inputs
+     (list esbuild
+           r-knitr
+           (let ((commit "92a2284b47aed56a9d7ae92cf9b40072d27982b3"))
+             (origin
+               (method git-fetch)
+               (uri (git-reference
+                     (url "https://github.com/DucThanhNguyen/MaterialAdminLTE")
+                     (commit commit)))
+               (file-name (git-file-name "MaterialAdminLTE"
+                                         (git-version "0" "0" commit)))
+               (sha256
+                (base32
+                 "0cn11hxpf25h7xj2lk473z24swgz979dz255zwk2m2fj00iljkn9"))))))
+    (home-page "https://github.com/RinteRface/shinydashboardPlus")
+    (synopsis "Add more AdminLTE2 components to shinydashboard")
+    (description
+     "This package extends shinydashboard with AdminLTE2 components.
+AdminLTE2 is a Bootstrap 3 dashboard template.  Customize boxes, add timelines
+and a lot more.")
+    (license license:gpl2+)))
+
+(define-public r-shinywidgets
+  (package
+    (name "r-shinywidgets")
+    (version "0.8.3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "shinyWidgets" version))
+       (sha256
+        (base32 "02z8fwvnmi6lacqi6ryxssm1w3mh4vfphjrp3v1d6dij3s3l6z0q"))))
+    (properties `((upstream-name . "shinyWidgets")))
+    (build-system r-build-system)
+    (propagated-inputs
+     (list r-anytime
+           r-bslib
+           r-htmltools
+           r-jsonlite
+           r-rlang
+           r-sass
+           r-shiny))
+    (home-page "https://github.com/dreamRs/shinyWidgets")
+    (synopsis "Custom inputs widgets for Shiny")
+    (description
+     "This package provides a collection of custom input controls and user
+interface components for Shiny applications.")
+    (license license:gpl3)))
+
+(define-public r-slanter
+  (package
+    (name "r-slanter")
+    (version "0.2-0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "slanter" version))
+       (sha256
+        (base32 "024dkman0r5qzc215gw0ds932vdaz8krrhv64fjw9pni37ixc3mf"))))
+    (properties `((upstream-name . "slanter")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-matrix r-pheatmap r-pracma))
+    (native-inputs (list r-knitr))
+    (home-page "https://cran.r-project.org/package=slanter")
+    (synopsis "Slanted Matrices and Ordered Clustering")
+    (description
+     "Slanted matrices and ordered clustering for better visualization of similarity
+data.")
+    (license license:expat)))
+
+(define-public r-tglkmeans
+  (package
+    (name "r-tglkmeans")
+    (version "0.5.4")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (cran-uri "tglkmeans" version))
+       (sha256
+        (base32 "1plg03k9r4sp8ck5qcj8shblr8378bynyyc7yqwcqv856vkl9icd"))))
+    (properties `((upstream-name . "tglkmeans")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-cli
+                             r-dofuture
+                             r-dplyr
+                             r-future
+                             r-ggplot2
+                             r-magrittr
+                             r-matrix
+                             r-metacell
+                             r-plyr
+                             r-purrr
+                             r-rcpp
+                             r-rcppparallel
+                             r-tgstat
+                             r-tibble))
+    (native-inputs (list r-knitr))
+    (home-page "https://tanaylab.github.io/tglkmeans/")
+    (synopsis "Efficient Implementation of K-Means++ Algorithm")
+    (description
+     "Efficient implementation of K-Means++ algorithm.  For more information see (1)
+\"kmeans++ the advantages of the k-means++ algorithm\" by David Arthur and Sergei
+Vassilvitskii (2007), Proceedings of the eighteenth annual ACM-SIAM symposium on
+Discrete algorithms, Society for Industrial and Applied Mathematics,
+Philadelphia, PA, USA, pp.  1027-1035, and (2) \"The Effectiveness of Lloyd-Type
+Methods for the k-Means Problem\" by Rafail Ostrovsky, Yuval Rabani, Leonard J.
+Schulman and Chaitanya Swamy <doi:10.1145/2395116.2395117>.")
+    (license license:expat)))
+
+(define-public r-waiter
+  (package
+    (name "r-waiter")
+    (version "0.2.5")
+    (source (origin
+              (method url-fetch)
+              (uri (cran-uri "waiter" version))
+              (sha256
+               (base32
+                "0ya92qr25ssfkzn888b7rr8rn0304f3gz4h4pnc2a95rknbmxhls"))))
+    (properties `((upstream-name . "waiter")))
+    (build-system r-build-system)
+    (propagated-inputs (list r-htmltools r-r6 r-shiny))
+    (native-inputs (list r-knitr))
+    (home-page "https://waiter.john-coene.com/")
+    (synopsis "Loading screen for Shiny")
+    (description
+     "This package provides full screen and partial loading screens
+for Shiny with spinners, progress bars, and notifications.")
+    (license license:expat)))
+
 (define-public r-archr
   (let ((commit "c61b0645d1482f80dcc24e25fbd915128c1b2500")
         (revision "1"))
-- 
2.41.0






Reply sent to Ricardo Wurmus <rekado <at> elephly.net>:
You have taken responsibility. (Wed, 22 May 2024 17:45:01 GMT) Full text and rfc822 format available.

Notification sent to guix <at> mawumag.com:
bug acknowledged by developer. (Wed, 22 May 2024 17:45:02 GMT) Full text and rfc822 format available.

Message #10 received at 71031-done <at> debbugs.gnu.org (full text, mbox):

From: Ricardo Wurmus <rekado <at> elephly.net>
To: guix <at> mawumag.com
Cc: 71031-done <at> debbugs.gnu.org
Subject: Re: [PATCH] Added r-mcview
Date: Wed, 22 May 2024 19:44:06 +0200
Thank you for this excellent first contribution!

This one is a little tricky: mcview depends on r-waiter and
r-shinywidgets, both of which bundle a lot of minified JavaScript from
unknown sources.

Today I finished packaging r-waiter by replacing its use of webpack with
esbuild (for which we do have a usable package).  This required
modification of the esbuild package, which I did in a variant
"esbuild-node" to build and install the nodejs libraries.

Alas, I wasn't able to do the same for r-shinywidgets.  This package
still lives in Guix Science for this reason.

I split your patch into several commits, one for each package.  Those
packages that depend on things that are in Guix Science have been moved
there.  This includes r-mcview itself.  Everything else is now in Guix
proper.

I've moved packages from bioinformatics.scm to cran.scm where
appropriate (arranged roughly in alphabetic order).

Thanks again for this contribution and welcome to Guix!

-- 
Ricardo




This bug report was last modified 10 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.