From mboxrd@z Thu Jan 1 00:00:00 1970 From: zimoun Subject: Re: bioinformatics.scm vs bioconductor.scm ? Date: Tue, 18 Dec 2018 06:31:44 -0500 Message-ID: References: <87a7lb5rza.fsf@elephly.net> <87y38u52xq.fsf@elephly.net> Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:50490) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gZIql-0001f8-Bl for guix-devel@gnu.org; Tue, 18 Dec 2018 12:08:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gZIqj-00031H-Jx for guix-devel@gnu.org; Tue, 18 Dec 2018 12:08:07 -0500 Received: from mail-wm1-x32a.google.com ([2a00:1450:4864:20::32a]:51733) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gZIqj-00030w-BS for guix-devel@gnu.org; Tue, 18 Dec 2018 12:08:05 -0500 Received: by mail-wm1-x32a.google.com with SMTP id b11so3362312wmj.1 for ; Tue, 18 Dec 2018 09:08:05 -0800 (PST) In-Reply-To: <87y38u52xq.fsf@elephly.net> List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Ricardo Wurmus Cc: Guix Devel Dear Ricardo, Thank you for your explanations. > > And I am asking myself if a massive import from Bioconductor should be > > possible ? > > Certainly! I=E2=80=99ve done this before actually, but I hit two minor > problems: > > 1. the bioconductor recursive importer does not *automatically* switch > to =E2=80=9CCRAN mode=E2=80=9D when a dependent package isn=E2=80=99t = found on Bioconductor. > Not a big problem, but it means that teh import isn=E2=80=99t fully > automatic. I am not sure to understand. Is the bioconductor importer usable from `guix import` ? I have tried once by hand; to understand step by step. :-) Thank Pierre for the nice tutorial ! see the package definition below. > 2. compiling big Guile modules (such as a future (gnu packages cran)) > require lots of memory since Guile 2.2(?), so I didn=E2=80=99t add all= these > packages. This is a bug and we=E2=80=99d have to split the module, pr= obably, > to work around it. Ok, even if I have no clue to work around. So as I need the FlowCore package to process data from cytometry, let start my first attempt with this one. :-) This package is on Bioconductor: https://bioconductor.org/packages/release/bioc/html/flowCore.html Then define the package by hand was straightforward! :-) I am not sure to be compliant... Basically, I have just copied/pasted the modules from bioinformatics.scm (or bioconductor.scm), then I have look for if the dependency was already there. Missing r-corpcor from CRAN, so `guix import cran`. Hum, the package BiocGenerics needs the version >=3D 0.1.14, and it is not defined in the package. Then, the package grDevices, graphics, methods, stats, stats4 are required (see bioconductor webpage) but not defined elsewhere. Is it good ? What is the convention about license ? (license name) or (license license:name) Well, then I have run guix package --install-from-file=3Dmy.scm and it seems to works, I mean the first examples from the vignette do not complain. ;-) Thank you for any comment. All the best simon -- (define-module (gnu packages my-bioinformatics) #:use-module ((guix licenses) #:prefix license:) #:use-module (guix packages) #:use-module (guix utils) #:use-module (guix download) #:use-module (guix git-download) #:use-module (guix hg-download) #:use-module (guix build-system ant) #:use-module (guix build-system gnu) #:use-module (guix build-system cmake) #:use-module (guix build-system haskell) #:use-module (guix build-system ocaml) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix build-system r) #:use-module (guix build-system ruby) #:use-module (guix build-system scons) #:use-module (guix build-system trivial) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages algebra) #:use-module (gnu packages base) #:use-module (gnu packages bash) #:use-module (gnu packages bison) #:use-module (gnu packages bioconductor) #:use-module (gnu packages bioinformatics) #:use-module (gnu packages boost) #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages cpio) #:use-module (gnu packages cran) #:use-module (gnu packages curl) #:use-module (gnu packages documentation) #:use-module (gnu packages databases) #:use-module (gnu packages datastructures) #:use-module (gnu packages file) #:use-module (gnu packages flex) #:use-module (gnu packages gawk) #:use-module (gnu packages gcc) #:use-module (gnu packages gd) #:use-module (gnu packages gtk) #:use-module (gnu packages glib) #:use-module (gnu packages graph) #:use-module (gnu packages groff) #:use-module (gnu packages guile) #:use-module (gnu packages haskell) #:use-module (gnu packages haskell-check) #:use-module (gnu packages haskell-web) #:use-module (gnu packages image) #:use-module (gnu packages imagemagick) #:use-module (gnu packages java) #:use-module (gnu packages jemalloc) #:use-module (gnu packages dlang) #:use-module (gnu packages linux) #:use-module (gnu packages logging) #:use-module (gnu packages machine-learning) #:use-module (gnu packages man) #:use-module (gnu packages maths) #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) #:use-module (gnu packages ocaml) #:use-module (gnu packages pcre) #:use-module (gnu packages parallel) #:use-module (gnu packages pdf) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) #:use-module (gnu packages protobuf) #:use-module (gnu packages python) #:use-module (gnu packages python-web) #:use-module (gnu packages readline) #:use-module (gnu packages ruby) #:use-module (gnu packages serialization) #:use-module (gnu packages shells) #:use-module (gnu packages statistics) #:use-module (gnu packages swig) #:use-module (gnu packages tbb) #:use-module (gnu packages tex) #:use-module (gnu packages texinfo) #:use-module (gnu packages textutils) #:use-module (gnu packages time) #:use-module (gnu packages tls) #:use-module (gnu packages vim) #:use-module (gnu packages web) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (srfi srfi-1) #:use-module (ice-9 match)) (define-public r-corpcor (package (name "r-corpcor") (version "1.6.9") (source (origin (method url-fetch) (uri (cran-uri "corpcor" version)) (sha256 (base32 "1hi3i9d3841snppq1ks5pd8cliq1b4rm4dpsczmfqvwksg8snkrf")))) (build-system r-build-system) (home-page "http://strimmerlab.org/software/corpcor/") (synopsis "Efficient Estimation of Covariance and (Partial) Correlation") (description "Implements a James-Stein-type shrinkage estimator for the covariance matrix, with separate shrinkage for variances and correlations. The details of the method are explained in Schafer and Strimmer (2005) and Opgen-Rhein and Strimmer (2007) . The approach is both computationally as well as statistically very efficient, it is applicable to \"small n, large p\" data, and always returns a positive definite and well-conditioned covariance matrix. In addition to inferring the covariance matrix the package also provides shrinkage estimators for partial correlations and partial variances. The inverse of the covariance and correlation matrix can be efficiently computed, as well as any arbitrary power of the shrinkage correlation matrix. Furthermore, functions are available for fast singular value decomposition, for computing the pseudoinverse, and for checking the rank and positive definiteness of a matrix.") (license license:gpl3+))) (define-public r-flowcore (package (name "r-flowcore") (version "1.48.0") (source (origin (method url-fetch) (uri (bioconductor-uri "flowCore" version)) (sha256 (base32 "16mh3xlrcxkrqvhv3pry325jzsz97yg84ya8rpvd2lvlpqrz6k3h")))) (build-system r-build-system) (propagated-inputs `( ("r-biobase" ,r-biobase) ("r-biocgenerics" ,r-biocgenerics) ("r-biocmanager" ,r-biocmanager) ("r-bh" ,r-bh) ("r-graph" ,r-graph) ("r-rrcov" ,r-rrcov) ("r-r-utils" ,r-r-utils) ("r-corpcor" ,r-corpcor) ("r-rcpp" ,r-rcpp) ("r-matrixstats" ,r-matrixstats) ("r-mass" ,r-mass) )) (inputs `(("zlib" ,zlib))) (home-page "https://bioconductor.org/packages/flowCore") (synopsis "Basic structures for flow cytometry data") (description "Provides S4 data structures and basic functions to deal with flow cytometry data.") (license license:artistic2.0))) ;;BiocGenerics(>=3D 0.1.14), ;; grDevices, ;; graphics, methods, ;; stats, stats4, r-flowcore