(address . guix-patches@gnu.org)(address . rekado@elephly.net)
From b6eec887067b4c4697fad3cae4f11fabc6330a86 Mon Sep 17 00:00:00 2001
From: Marco Baggio <guix@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(+)
Toggle diff (327 lines)
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