From b64c564c0d7719732e672116269690c4d00d3422 Mon Sep 17 00:00:00 2001
From: Raoul Jean Pierre Bonnal <ilpuccio.febo@gmail.com>
Date: Tue, 27 Dec 2016 09:32:42 +0100
Subject: [PATCH] Add r-scran 1.2.0 and all its dependencies

---
 gnu/packages/bioinformatics.scm | 132 ++++++++++++++++++++++++++++++++++
 gnu/packages/statistics.scm     | 156 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 288 insertions(+)

diff --git a/gnu/packages/bioinformatics.scm b/gnu/packages/bioinformatics.scm
index 912941e..d20da9a 100644
--- a/gnu/packages/bioinformatics.scm
+++ b/gnu/packages/bioinformatics.scm
@@ -7876,3 +7876,135 @@ replacement for strverscmp.")
 samples into a single report.  It contains modules for a large number of
 common bioinformatics tools.")
     (license license:gpl3)))
+
+(define-public r-scran 
+(package
+  (name "r-scran")
+  (version "1.2.0")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (bioconductor-uri "scran" version))
+      (sha256
+        (base32
+          "1wnsmp46x9zgbiacf9hxhpy42gxbvwf8q2x6dchc3r9g4p2s65c5"))))
+  (build-system r-build-system)
+  (propagated-inputs
+    `(("r-biobase" ,r-biobase)
+      ("r-biocgenerics" ,r-biocgenerics)
+      ("r-biocparallel" ,r-biocparallel)
+      ("r-dynamictreecut" ,r-dynamictreecut)
+      ("r-edger" ,r-edger)
+      ("r-scater" ,r-scater)
+      ("r-shiny" ,r-shiny)
+      ("r-statmod" ,r-statmod)
+      ("r-zoo" ,r-zoo)))
+  (home-page
+    "http://bioconductor.org/packages/scran")
+  (synopsis
+    "Methods for Single-Cell RNA-Seq Data Analysis")
+  (description
+    "Implements a variety of low-level analyses of single-cell RNA-seq data.  Methods are provided for normalization of cell-specific biases, assignment of cell cycle phase, and detection of highly variable and significantly correlated genes.")
+  (license license:gpl3)))
+
+(define-public r-scater
+(package
+  (name "r-scater")
+  (version "1.2.0")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (bioconductor-uri "scater" version))
+      (sha256
+        (base32
+          "0pambafir3aqpgk7kdq5i2pn0278d97bn2qb9712c0jivw363whf"))))
+  (build-system r-build-system)
+  (propagated-inputs
+    `(("r-biobase" ,r-biobase)
+      ("r-biocgenerics" ,r-biocgenerics)
+      ("r-biomart" ,r-biomart)
+      ("r-data-table" ,r-data-table)
+      ("r-dplyr" ,r-dplyr)
+      ("r-edger" ,r-edger)
+      ("r-ggbeeswarm" ,r-ggbeeswarm)
+      ("r-ggplot2" ,r-ggplot2)
+      ("r-limma" ,r-limma)
+      ("r-matrixstats" ,r-matrixstats)
+      ("r-plyr" ,r-plyr)
+      ("r-reshape2" ,r-reshape2)
+      ("r-rhdf5" ,r-rhdf5)
+      ("r-rjson" ,r-rjson)
+      ("r-shiny" ,r-shiny)
+      ("r-shinydashboard" ,r-shinydashboard)
+      ("r-tximport" ,r-tximport)
+      ("r-viridis" ,r-viridis)))
+  (home-page "https://github.com/davismcc/scater")
+  (synopsis
+    "Single-cell analysis toolkit for gene expression data in R")
+  (description
+    "This package provides a collection of tools for doing various analyses of single-cell RNA-seq gene expression data, with a focus on quality control.")
+  (license license:gpl2+)))
+
+(define-public r-rhdf5
+(package
+  (name "r-rhdf5")
+  (version "2.18.0")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (bioconductor-uri "rhdf5" version))
+      (sha256
+        (base32
+          "0pb04li55ysag30s7rap7nnivc0rqmgsmpj43kin0rxdabfn1w0k"))))
+  (build-system r-build-system)
+  (arguments
+   `(#:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'unpack-smallhdf5
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* (
+               (out (assoc-ref %outputs "out"))
+               (name "src/hdf5source/hdf5small.tgz")
+               (tar (string-append (assoc-ref %build-inputs "tar") "/bin/tar")))
+             (begin
+               (system* tar "-xzvf" name "-C" "src/" )
+               (substitute* "src/Makevars"
+                 (("^.*cd hdf5source &&.*$") "")
+                 (("^.*gunzip -dc hdf5small.tgz.*$") "")
+                 (("^.*rm -rf hdf5.*$") "")
+                 (("^.*mv hdf5source/hdf5 ..*$") ""))
+               (substitute* "src/hdf5/configure"
+                 (("/bin/mv") "mv"))
+)
+))))))
+  (propagated-inputs `(("r-zlibbioc" ,r-zlibbioc)))
+  (inputs
+   `(("tar" ,tar)
+     ("perl" ,perl)
+     ("zlib" ,zlib)))
+  (home-page
+    "http://bioconductor.org/packages/rhdf5")
+  (synopsis "HDF5 interface to R")
+  (description
+    "This R/Bioconductor package provides an interface between HDF5 and R.  HDF5's main features are the ability to store and access very large and/or complex datasets and a wide variety of metadata on mass storage (disk) through a completely portable file format.  The rhdf5 package is thus suited for the exchange of large and/or complex datasets between R and other software package, and for letting R applications work on datasets that are larger than the available RAM.")
+  (license license:artistic2.0)))
+
+(define-public r-tximport
+(package
+  (name "r-tximport")
+  (version "1.2.0")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (bioconductor-uri "tximport" version))
+      (sha256
+        (base32
+          "1k5a7dad6zqg936s17f6cmwgqp11x24z9zhxndsgwbscgpyhpcb0"))))
+  (build-system r-build-system)
+  (home-page
+    "http://bioconductor.org/packages/tximport")
+  (synopsis
+    "Import and summarize transcript-level estimates for gene-level analysis")
+  (description
+    "Imports transcript-level abundance, estimated counts and transcript lengths, and summarizes into matrices for use with downstream gene-level analysis packages.  Average transcript length, weighted by sample-specific transcript abundance estimates, is provided as a matrix which can be used as an offset for different expression of gene-level counts.")
+  (license license:gpl2)))
diff --git a/gnu/packages/statistics.scm b/gnu/packages/statistics.scm
index f868da2..20be97e 100644
--- a/gnu/packages/statistics.scm
+++ b/gnu/packages/statistics.scm
@@ -3815,3 +3815,159 @@ with alternating row colors) in LaTeX and HTML formats easily from
 @code{glm}, @code{coxph}, @code{nls}, @code{fitdistr}, @code{mytable} and
 @code{cbind.mytable} objects.")
     (license license:gpl2+)))
+
+(define-public r-shiny
+(package
+  (name "r-shiny")
+  (version "0.14.2")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (cran-uri "shiny" version))
+      (sha256
+        (base32
+          "1sx8c490hbj7lsmvwwq5p4a32dcz4fp4wp1zvaaf2pfg713pk593"))))
+  (build-system r-build-system)
+  (propagated-inputs
+    `(("r-digest" ,r-digest)
+      ("r-htmltools" ,r-htmltools)
+      ("r-httpuv" ,r-httpuv)
+      ("r-jsonlite" ,r-jsonlite)
+      ("r-mime" ,r-mime)
+      ("r-r6" ,r-r6)
+      ("r-sourcetools" ,r-sourcetools)
+      ("r-xtable" ,r-xtable)))
+  (home-page "http://shiny.rstudio.com")
+  (synopsis "Web Application Framework for R")
+  (description
+    "Makes it incredibly easy to build interactive web applications with R.  Automatic \"reactive\" binding between inputs and outputs and extensive pre-built widgets make it possible to build beautiful, responsive, and powerful applications with minimal effort.")
+  (license license:gpl3)))
+
+(define-public r-statmod
+(package
+  (name "r-statmod")
+  (version "1.4.27")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (cran-uri "statmod" version))
+      (sha256
+        (base32
+          "14yilq9d3z20hig4rs8bjqyydw3dfx90mhmzvw9w8p16h0s595sn"))))
+  (build-system r-build-system)
+  (home-page
+    "http://cran.r-project.org/web/packages/statmod")
+  (inputs
+     `(;; We need not only cairo here, but pango to ensure that tests for the
+       ;; "cairo" bitmapType plotting backend succeed.
+       ("gfortran" ,gfortran)))
+  (synopsis "Statistical Modeling")
+  (description
+    "This package provides a collection of algorithms and functions to aid statistical modeling.  Includes growth curve comparisons, limiting dilution analysis (aka ELDA), mixed linear models, heteroscedastic regression, inverse-Gaussian probability calculations, Gauss quadrature and a secure convergence algorithm for nonlinear models.  Includes advanced generalized linear model functions that implement secure convergence, dispersion modeling and Tweedie power-law families.")
+  (license license:gpl3)))
+
+(define-public r-ggbeeswarm
+(package
+  (name "r-ggbeeswarm")
+  (version "0.5.3")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (cran-uri "ggbeeswarm" version))
+      (sha256
+        (base32
+          "1jgp55rvmzc4agcrlsjn8m5lk85di9c4wj94xzikqkql4lvq3qpd"))))
+  (build-system r-build-system)
+  (propagated-inputs
+    `(("r-beeswarm" ,r-beeswarm)
+      ("r-ggplot2" ,r-ggplot2)
+      ("r-vipor" ,r-vipor)))
+  (home-page
+    "https://github.com/eclarke/ggbeeswarm")
+  (synopsis
+    "Categorical Scatter (Violin Point) Plots")
+  (description
+    "Provides two methods of plotting categorical scatter plots such that the arrangement of points within a category reflects the density of data at that region, and avoids over-plotting.")
+  (license license:gpl2+)))
+
+(define-public r-shinydashboard
+(package
+  (name "r-shinydashboard")
+  (version "0.5.3")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (cran-uri "shinydashboard" version))
+      (sha256
+        (base32
+          "0anw22qxbis69zm0ls6alsc3ann27hvgs5mv1wvr4ppk7q8cg4l2"))))
+  (build-system r-build-system)
+  (propagated-inputs
+    `(("r-htmltools" ,r-htmltools)
+      ("r-shiny" ,r-shiny)))
+  (home-page
+    "http://rstudio.github.io/shinydashboard/")
+  (synopsis "Create Dashboards with 'Shiny'")
+  (description
+    "Create dashboards with 'Shiny'.  This package provides a theme on top of 'Shiny', making it easy to create attractive dashboards.")
+  (license license:gpl2)))
+
+(define-public r-sourcetools
+(package
+  (name "r-sourcetools")
+  (version "0.1.5")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (cran-uri "sourcetools" version))
+      (sha256
+        (base32
+          "0jx6kslygfqaic3cmjwag3dy98q1a2dw20cz7z8agsknmmbk6dy2"))))
+  (build-system r-build-system)
+  (home-page
+    "http://cran.r-project.org/web/packages/sourcetools")
+  (synopsis
+    "Tools for Reading, Tokenizing and Parsing R Code")
+  (description
+    "Tools for the reading and tokenization of R code.  The 'sourcetools' package provides both an R and C++ interface for the tokenization of R code, and helpers for interacting with the tokenized representation of R code.")
+  (license license:expat)))
+
+(define-public r-beeswarm
+(package
+  (name "r-beeswarm")
+  (version "0.2.3")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (cran-uri "beeswarm" version))
+      (sha256
+        (base32
+          "0hy89bwv7jixlg91li1fywa77916am2whqp1m1fx1khd45g44581"))))
+  (build-system r-build-system)
+  (home-page
+    "http://www.cbs.dtu.dk/~eklund/beeswarm/")
+  (synopsis
+    "The Bee Swarm Plot, an Alternative to Stripchart")
+  (description
+    "The bee swarm plot is a one-dimensional scatter plot like \"stripchart\", but with closely-packed, non-overlapping points.")
+  (license license:artistic2.0)))
+
+(define-public r-vipor
+(package
+  (name "r-vipor")
+  (version "0.4.4")
+  (source
+    (origin
+      (method url-fetch)
+      (uri (cran-uri "vipor" version))
+      (sha256
+        (base32
+          "0p1z9a3fazl78pj8a1i2n62v8hrs8cinq82j9wpawhmfkn3dggss"))))
+  (build-system r-build-system)
+  (home-page
+    "http://cran.r-project.org/web/packages/vipor")
+  (synopsis
+    "Plot Categorical Data Using Quasirandom Noise and Density Estimates")
+  (description
+    "Generate a violin point plot, a combination of a violin/histogram plot and a scatter plot by offsetting points within a category based on their density using quasirandom noise.")
+  (license license:gpl2+)))
-- 
1.9.1

