diff options
-rw-r--r-- | README.md | 4 | ||||
-rw-r--r-- | delly-use-system-libraries.patch | 65 | ||||
-rw-r--r-- | gn/packages/afnumpy.scm | 84 | ||||
-rw-r--r-- | gn/packages/arrayfire.scm | 365 | ||||
-rw-r--r-- | gn/packages/beignet.scm | 158 | ||||
-rw-r--r-- | gn/packages/bioinformatics.scm | 1125 | ||||
-rw-r--r-- | gn/packages/clBLAS.scm | 164 | ||||
-rw-r--r-- | gn/packages/clFFT.scm | 158 | ||||
-rw-r--r-- | gn/packages/erlang.scm | 132 | ||||
-rw-r--r-- | gn/packages/genenetwork.scm | 298 | ||||
-rw-r--r-- | gn/packages/glfw.scm | 83 | ||||
-rw-r--r-- | gn/packages/gtest.scm | 76 | ||||
-rw-r--r-- | gn/packages/hyphy.scm | 84 | ||||
-rw-r--r-- | gn/packages/java.scm | 299 | ||||
-rw-r--r-- | gn/packages/llvm.scm | 65 | ||||
-rw-r--r-- | gn/packages/ocl-icd.scm | 99 | ||||
-rw-r--r-- | gn/packages/opencl-headers.scm | 63 | ||||
-rw-r--r-- | gn/packages/opencl-icd-loader.scm | 95 | ||||
-rw-r--r-- | gn/packages/openfyba.scm | 61 | ||||
-rw-r--r-- | gn/packages/pocl.scm | 328 | ||||
-rw-r--r-- | gn/packages/python.scm | 107 | ||||
-rw-r--r-- | gn/packages/ruby.scm | 2 | ||||
-rw-r--r-- | gn/packages/statistics.scm | 244 | ||||
-rw-r--r-- | htslib-add-cram_to_bam.patch | 27 |
24 files changed, 4035 insertions, 151 deletions
@@ -32,7 +32,7 @@ Install slurm with ## Module system -Install the module envirmonment with +Install the module environment with git clone https://github.com/genenetwork/guix-bioinformatics.git export GUIX_PACKAGE_PATH=$PWD/guix-bioinformatics/ @@ -44,7 +44,7 @@ Install the module envirmonment with ## python2-numarray 1.5.2 -Install the module envirmonment with +Install the module environment with git clone https://github.com/genenetwork/guix-bioinformatics.git export GUIX_PACKAGE_PATH=$PWD/guix-bioinformatics/ diff --git a/delly-use-system-libraries.patch b/delly-use-system-libraries.patch new file mode 100644 index 0000000..3ce817f --- /dev/null +++ b/delly-use-system-libraries.patch @@ -0,0 +1,65 @@ +This patch let's Delly use the system versions of htslib and boost. + +Patch by Roel Janssen <roel@gnu.org> +--- a/Makefile 2016-03-16 13:08:49.936706607 +0100 ++++ b/Makefile 2016-03-16 13:09:12.351706212 +0100 +@@ -9,8 +9,8 @@ + + # Flags + CXX=g++ +-CXXFLAGS += -isystem ${SEQTK_ROOT} -isystem ${BOOST_ROOT} -pedantic -W -Wall -Wno-unknown-pragmas +-LDFLAGS += -L${SEQTK_ROOT} -L${BOOST_ROOT}/stage/lib -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time ++CXXFLAGS += -pedantic -W -Wall -Wno-unknown-pragmas ++LDFLAGS += -lboost_iostreams -lboost_filesystem -lboost_system -lboost_program_options -lboost_date_time + + # Additional flags for release/debug + ifeq (${PARALLEL}, 1) +@@ -23,7 +23,7 @@ + ifeq (${STATIC}, 1) + LDFLAGS += -static -static-libgcc -pthread -lhts -lz + else +- LDFLAGS += -lhts -lz -Wl,-rpath,${SEQTK_ROOT},-rpath,${BOOST_ROOT}/stage/lib ++ LDFLAGS += -lhts -lz + endif + ifeq (${DEBUG}, 1) + CXXFLAGS += -g -O0 -fno-inline -DDEBUG +@@ -41,32 +41,24 @@ + DELLYSOURCES = $(wildcard src/*.h) $(wildcard src/*.cpp) + + # Targets +-TARGETS = .htslib .boost src/delly src/extract src/cov src/iover src/stats ++TARGETS = src/delly src/extract src/cov src/iover src/stats + + all: $(TARGETS) + +-.htslib: $(HTSLIBSOURCES) +- cd src/htslib && make && make lib-static && cd ../../ && touch .htslib +- +-.boost: $(BOOSTSOURCES) +- cd src/modular-boost && ./bootstrap.sh --prefix=${PWD}/src/modular-boost --without-icu --with-libraries=iostreams,filesystem,system,program_options,date_time && ./b2 && ./b2 headers && cd ../../ && touch .boost +- +-src/delly: .htslib .boost $(DELLYSOURCES) ++src/delly: $(DELLYSOURCES) + $(CXX) $(CXXFLAGS) $@.cpp -o $@ $(LDFLAGS) + +-src/extract: .htslib .boost $(DELLYSOURCES) ++src/extract: $(DELLYSOURCES) + $(CXX) $(CXXFLAGS) $@.cpp -o $@ $(LDFLAGS) + +-src/cov: .htslib .boost $(DELLYSOURCES) ++src/cov: $(DELLYSOURCES) + $(CXX) $(CXXFLAGS) $@.cpp -o $@ $(LDFLAGS) + +-src/iover: .htslib .boost $(DELLYSOURCES) ++src/iover: $(DELLYSOURCES) + $(CXX) $(CXXFLAGS) $@.cpp -o $@ $(LDFLAGS) + +-src/stats: .htslib .boost $(DELLYSOURCES) ++src/stats: $(DELLYSOURCES) + $(CXX) $(CXXFLAGS) $@.cpp -o $@ $(LDFLAGS) + + clean: +- cd src/htslib && make clean +- cd src/modular-boost && ./b2 --clean-all +- rm -f $(TARGETS) $(TARGETS:=.o) .htslib .boost ++ rm -f $(TARGETS) $(TARGETS:=.o) diff --git a/gn/packages/afnumpy.scm b/gn/packages/afnumpy.scm new file mode 100644 index 0000000..55c05ad --- /dev/null +++ b/gn/packages/afnumpy.scm @@ -0,0 +1,84 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages afnumpy) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages attr) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages databases) + #:use-module (gnu packages fontutils) + #:use-module (gnu packages ghostscript) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages gtk) + #:use-module (gnu packages icu4c) + #:use-module (gnu packages image) + #:use-module (gnu packages libffi) + #:use-module (gnu packages linux) + #:use-module (gnu packages maths) + #:use-module (gnu packages multiprecision) + #:use-module (gnu packages networking) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages pcre) + #:use-module (gnu packages perl) + #:use-module (gnu packages python) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages readline) + #:use-module (gnu packages statistics) + #:use-module (gnu packages texlive) + #:use-module (gnu packages texinfo) + #:use-module (gnu packages tls) + #:use-module (gnu packages web) + #:use-module (gnu packages xml) + #:use-module (gnu packages xorg) + #:use-module (gnu packages zip) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (guix build-system python) + #:use-module (guix build-system trivial)) + +(define-public afnumpy +(let ((commit "c5594c1")) +(package + (name "afnumpy") + (version (string-append "rel1-" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/FilipeMaia/afnumpy.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "0n30xn8cz0ww7czb3m6dz5sh87khan7ag3vb192narmxj37l8qy7")))) + (build-system python-build-system) + ;; (native-inputs + ;; `(("python-setuptools" ,python-setuptools))) + (arguments + `(#:python ,python-2 + #:tests? #f)) + (home-page "https://github.com/FilipeMaia/afnumpy") + (synopsis "Numerical library array processing of numbers, strings, records and objects") + (description + "A GPGPU-accelerated drop-in of python's numpy") + (license license:gpl2)))) diff --git a/gn/packages/arrayfire.scm b/gn/packages/arrayfire.scm new file mode 100644 index 0000000..361f2f0 --- /dev/null +++ b/gn/packages/arrayfire.scm @@ -0,0 +1,365 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages arrayfire) + #:use-module (guix packages) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (gnu packages) + #:use-module (guix utils) + #:use-module (gnu packages algebra) + #:use-module (gnu packages autotools) + #:use-module (gnu packages bootstrap) + #:use-module (gnu packages curl) + #:use-module (gnu packages gawk) + #:use-module (gnu packages cmake) + #:use-module (gnu packages boost) + #:use-module (gnu packages glib) + #:use-module (gnu packages image) + #:use-module (gnu packages video) + #:use-module (gnu packages textutils) + ;; #:use-module (gnu packages fftw) + ;; #:use-module (gnu packages fftw-openmpi) - in algebra + ;; #:use-module (gnu packages fftwf) + #:use-module (gnu packages gl) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) + #:use-module (gnu packages web) + #:use-module (gnu packages wget) + #:use-module (gnu packages python) + #:use-module (gnu packages ruby) + #:use-module (gnu packages xorg) + #:use-module (gnu packages version-control) + #:use-module (gnu packages zip) + #:use-module (gnu packages linux)) + +(define-public arrayfire +(package + (name "arrayfire") + (version "3.3.1") + (source (origin + (method url-fetch) + (uri (string-append "http://arrayfire.com/arrayfire_source/arrayfire-full-" version + ".tar.bz2")) + (file-name (string-append name "-" version ".tar.bz2")) + (sha256 + (base32 + "045adww6dqmyz6kkfmq7xawi5v9a894yp5j9pzn6j568gi48pyqc")))) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("gawk" ,gawk) + ("git" ,git) + ("glew" ,glew) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs `(("boost" ,boost) + ("glfw" ,glfw) + ("compute" ,compute) + ("curl" ,curl) + ("clBLAS" ,clBLAS) + ("clFFT" ,clFFT) + ("atlas" ,atlas) + ("dbus" ,dbus) + ("opencl-headers" ,opencl-headers) + ("ocl-icd" ,ocl-icd) + ("enca" ,enca) + ("eudev" ,eudev) + ("glew" ,glew) + ("glib" ,glib) + ("lapack" ,lapack) + ("scalapack" ,scalapack) + ("libcap" ,libcap) + ("libjpeg" ,libjpeg) + ("libltdl" ,libltdl) + ("libtiff" ,libtiff) + ("libyajl" ,libyajl) + ("mesa-utils" ,mesa-utils) + ("python" ,python-2) + ("freeimage" ,freeimage) + ("freeglut" ,freeglut) + ("fftw" ,fftw) + ("fftwf" ,fftwf) + ("fftw-openmpi" ,fftw-openmpi) + ("glew" ,glew) + ("glu" ,glu) + ("openblas" ,openblas) + ("wget" ,wget) + ("cmake" ,cmake))) + (build-system cmake-build-system) + (arguments + `(#:configure-flags '("-DBUILD_OPENCL=ON" "-DBUILD_CUDA=OFF" "-DBUILD_GRAPHICS=OFF" "-DUSE_SYSTEM_BOOST_COMPUTE=ON" "-DUSE_SYSTEM_CLBLAS=ON" "-DUSE_SYSTEM_CLFFT=ON") + #:tests? #t)) + (synopsis "ArrayFire: a general purpose GPU library. https://arrayfire.com") + (description "ArrayFire is a high performance software library for parallel computing with an easy-to-use API. Its array based function set makes parallel programming simple.Now on Guix") + (home-page "http://arrayfire.com/") + (license (list license:gpl2 + license:gpl2+ + license:gpl3 + license:gpl3+)))) + +(define-public glfw + (package + (name "glfw") + (version "3.1.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/glfw/glfw/archive/" + version ".tar.gz")) + (sha256 + (base32 + "08pixv8hd5xsccf7l8cqcijjqaq4k4da8qbp77wggal2fq445ika")))) + (build-system cmake-build-system) + (arguments `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON") + #:tests? #f)) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("cmake" ,cmake) + ("git" ,git) + ("libtool" ,libtool) + ("libpthread-stubs" ,libpthread-stubs) + ("pkg-config" ,pkg-config))) + (inputs `(("curl" ,curl) + ("dbus" ,dbus) + ("enca" ,enca) + ("eudev" ,eudev) + ("glew" ,glew) + ("libcap" ,libcap) + ("libjpeg" ,libjpeg) + ("libltdl" ,libltdl) + ("libtiff" ,libtiff) + ("mesa-utils" ,mesa-utils) + ("randrproto" ,randrproto) + ("libxrandr" ,libxrandr) + ("xineramaproto" ,xineramaproto) + ("libxinerama" ,libxinerama) + ("libxcursor" ,libxcursor) + ("python" ,python-2))) + (home-page "http://www.glfw.org/") + (synopsis "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.") + (description "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.") + (license (list license:gpl2)))) + +(define-public clBLAS + (package + (name "clBLAS") + (version "v2.10") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/clMathLibraries/clBLAS/archive/" + version ".tar.gz")) + (sha256 + (base32 + "0adlb02lqzrklfybhnv4n0p37mvkvdi3vqiwa05x2mv05ywnr93j")))) + (build-system cmake-build-system) + (arguments `(#:tests? #f + #:configure-flags '("../clBLAS-2.10/src" "-DBUILD_SHARED_LIBS=ON" "-DCMAKE_BUILD_TYPE=Release" "-DBUILD_TEST=OFF"))) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("cmake" ,cmake) + ("gfortran" ,gfortran) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs `(("curl" ,curl) + ("dbus" ,dbus) + ("boost" ,boost) + ("enca" ,enca) + ("eudev" ,eudev) + ("fftw-openmpi" ,fftw-openmpi) + ("glew" ,glew) + ("libcap" ,libcap) + ("libjpeg" ,libjpeg) + ("libltdl" ,libltdl) + ("libtiff" ,libtiff) + ("mesa-utils" ,mesa-utils) + ("openmpi" ,openmpi) + ("ocl-icd" ,ocl-icd) + ("opencl-headers" ,opencl-headers) + ("randrproto" ,randrproto) + ("libxrandr" ,libxrandr) + ("xineramaproto" ,xineramaproto) + ("libxinerama" ,libxinerama) + ("libxcursor" ,libxcursor) + ("python" ,python-2))) + (home-page "http://www.glfw.org/") + (synopsis "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.") + (description "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.") + (license (list license:gpl2)))) + +(define-public clFFT + (package + (name "clFFT") + (version "v2.10.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/clMathLibraries/clFFT/archive/" + version ".tar.gz")) + (sha256 + (base32 + "19hrk1lf06kch8x9dpbdj0waycn2mldrmj2y4vzi7zn2gdfw6g73")))) + (build-system cmake-build-system) + (arguments `(#:configure-flags '("../clFFT-2.10.1/src" "-DBUILD_SHARED_LIBS=ON" "-DCMAKE_BUILD_TYPE=Release") #:tests? #f)) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("cmake" ,cmake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs `(("curl" ,curl) + ("dbus" ,dbus) + ("enca" ,enca) + ("eudev" ,eudev) + ("fftw-openmpi" ,fftw-openmpi) + ("glew" ,glew) + ("libcap" ,libcap) + ("libjpeg" ,libjpeg) + ("libltdl" ,libltdl) + ("libtiff" ,libtiff) + ("mesa-utils" ,mesa-utils) + ("openmpi" ,openmpi) + ("ocl-icd" ,ocl-icd) + ("opencl-headers" ,opencl-headers) + ("randrproto" ,randrproto) + ("libxrandr" ,libxrandr) + ("xineramaproto" ,xineramaproto) + ("libxinerama" ,libxinerama) + ("libxcursor" ,libxcursor) + ("python" ,python-2))) + (home-page "http://www.glfw.org/") + (synopsis "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.") + (description "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.") + (license (list license:gpl2)))) + +(define-public compute + (package + (name "compute") + (version "v0.5") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/boostorg/compute/archive/" + version ".tar.gz")) + (sha256 + (base32 + "1r16zd1wdnn9gx278mkvr13k3i79hr35v6vj0fn7v3n92ngwxnhd")))) + (build-system cmake-build-system) + (arguments `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON" "-DCMAKE_BUILD_TYPE=Release") #:tests? #f)) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("cmake" ,cmake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs `(("curl" ,curl) + ("dbus" ,dbus) + ("enca" ,enca) + ("eudev" ,eudev) + ("fftw-openmpi" ,fftw-openmpi) + ("glew" ,glew) + ("boost" ,boost) + ("libcap" ,libcap) + ("libjpeg" ,libjpeg) + ("libltdl" ,libltdl) + ("libtiff" ,libtiff) + ("mesa-utils" ,mesa-utils) + ("openmpi" ,openmpi) + ("opencl-headers" ,opencl-headers) + ("ocl-icd" ,ocl-icd) + ("randrproto" ,randrproto) + ("libxrandr" ,libxrandr) + ("xineramaproto" ,xineramaproto) + ("libxinerama" ,libxinerama) + ("libxcursor" ,libxcursor) + ("python" ,python-2))) + (home-page "http://boost.org") + (synopsis "Peer-reviewed portable C++ source libraries,BoostCompute") + (description "Peer-reviewed portable C++ source libraries,BoostCompute") + (license (list license:x11-style)))) + +(define-public ocl-icd + (package + (name "ocl-icd") + (version "2.2.9") + (source (origin + (method url-fetch) + (uri (string-append "https://forge.imag.fr/frs/download.php/716/ocl-icd-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1rgaixwnxmrq2aq4kcdvs0yx7i6krakarya9vqs7qwsv5hzc32hc")))) + (inputs `(("zip" ,zip) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("ruby" ,ruby) + ("libtool" ,libtool) + ("opencl-headers" ,opencl-headers) + ("libgcrypt" ,libgcrypt))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack `bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (home-page "https://forge.imag.fr/projects/ocl-icd/") + (synopsis "OpenCL implementations are provided as ICD (Installable Client Driver).") + (description "OpenCL implementations are provided as ICD (Installable Client Driver). + An OpenCL program can use several ICD thanks to the use of an ICD Loader as provided by this project. + This free ICD Loader can load any (free or non free) ICD") + (license (list license:gpl2 license:ruby)))) + +(define-public opencl-headers +(let ((commit "c1770dc")) + (package + (name "opencl-headers") + (version (string-append "2.1-" commit )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KhronosGroup/OpenCL-Headers.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "0m9fkblqja0686i2jjqiszvq3df95gp01a2674xknlmkd6525rck")))) + (propagated-inputs '()) + (inputs '()) + (native-inputs '()) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (delete 'check) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (copy-recursively "." (string-append + (assoc-ref outputs "out") + "/include/CL"))))))) + (synopsis "The Khronos OpenCL headers") + (description "This package provides the Khronos OpenCL headers") + (home-page "https://www.khronos.org/registry/cl/") + (license (list license:gpl2))))) + + + + + diff --git a/gn/packages/beignet.scm b/gn/packages/beignet.scm new file mode 100644 index 0000000..a9e7a75 --- /dev/null +++ b/gn/packages/beignet.scm @@ -0,0 +1,158 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages beignet) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system cmake) + #:use-module (guix build-system gnu) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (guix utils) + #:use-module (gnu packages algebra) + #:use-module (gnu packages autotools) + #:use-module (gnu packages bootstrap) + #:use-module (gnu packages gawk) + #:use-module (gnu packages cmake) + #:use-module (gnu packages compression) + #:use-module (gnu packages glib) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages llvm) + #:use-module (gnu packages libedit) + #:use-module (gnu packages video) + #:use-module (gnu packages textutils) + #:use-module (gnu packages gl) + #:use-module (gnu packages ruby) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages maths) + #:use-module (gnu packages web) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages python) + #:use-module (gnu packages xorg) + #:use-module (gnu packages xdisorg) + #:use-module (gnu packages version-control) + #:use-module (gnu packages zip) + #:use-module (gnu packages linux)) + +(define-public beignet + (package + (name "beignet") + (version "1.1.1") + (source (origin + (method url-fetch) + (uri (string-append "https://01.org/sites/default/files/beignet-" + version "-source.tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "068i5srqpncfw0kklxdyzxcm5w56pi91jp7pkv6cglzvnjgcdx4v")))) + (inputs `(("autoconf" ,autoconf) + ("llvm" ,llvm-3.5) + ("libpthread-stubs", libpthread-stubs) + ("clang" ,clang-3.5) + ("libdrm" ,libdrm) + ("libtool" ,libtool) + ("libsm" ,libsm) + ("libxfixes" ,libxfixes) + ("libxext" ,libxext) + ("libedit" ,libedit) + ("xextproto" ,xextproto) + ("python" ,python-2) + ("opencl-headers" ,opencl-headers) + ("glu" ,glu) + ("zlib" ,zlib) + ("pkg-config" ,pkg-config) + ("freeglut" ,freeglut) + ("mesa-utils" ,mesa-utils) + ("ncurses" ,ncurses) + ("ocl-icd" ,ocl-icd))) + (build-system cmake-build-system) + (arguments `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release" "-DCOMPILER=CLANG") #:tests? #f)) + (home-page "https://forge.imag.fr/projects/ocl-icd/") + (synopsis "Intel's OpenCL framework") + (description "Intel's OpenCL framework that works with Intel IvyBridge GPUs and above") + (license license:gpl2))) + +(define-public ocl-icd + (package + (name "ocl-icd") + (version "2.2.9") + (source (origin + (method url-fetch) + (uri (string-append "https://forge.imag.fr/frs/download.php/716/ocl-icd-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1rgaixwnxmrq2aq4kcdvs0yx7i6krakarya9vqs7qwsv5hzc32hc")))) + (inputs `(("zip" ,zip) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("ruby" ,ruby) + ("libtool" ,libtool) + ("opencl-headers" ,opencl-headers) + ("libgcrypt" ,libgcrypt))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack `bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (home-page "https://forge.imag.fr/projects/ocl-icd/") + (synopsis "OpenCL implementations are provided as ICD (Installable Client Driver).") + (description "OpenCL implementations are provided as ICD (Installable Client Driver). + An OpenCL program can use several ICD thanks to the use of an ICD Loader as provided by this project. + This free ICD Loader can load any (free or non free) ICD") + (license license:gpl2))) + +(define-public opencl-headers +(let ((commit "c1770dc")) + (package + (name "opencl-headers") + (version (string-append "2.1-" commit )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KhronosGroup/OpenCL-Headers.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "0m9fkblqja0686i2jjqiszvq3df95gp01a2674xknlmkd6525rck")))) + (propagated-inputs '()) + (inputs '()) + (native-inputs '()) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (delete 'check) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (copy-recursively "." (string-append + (assoc-ref outputs "out") + "/include/CL"))))))) + (synopsis "The Khronos OpenCL headers") + (description "This package provides the Khronos OpenCL headers") + (home-page "https://www.khronos.org/registry/cl/") + (license license:gpl2)))) + + diff --git a/gn/packages/bioinformatics.scm b/gn/packages/bioinformatics.scm index 3629963..0798822 100644 --- a/gn/packages/bioinformatics.scm +++ b/gn/packages/bioinformatics.scm @@ -10,25 +10,40 @@ #:use-module (guix build-system cmake) #:use-module (guix build-system perl) #:use-module (guix build-system python) - #:use-module (guix build-system ruby) + ;; #:use-module (guix build-system ruby) #:use-module (guix build-system r) #:use-module (guix build-system trivial) + #:use-module (gn packages statistics) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages algebra) #:use-module (gnu packages base) #:use-module (gnu packages bioinformatics) #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages databases) + #:use-module (gnu packages check) + #:use-module (gnu packages cmake) + #:use-module (gnu packages compression) #:use-module (gnu packages cpio) + #:use-module (gnu packages curl) + #:use-module (gnu packages doxygen) + #:use-module (gnu packages datastructures) + #:use-module (gnu packages check) #:use-module (gnu packages file) + #:use-module (gnu packages gawk) #:use-module (gnu packages gcc) #:use-module (gnu packages graphviz) #:use-module (gnu packages java) #:use-module (gnu packages linux) + #:use-module (gnu packages ldc) #:use-module (gnu packages machine-learning) #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) #:use-module (gnu packages ncurses) + #:use-module (gnu packages node) + #:use-module (gnu packages parallel) + #:use-module (gnu packages pcre) #:use-module (gnu packages perl) #:use-module (gnu packages pkg-config) #:use-module (gnu packages popt) @@ -38,90 +53,723 @@ #:use-module (gnu packages statistics) #:use-module (gnu packages tbb) #: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 zip) #:use-module (gnu packages bootstrap) - #:use-module (gn packages python) #:use-module (srfi srfi-1)) -(define-public my-deploy +(define-public contra + (package + (name "contra") + (version "2.0.6") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/contra-cnv/CONTRA.v" version ".tar.gz")) + (sha256 + (base32 + "0agpcm2xh5f0i9n9sx1kvln6mzdksddmh11bvzj6bh76yw5pnw91")))) + (build-system gnu-build-system) + (propagated-inputs + `(("python" ,python-2) + ("r" ,r) + ("r-dnacopy" ,r-dnacopy) + ("bedtools" ,bedtools) + ("samtools" ,samtools))) + (arguments + `(#:tests? #f ; There are no tests. + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) ; We can use Guix's BEDtools instead. + (replace 'install + (lambda _ + (let* ((out (assoc-ref %outputs "out")) + (bin (string-append out "/bin")) + (doc (string-append out "/share/doc/contra"))) + (mkdir-p bin) + (mkdir-p doc) + (and + (zero? (system* "cp" "--recursive" "scripts" bin)) + (zero? (system* "cp" "contra.py" bin)) + (zero? (system* "cp" "baseline.py" bin)) + ;; There's only a pre-built PDF available. + (zero? (system* "cp" "CONTRA_User_Guide.2.0.pdf" doc))))))))) + (home-page "http://contra-cnv.sourceforge.net/") + (synopsis "Tool for copy number variation (CNV) detection for targeted +resequencing data") + (description "CONTRA is a tool for copy number variation (CNV) detection +for targeted resequencing data such as those from whole-exome capture data. +CONTRA calls copy number gains and losses for each target region with key +strategies including the use of base-level log-ratios to remove GC-content +bias, correction for an imbalanced library size effect on log-ratios, and the +estimation of log-ratio variations via binning and interpolation. It takes +standard alignment formats (BAM/SAM) and outputs in variant call format +(VCF 4.0) for easy integration with other next generation sequencing analysis +package.") + (license license:gpl3+))) + +(define boost-delly + (package (inherit boost) + (name "boost-delly") + (version "1.57.0") + (source (origin + (method url-fetch) + (uri (string-append + "mirror://sourceforge/boost/boost_" + (string-map (lambda (x) (if (eq? x #\.) #\_ x)) version) + ".tar.bz2")) + (sha256 + (base32 + "0rs94vdmg34bwwj23fllva6mhrml2i7mvmlb11zyrk1k5818q34i")))))) + +(define-public delly + (package + (name "delly") + (version "0.7.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/tobiasrausch/delly/archive/v" + version ".tar.gz")) + (sha256 + (base32 "173mmg43dbxqkyq0kiffz63xbmggr2kzd55mwxci9yfh5md1zprn")) + (patches (list (search-patch "delly-use-system-libraries.patch"))))) + (build-system gnu-build-system) + (native-inputs + `(("python" ,python-2))) + (inputs + `(("boost" ,boost-delly) ; Use version 1.57.0 instead. + ("htslib" ,htslib) + ("zlib" ,zlib) + ("bzip2" ,bzip2))) + (arguments + `(#:tests? #f ; There are no tests to run. + #:phases + (modify-phases %standard-phases + (delete 'configure) ; There is no configure phase. + (replace 'install + (lambda _ + (let ((bin (string-append (assoc-ref %outputs "out") "/bin"))) + (install-file "src/cov" bin) + (install-file "src/delly" bin) + (install-file "src/extract" bin) + (install-file "src/iover" bin) + (install-file "src/stats" bin))))))) + (home-page "https://github.com/tobiasrausch/delly") + (synopsis "Integrated structural variant prediction method") + (description "Delly is an integrated structural variant prediction method +that can discover and genotype deletions, tandem duplications, inversions and +translocations at single-nucleotide resolution in short-read massively parallel +sequencing data. It uses paired-ends and split-reads to sensitively and +accurately delineate genomic rearrangements throughout the genome. Structural +variants can be visualized using Delly-maze and Delly-suave.") + (license license:gpl3))) + +(define-public freec (package - (name "my-deploy") - (version "0.0.1") - (source #f) + (name "control-freec") + (version "8.7") + (source (origin + (method url-fetch) + (uri "http://bioinfo-out.curie.fr/projects/freec/src/FREEC_Linux64.tar.gz") + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "12sl7gxbklhvv0687qjhml1z4lwpcn159zcyxvawvclsrzqjmv0h")))) + (build-system gnu-build-system) + ;; The source code's filename indicates only a 64-bit Linux build. + ;; We need to investigate whether this is true. + (supported-systems '("x86_64-linux")) + (arguments + `(#:phases + (modify-phases %standard-phases + ;; There's no configure phase because there are no external + ;; dependencies. + (delete 'configure) + ;; There are no tests. + (delete 'check) + (replace + 'unpack + (lambda* (#:key source #:allow-other-keys) + (and + (zero? (system* "mkdir" "source")) + (with-directory-excursion "source" + (zero? (system* "tar" "xvf" source)))))) + (replace + 'build + (lambda* (#:key inputs #:allow-other-keys) + (with-directory-excursion "source" + (zero? (system* "make"))))) + (replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "source/freec" bin))))))) + (home-page "http://bioinfo-out.curie.fr/projects/freec/") + (synopsis "Tool for detection of copy-number changes and allelic imbalances +(including LOH) using deep-sequencing data") + (description "Control-FREEC automatically computes, normalizes, segments +copy number and beta allele frequency (BAF) profiles, then calls copy number +alterations and LOH. The control (matched normal) sample is optional for whole +genome sequencing data but mandatory for whole exome or targeted sequencing +data. For whole genome sequencing data analysis, the program can also use +mappability data (files created by GEM). ") + (license license:gpl2+))) + +(define-public tabixpp + (package + (name "tabixpp") + (version "1.0.0") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/tabixpp/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "1s0lgks7qlvlhvcjhi2wm18nnza1bwcnic44ij7z8wfg88h4ivwn")))) + (build-system gnu-build-system) + (inputs + `(("htslib" ,htslib) + ("zlib" ,zlib))) + (arguments + `(#:tests? #f ; There are no tests to run. + #:phases + (modify-phases %standard-phases + (delete 'configure) ; There is no configure phase. + ;; The build phase needs overriding the location of htslib. + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let ((htslib-ref (assoc-ref inputs "htslib"))) + (zero? + (system* "make" + (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a") + "HTS_HEADERS=" ; No need to check for headers here. + (string-append "LIBPATH=-L. -L" htslib-ref "/include")))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "tabix++" bin))))))) + (home-page "https://github.com/ekg/tabixpp") + (synopsis "C++ wrapper around tabix project") + (description "This is a C++ wrapper around the Tabix project which abstracts +some of the details of opening and jumping in tabix-indexed files.") + (license license:expat))) + +;; This version works with FreeBayes while the released version doesn't. The +;; released creates a variable with the name "vcf" somewhere, which is also the +;; name of a namespace in vcflib. +(define-public tabixpp-freebayes + (let ((commit "bbc63a49acc52212199f92e9e3b8fba0a593e3f7")) + (package (inherit tabixpp) + (name "tabixpp-freebayes") + (version (string-append "0-1." (string-take commit 7))) + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/tabixpp/archive/" + commit ".tar.gz")) + (file-name (string-append name "-" version "-checkout.tar.gz")) + (sha256 + (base32 "1s06wmpgj4my4pik5kp2lc42hzzazbp5ism2y4i2ajp2y1c68g77"))))))) + +(define-public smithwaterman + ;; TODO: Upgrading smithwaterman breaks FreeBayes. + (let ((commit "203218b47d45ac56ef234716f1bd4c741b289be1")) + (package + (name "smithwaterman") + (version (string-append "0-1." (string-take commit 7))) + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/smithwaterman/archive/" + commit ".tar.gz")) + (file-name (string-append name "-" version "-checkout.tar.gz")) + (sha256 + (base32 "1lkxy4xkjn96l70jdbsrlm687jhisgw4il0xr2dm33qwcclzzm3b")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests to run. + #:phases + (modify-phases %standard-phases + (delete 'configure) ; There is no configure phase. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "smithwaterman" bin))))))) + (home-page "https://github.com/ekg/smithwaterman") + (synopsis "Implementation of the Smith-Waterman algorithm") + (description "Implementation of the Smith-Waterman algorithm.") + ;; The project contains a license file for the GPLv2. The source files + ;; do not contain a license notice, so GPLv2-only is assumed here. + (license license:gpl2)))) + +(define-public multichoose + (package + (name "multichoose") + (version "1.0.3") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/multichoose/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0xy86vvr3qrs4l81qis7ia1q2hnqv0xcb4a1n60smxbhqqis5w3l")))) + (build-system gnu-build-system) + (native-inputs + `(("python" ,python-2) + ("node" ,node))) + (arguments + `(#:tests? #f ; There are no tests to run. + #:phases + (modify-phases %standard-phases + (delete 'configure) ; There is no configure phase. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + ;; TODO: There are Python modules for these programs too. + (install-file "multichoose" bin) + (install-file "multipermute" bin))))))) + (home-page "https://github.com/ekg/multichoose") + (synopsis "Library for efficient loopless multiset combination generation +algorithm") + (description "A library implements an efficient loopless multiset +combination generation algorithm which is (approximately) described in +\"Loopless algorithms for generating permutations, combinations, and other +combinatorial configurations.\" G Ehrlich - Journal of the ACM (JACM), +1973. (Algorithm 7.)") + (license license:expat))) + +(define-public fsom + (let ((commit "a6ef318fbd347c53189384aef7f670c0e6ce89a3")) + (package + (name "fsom") + (version (string-append "0-1." (string-take commit 7))) + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/fsom/archive/" + "a6ef318fbd347c53189384aef7f670c0e6ce89a3" ".tar.gz")) + (file-name (string-append name "-" version "-checkout.tar.gz")) + (sha256 + (base32 "0q6b57ppxfvsm5cqmmbfmjpn5qvx2zi5pamvp3yh8gpmmz8cfbl3")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests to run. + #:phases + (modify-phases %standard-phases + (delete 'configure) ; There is no configure phase. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "fsom" bin))))))) + (home-page "https://github.com/ekg/fsom") + (synopsis "Program for managing SOM (Self-Organizing Maps) neural networks") + (description "Program for managing SOM (Self-Organizing Maps) neural networks.") + (license license:gpl3)))) + +(define-public filevercmp + (let ((commit "1a9b779b93d0b244040274794d402106907b71b7")) + (package + (name "filevercmp") + (version (string-append "0-1." (string-take commit 7))) + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/filevercmp/archive/" + commit ".tar.gz")) + (file-name "filevercmp-src.tar.gz") + (sha256 + (base32 "0yp5jswf5j2pqc6517x277s4s6h1ss99v57kxw9gy0jkfl3yh450")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests to run. + #:phases + (modify-phases %standard-phases + (delete 'configure) ; There is no configure phase. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "filevercmp" bin))))))) + (home-page "https://github.com/ekg/filevercmp") + (synopsis "Program to compare version strings") + (description "A program to compare version strings. It intends to be a +replacement for strverscmp.") + (license license:gpl3+)))) + +(define-public fastahack + (let ((commit "c68cebb4f2e5d5d2b70cf08fbdf1944e9ab2c2dd")) + (package + (name "fastahack") + (version (string-append "0-1." (string-take commit 7))) + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/fastahack/archive/" + commit ".tar.gz")) + (file-name (string-append name "-" version "-checkout.tar.gz")) + (sha256 + (base32 "0j25lcl3jk1kls66zzxjfyq5ir6sfcvqrdwfcva61y3ajc9ssay2")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ; There are no tests to run. + #:phases + (modify-phases %standard-phases + (delete 'configure) ; There is no configure phase. + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "fastahack" bin))))))) + (home-page "https://github.com/ekg/fastahack") + (synopsis "Program for indexing and sequence extraction from FASTA files") + (description "Fastahack is a small application for indexing and extracting +sequences and subsequences from FASTA files. The included Fasta.cpp library +provides a FASTA reader and indexer that can be embeddedinto applications which +would benefit from directly reading subsequences from FASTA files. The library +automatically handles index file generation and use.") + ;; There is no specific license for fastahack. + ;; A part of the program is licensed GPLv2. + (license (list license:non-copyleft license:gpl2))))) + +(define-public vcflib + (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb")) + (package + (name "vcflib") + (version (string-append "1.0.2-1." (string-take commit 7))) + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/vcflib/vcflib/archive/" + "5ac091365fdc716cc47cc5410bb97ee5dc2a2c92" ".tar.gz")) + (file-name "vcflib-5ac0913.tar.gz") + (sha256 + (base32 "0ywshwpif059z5h0g7zzrdfzzdj2gr8xvwlwcsdxrms3p9iy35h8")))) + (build-system gnu-build-system) + (native-inputs + `(("htslib" ,htslib) + ("zlib" ,zlib) + ("python" ,python-2) + ("perl" ,perl) + ("r" ,r) + ("node" ,node) + ("tabixpp-src" ,(package-source tabixpp-freebayes)) + ("smithwaterman-src" ,(package-source smithwaterman)) + ("multichoose-src" ,(package-source multichoose)) + ("fsom-src" ,(package-source fsom)) + ("filevercmp-src" ,(package-source filevercmp)) + ("fastahack-src" ,(package-source fastahack)) + ("intervaltree-src" + ,(origin + (method url-fetch) + (uri (string-append + "https://github.com/ekg/intervaltree/archive/" + "dbb4c513d1ad3baac516fc1484c995daf9b42838" ".tar.gz")) + (file-name "intervaltree-src.tar.gz") + (sha256 + (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks")))))) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (add-after 'unpack 'unpack-submodule-sources + (lambda* (#:key inputs #:allow-other-keys) + (let ((unpack (lambda (source target) + (with-directory-excursion target + (zero? (system* "tar" "xvf" + (assoc-ref inputs source) + "--strip-components=1")))))) + (and + (unpack "intervaltree-src" "intervaltree") + (unpack "fastahack-src" "fastahack") + (unpack "filevercmp-src" "filevercmp") + (unpack "fsom-src" "fsom") + (unpack "multichoose-src" "multichoose") + (unpack "smithwaterman-src" "smithwaterman") + (unpack "tabixpp-src" "tabixpp"))))) + (add-after 'unpack-submodule-sources 'fix-makefile + (lambda* (#:key inputs #:allow-other-keys) + (substitute* '("Makefile") + (("^GIT_VERSION.*") "GIT_VERSION = v1.0.0")))) + (replace + 'build + (lambda* (#:key inputs make-flags #:allow-other-keys) + (with-directory-excursion "tabixpp" + (zero? (system* "make"))) + (zero? (system* "make" "CC=gcc" + (string-append "CFLAGS=\"" "-Itabixpp " + "-I" (assoc-ref inputs "htslib") "/include " "\"") "all")))) + (replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin")) + ;;(include (string-append (assoc-ref outputs "out") "/include")) + (lib (string-append (assoc-ref outputs "out") "/lib"))) + (for-each (lambda (file) + (install-file file bin)) + (find-files "bin" ".*")) + ;; The header files do not correspond to libvcflib.a, therefore + ;; I left them out. + ;;(for-each (lambda (file) + ;; (install-file file include)) + ;; (find-files "src" "\\.h$")) + (install-file "libvcflib.a" lib))))))) + (home-page "https://github.com/vcflib/vcflib/") + (synopsis "Library for parsing and manipulating VCF files") + (description "Vcflib provides methods to manipulate and interpret +sequence variation as it can be described by VCF. It is both an API for parsing +and operating on records of genomic variation as it can be described by the VCF +format, and a collection of command-line utilities for executing complex +manipulations on VCF files.") + (license license:expat)))) + +(define-public bash-tap + (package + (name "bash-tap") + (version "1.0.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/illusori/bash-tap/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "0qs1qi38bl3ns4mpagcawv618dsk2q1lgrbddgvs0wl3ia12cyz5")))) (build-system trivial-build-system) + (native-inputs `(("source" ,source) + ("tar" ,tar) + ("gzip" ,gzip))) (arguments - `(#:guile ,%bootstrap-guile - #:modules ((guix build utils)) - #:builder - (let* ((out (assoc-ref %outputs "out")) - (bash (assoc-ref %build-inputs "bash")) - (foo (string-append out "/foo"))) - (begin - (use-modules (guix build utils)) - (mkdir out) - (call-with-output-file foo - (lambda (p) - (format p - "#!~a~%echo \"${GUIX_FOO} ${GUIX_BAR}\"~%" - bash))) - (chmod foo #o777) - ;; wrap-program uses `which' to find bash for the wrapper - ;; shebang, but it can't know about the bootstrap bash in - ;; the store, since it's not named "bash". Help it out a - ;; bit by providing a symlink it this package's output. - (symlink bash (string-append out "/bash")) - (setenv "PATH" out) - (wrap-program foo `("GUIX_FOO" prefix ("hello"))) - (wrap-program foo `("GUIX_BAR" prefix ("world"))) - #t)))) - (inputs `(("bash" ,(search-bootstrap-binary "bash" - (%current-system))))) + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils)) + (let ((tar (string-append (assoc-ref %build-inputs "tar") "/bin/tar")) + (path (string-append (assoc-ref %build-inputs "gzip") "/bin")) + (bin (string-append %output "/bin")) + (source (string-append (assoc-ref %build-inputs "source")))) + (setenv "PATH" path) + (mkdir-p bin) + (with-directory-excursion bin + (zero? (system* tar "xvf" source + "--strip-components=1" + "--no-anchored" + "bash-tap" + "bash-tap-bootstrap" + "bash-tap-mock"))))))) + (home-page "http://www.illusori.co.uk/projects/bash-tap/") + (synopsis "Bash port of a Test::More/Test::Builder-style TAP-compliant +test library") + (description "Bash TAP is a TAP-compliant Test::More-style testing library +for Bash shell scripts and functions. Along with the Test::More-style testing +helpers it provides helper functions for mocking commands and functions and +in-process output capturing.") + ;; The author didn't specify a license. + (license license:public-domain))) + +(define-public freebayes + (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb") + (revision "1")) + (package + (name "freebayes") + (version (string-append "1.0.2-" revision "." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/ekg/freebayes.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 "1sbzwmcbn78ybymjnhwk7qc5r912azy5vqz2y7y81616yc3ba2a2")))) + (build-system gnu-build-system) + (inputs + `(("zlib" ,zlib) + ("htslib" ,htslib))) + (native-inputs + `(("bc" ,bc) ; Needed for running tests. + ("samtools" ,samtools) ; Needed for running tests. + ("parallel" ,parallel) ; Needed for running tests. + ("procps" ,procps) ; Needed for running tests. + ("bamtools" ,bamtools) + ("cmake" ,cmake) + ("python" ,python-2) + ("node" ,node) + ("r" ,r) + ("perl" ,perl) + ("bamtools-src" ,(package-source bamtools)) + ("vcflib-src" ,(package-source vcflib)) + ;; These are submodules for the vcflib version used in freebayes + ("tabixpp-src" ,(package-source tabixpp-freebayes)) + ("smithwaterman-src" ,(package-source smithwaterman)) + ("multichoose-src" ,(package-source multichoose)) + ("fsom-src" ,(package-source fsom)) + ("filevercmp-src" ,(package-source filevercmp)) + ("fastahack-src" ,(package-source fastahack)) + ("intervaltree-src" + ,(origin + (method url-fetch) + (uri (string-append + "https://github.com/ekg/intervaltree/archive/" + "dbb4c513d1ad3baac516fc1484c995daf9b42838" ".tar.gz")) + (file-name "intervaltree-src.tar.gz") + (sha256 + (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks")))) + ;; These submodules are needed to run the tests. + ("bash-tap-src" ,(package-source bash-tap)) + ;; ,(origin + ;; (method url-fetch) + ;; (uri (string-append "https://github.com/illusori/bash-tap/archive/" + ;; "c38fbfa401600cc81ccda66bfc0da3ea56288d03" ".tar.gz")) + ;; (file-name "bash-tap-src.tar.gz") + ;; (sha256 + ;; (base32 "07ijb1p0aa65ajpg9nkghc183iha6lwiydkckay8pghapa01j6nz")))) + ("test-simple-bash-src" + ,(origin + (method url-fetch) + (uri (string-append "https://github.com/ingydotnet/test-simple-bash/archive/" + "124673ff204b01c8e96b7fc9f9b32ee35d898acc" ".tar.gz")) + (file-name "test-simple-bash-src.tar.gz") + (sha256 + (base32 "016xf3wbgqbav9dncvfdx5k0f10z5xwq8jdszajzmcvnhz5wis14")))))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) + (add-after 'unpack 'unpack-submodule-sources + (lambda* (#:key inputs #:allow-other-keys) + (let ((unpack (lambda (source target) + (with-directory-excursion target + (zero? (system* "tar" "xvf" + (assoc-ref inputs source) + "--strip-components=1")))))) + (and + (unpack "bamtools-src" "bamtools") + (unpack "vcflib-src" "vcflib") + ;;(unpack "intervaltree-src" "intervaltree") + (unpack "fastahack-src" "vcflib/fastahack") + (unpack "filevercmp-src" "vcflib/filevercmp") + (unpack "fsom-src" "vcflib/fsom") + (unpack "intervaltree-src" "vcflib/intervaltree") + (unpack "multichoose-src" "vcflib/multichoose") + (unpack "smithwaterman-src" "vcflib/smithwaterman") + (unpack "tabixpp-src" "vcflib/tabixpp") + (unpack "test-simple-bash-src" "test/test-simple-bash") + (unpack "bash-tap-src" "test/bash-tap"))))) + (add-after 'unpack-submodule-sources 'fix-makefile + (lambda* (#:key inputs #:allow-other-keys) + ;; We don't have the .git folder to get the version tag from. + ;; For this checkout of the code, it's v1.0.0. + (substitute* '("vcflib/Makefile") + (("^GIT_VERSION.*") "GIT_VERSION = v1.0.0")))) + (replace 'build + (lambda* (#:key inputs make-flags #:allow-other-keys) + (and + ;; Compile Bamtools before compiling the main project. + (with-directory-excursion "bamtools" + (system* "mkdir" "build") + (with-directory-excursion "build" + (and (zero? (system* "cmake" "../")) + (zero? (system* "make"))))) + ;; Compile vcflib before we compiling the main project. + (with-directory-excursion "vcflib" + (with-directory-excursion "tabixpp" + (let ((htslib-ref (assoc-ref inputs "htslib"))) + (zero? + (system* "make" "HTS_HEADERS=" + (string-append "HTS_LIB=" htslib-ref "/lib/libhts.a") + (string-append "LIBPATH=-L. -L" htslib-ref "/include"))))) + (zero? (system* "make" "CC=gcc" + (string-append "CFLAGS=\"" "-Itabixpp " + "-I" (assoc-ref inputs "htslib") "/include " "\"") "all"))) + (with-directory-excursion "src" + (zero? (system* "make")))))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "bin/freebayes" bin) + (install-file "bin/bamleftalign" bin)))) + ;; There are three tests that fail. All because of the -P + ;; (--perl-regexp) option in grep, which is not compiled into the + ;; version of grep in Guix. + (replace 'check + (lambda* (#:key inputs #:allow-other-keys) + (system* "make" "test")))))) + (home-page "https://github.com/ekg/freebayes") + (synopsis "Haplotype-based variant detector") + (description "FreeBayes is a Bayesian genetic variant detector designed to +find small polymorphisms, specifically SNPs (single-nucleotide polymorphisms), +indels (insertions and deletions), MNPs (multi-nucleotide polymorphisms), and +complex events (composite insertion and substitution events) smaller than the +length of a short-read sequencing alignment.") + (license license:expat)))) - (home-page #f) - (synopsis #f) - (description #f) - (license #f))) +(define-public r-biocpreprocesscore + (package + (name "r-biocpreprocesscore") + (version "1.32.0") + (source (origin + (method url-fetch) + (uri (bioconductor-uri "preprocessCore" version)) + (sha256 + (base32 + "07isghjkqm91rg37l1fzpjrbq36b7w4pbsi95wwh6a8qq7r69z1n")))) + (properties + `((upstream-name . "BiocpreprocessCore") + (r-repository . bioconductor))) + (build-system r-build-system) + (home-page "http://bioconductor.org/packages/preprocessCore") + (synopsis "Preprocess functions for Bioconductor") + (description + "A library of core preprocessing routines.") + (license license:lgpl2.0+))) (define-public r-wgcna + (let ((commit "425bc170cc0873ddbd414675ac40f6d4d724c7cb")) (package (name "r-wgcna") - (version "1.48") - (source - (origin - (method url-fetch) - (uri (cran-uri "WGCNA" version)) - (sha256 - (base32 - "18yl2v3s279saq318vd5hlwnqfm89rxmjjji778d2d26vviaf6bn")))) + (version (string-append "1.49-" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + ;; (url "https://github.com/genenetwork/WGCNA.git") + (url "https://github.com/pjotrp/WGCNA.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "1zqnsb8s3065rq1y2y3l79zi8wmdwjkcjls96ypycrb7pmdil58j")))) (properties `((upstream-name . "WGCNA"))) (build-system r-build-system) - ;; (propagated-inputs - ;; `( ;; ("r-annotationdbi" ,r-annotationdbi) - ;; ("r-doparallel" ,r-doparallel) - ;; ("r-dynamictreecut" ,r-dynamictreecut) - ;; ("r-fastcluster" ,r-fastcluster) - ;; ("r-foreach" ,r-foreach) - ;; ("r-go.db" ,r-go.db) - ;; ("r-grdevices" ,r-grdevices) - ;; ("r-hmisc" ,r-hmisc) - ;; ("r-impute" ,r-impute) - ;; ("r-matrixstats" ,r-matrixstats) - ;; ("r-parallel" ,r-parallel) - ;; ("r-preprocesscore" ,r-preprocesscore) - ;; ("r-splines" ,r-splines) - ;; ("r-stats" ,r-stats) - ;; ("r-survival" ,r-survival) - ;; ("r-utils" ,r-utils))) + (propagated-inputs + `( ;; ("r-annotationdbi" ,r-annotationdbi) + ; ("r-biocparallel" ,r-biocparallel) + ("r-doparallel" ,r-doparallel) + ("r-dynamictreecut" ,r-dynamictreecut) + ("r-fastcluster" ,r-fastcluster) + ("r-foreach" ,r-foreach) + ("r-go-db" ,r-go-db) + ; ("r-grdevices" ,r-grdevices) + ("r-hmisc" ,r-hmisc) + ("r-impute" ,r-impute) + ("r-matrixstats" ,r-matrixstats) + ; ("r-parallel" ,r-parallel) + ("r-biocpreprocesscore" ,r-biocpreprocesscore) + ; ("r-splines" ,r-splines) + ; ("r-stats" ,r-stats) + ; ("r-survival" ,r-survival) + ; ("r-utils" ,r-utils) + )) + (arguments + `( + #:tests? #f)) ; no 'setup.py test' (home-page "http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/Rpackages/WGCNA/") (synopsis - "Weighted Correlation Network Analysis") + "Weighted gene correlation network analysis (wgcna)") (description - "Functions necessary to perform Weighted Correlation Network Analysis on high-dimensional data. Includes functions for rudimentary data cleaning, construction of correlation networks, module identification, summarization, and relating of variables and modules to sample traits. Also includes a number of utility functions for data manipulation and visualization.") - (license license:gpl2+))) + "Functions necessary to perform Weighted Correlation Network +Analysis on high-dimensional data. Includes functions for rudimentary +data cleaning, construction of correlation networks, module +identification, summarization, and relating of variables and modules +to sample traits. Also includes a number of utility functions for +data manipulation and visualization.") + (license license:gpl2+)))) (define-public qtlreaper (package @@ -156,7 +804,7 @@ test. For the permutation test, it performs only as many permutations as are necessary to define the empirical P-value to a reasonable precision. It also performs bootstrap resampling to estimate the confidence region for the location of a putative QTL.") - (license license:gpl2))) + (license license:gpl2+))) (define-public plink2 (package @@ -305,58 +953,100 @@ mixed model and some of its close relatives for genome-wide association studies (GWAS).") (license license:gpl3)))) - -(define-public genenetwork1 - (let ((commit "d622c803b")) - (package - (name "genenetwork1") - (version (string-append "1.0-" commit )) - (source (origin +(define-public sambamba + (let ((commit "c810c7ef14957f16288c205fd7b9d25c4ae7005d")) + ;;(let ((commit "2ca5a2dbac5ab90c3b4c588519edc3edcb71df84")) + (package + (name "sambamba") + (version (string-append "0.5.9-1." (string-take commit 7))) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/roelj/sambamba.git") + ;;(url "https://github.com/pjotrp/sambamba.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "0c4c13f021sl7mf5xc2v8dbwsz775n8dlsrrn7qa6qgbx05n54dv")))) + ;;"1f14wn9aaxwjkmla6pzq3s28741carbr2v0fd2v2mm1dcpwnrqz5")))) + (build-system gnu-build-system) + (native-inputs + `(("ldc" ,ldc) + ;;("lz4" ,lz4) + ("rdmd" ,rdmd) + ("zlib" ,zlib) + ("perl" ,perl) ; Needed for htslib + ("ruby" ,ruby) ; Needed for htslib + ("python" ,python) ; Needed for htslib + ("gcc" ,gcc) + ("lz4-src" + ,(origin + (method url-fetch) + (uri "https://github.com/Cyan4973/lz4/archive/160661c7a4cbf805f4af74d2e3932a17a66e6ce7.tar.gz") + (sha256 + (base32 "131nnbsd5dh7c8sdqzc9kawh3mi0qi4qxznv7zhzfszlx4g2fd20")))) + ("htslib-src" + ,(origin + (method url-fetch) + (uri "https://github.com/lomereiter/htslib/archive/2f3c3ea7b301f9b45737a793c0b2dcf0240e5ee5.tar.gz") + ;;(uri "https://github.com/samtools/htslib/archive/1.3.tar.gz") + ;;(file-name "htslib-1.3.tar.gz") + (sha256 + (base32 "0bl6w856afnbgdsw8bybsxpqsyf2ba3f12rqh47hhpxvv866g08w")))) + ;;(base32 "1bqkif7yrqmiqak5yb74kgpb2lsdlg7y344qa1xkdg7k1l4m86i9")) + ;;(patches (list (search-patch "htslib-add-cram_to_bam.patch"))))) + ("biod-src" + ,(origin (method git-fetch) (uri (git-reference - (url "https://github.com/genenetwork/genenetwork.git") - ;; (url "https://github.com/pjotrp/genenetwork.git") - (commit commit))) - (file-name (string-append name "-" commit)) + (url "https://github.com/biod/BioD.git") + (commit "7efdb8a2f7fdcd71c9ad9596be48d1262bb1bd5b"))) + (file-name "biod-src") (sha256 - (base32 - "14fzfcm4vl20mlhxjslfa01i1nmxpk8lbxmfvpq6dyfc22ir62py")))) - (propagated-inputs `( - ("python" ,python-2) ;; probably superfluous - ("r" ,r) - )) - (inputs `( - ;; http://spring211.uthsc.edu/gn/thirdparty.tbz - ;; graphviz-2.22.2 htmlgen json numarray-1.5.2 piddle PIL pp-1.5.7 pyx pyXLWriter svg - ("mysql" ,mysql) - ("nginx" ,nginx) - ("graphviz" ,graphviz) - ; ("python2-jinja2" ,python2-jinja2) - ; ("python2-sqlalchemy" ,python2-sqlalchemy) - ; ("python2-setuptools" ,python2-setuptools) - ; ("python2-scipy" ,python2-scipy) - ;; looks like python-numarray is not needed - ; ("python2-numpy" ,python2-numpy) - ; ("python2-pandas" ,python2-pandas) - ; ("python2-passlib" ,python2-passlib) - ; ("python2-redis" ,python2-redis) - ; ("python2-requests" ,python2-requests) - ; ("python2-simplejson" ,python2-simplejson) - ; ("python2-pyyaml" ,python2-pyyaml) - ;; python-yolk is not needed - ("python2-pil" ,python2-pil) - ("python2-numarray" ,python2-numarray) - ("plink" ,plink) ;; gn1 - ; ("r-qtl" ,r-qtl) - )) - (build-system python-build-system) - (arguments - `(#:python ,python-2 - #:tests? #f)) ; no 'setup.py test' - (home-page "http://genenetwork.org/") - (synopsis "Full genenetwork services") - (description "Genenetwork installation sumo.") - (license license:agpl3+)))) + (base32 "09icc2bjsg9y4hxjim4ql275izadf0kh1nnmapg8manyz6bc8svf")))))) + (arguments + `(#:tests? #f + #:make-flags (list "-f" "Makefile.guix") + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (add-after 'unpack 'unpack-htslib-sources + (lambda* (#:key inputs #:allow-other-keys) + ;; The current build compiles htslib statically into the + ;; executable. On top of that, we need to patch the latest + ;; version of htslib to have it working with Sambamba. + (and (with-directory-excursion "htslib" + (zero? (system* "tar" "xvf" (assoc-ref inputs "htslib-src") + "--strip-components=1"))) + (with-directory-excursion "lz4" + (zero? (system* "tar" "xvf" (assoc-ref inputs "lz4-src") + "--strip-components=1"))) + (zero? (system* "rm" "-r" "BioD")) + (zero? (system* "ln" "--symbolic" "--no-target-directory" + (assoc-ref inputs "biod-src") "BioD"))))) + (replace + 'build + (lambda* (#:key inputs make-flags #:allow-other-keys) + (zero? (system* "make" "sambamba-ldmd2-64" "CC=gcc" "D_COMPILER=ldc2" + (string-append "LDC_LIB_PATH=" + (assoc-ref inputs "ldc") + "/lib"))))) + (replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "build/sambamba" bin))))))) + (home-page "https://github.com/lomereiter/sambamba") + (synopsis "A tool for working with SAM and BAM files written in D.") + (description + "Sambamba is a high performance modern robust and fast tool (and +library), written in the D programming language, for working with SAM +and BAM files. Current parallelised functionality is an important +subset of samtools functionality, including view, index, sort, +markdup, and depth.") + (license license:gpl2+)))) (define-public genenetwork2 (let ((commit "234aa9820eeaa3e4611239de31de1ba526d8bf09")) @@ -412,9 +1102,204 @@ association studies (GWAS).") )) (build-system python-build-system) (arguments - `(#:python ,python-2 - #:tests? #f)) ; no 'setup.py test' - (home-page "http://genenetwork.org/") - (synopsis "Full genenetwork services") - (description "Genenetwork installation sumo.") - (license license:agpl3+)))) + `(("perl" ,perl) ; Needed to run the java command. + ("jdk" ,icedtea "jdk"))) + (native-inputs + `(("ant" ,ant) ; TODO: Most Java packages need Ant, but in this case, IDK.. + ("jdk" ,icedtea "jdk") + ;;("htsjdk" ,htsjdk) ; It is based on htsjdk, but it ships its own copy. + ("unzip" ,unzip))) + (home-page "http://www.bioinformatics.babraham.ac.uk/projects/fastqc/") + (synopsis "A quality control tool for high throughput sequence data") + (description + "FastQC aims to provide a QC report which can spot problems which originate either in the sequencer or in the starting library material. It can either run as a stand alone interactive application for the immediate analysis of small numbers of FastQ files, or it can be run in a non-interactive mode where it would be suitable for integrating into a larger analysis pipeline for the systematic processing of large numbers of files.") + (license license:gpl3+))) + +(define-public vcflib + (let ((commit "3ce827d8ebf89bb3bdc097ee0fe7f46f9f30d5fb")) + (package + (name "vcflib") + (version (string-append "v1.0.2-" (string-take commit 7))) + (source + (origin + (method url-fetch) + (uri (string-append "https://github.com/vcflib/vcflib/archive/" + "5ac091365fdc716cc47cc5410bb97ee5dc2a2c92" ".tar.gz")) + (file-name "vcflib-5ac0913.tar.gz") + (sha256 + (base32 "0ywshwpif059z5h0g7zzrdfzzdj2gr8xvwlwcsdxrms3p9iy35h8")))) + (build-system gnu-build-system) + (native-inputs + `(("htslib" ,htslib) + ("zlib" ,zlib) + ("python" ,python-2) + ("perl" ,perl) + ("tabixpp-src" + ,(origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/tabixpp/archive/" + "bbc63a49acc52212199f92e9e3b8fba0a593e3f7" ".tar.gz")) + (file-name "tabixpp-src.tar.gz") + (sha256 + (base32 "1s06wmpgj4my4pik5kp2lc42hzzazbp5ism2y4i2ajp2y1c68g77")))) + ("intervaltree-src" + ,(origin + (method url-fetch) + (uri (string-append + "https://github.com/ekg/intervaltree/archive/" + "dbb4c513d1ad3baac516fc1484c995daf9b42838" ".tar.gz")) + (file-name "intervaltree-src.tar.gz") + (sha256 + (base32 "19prwpn2wxsrijp5svfqvfcxl5nj7zdhm3jycd5kqhl9nifpmcks")))) + ("smithwaterman-src" + ,(origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/smithwaterman/archive/" + "203218b47d45ac56ef234716f1bd4c741b289be1" ".tar.gz")) + (file-name "smithwaterman-src.tar.gz") + (sha256 + (base32 "1lkxy4xkjn96l70jdbsrlm687jhisgw4il0xr2dm33qwcclzzm3b")))) + ("multichoose-src" + ,(origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/multichoose/archive/" + "73d35daa18bf35729b9ba758041a9247a72484a5" ".tar.gz")) + (file-name "multichoose-src.tar.gz") + (sha256 + (base32 "07aizwdabmlnjaq4p3v0vsasgz1xzxid8xcxcw3paq8kh9c1099i")))) + ("fsom-src" + ,(origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/fsom/archive/" + "a6ef318fbd347c53189384aef7f670c0e6ce89a3" ".tar.gz")) + (file-name "fsom-src.tar.gz") + (sha256 + (base32 "0q6b57ppxfvsm5cqmmbfmjpn5qvx2zi5pamvp3yh8gpmmz8cfbl3")))) + ("filevercmp-src" + ,(origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/filevercmp/archive/" + "1a9b779b93d0b244040274794d402106907b71b7" ".tar.gz")) + (file-name "filevercmp-src.tar.gz") + (sha256 + (base32 "0yp5jswf5j2pqc6517x277s4s6h1ss99v57kxw9gy0jkfl3yh450")))) + ("fastahack-src" + ,(origin + (method url-fetch) + (uri (string-append "https://github.com/ekg/fastahack/archive/" + "c68cebb4f2e5d5d2b70cf08fbdf1944e9ab2c2dd" ".tar.gz")) + (file-name "fastahack-src.tar.gz") + (sha256 + (base32 "0j25lcl3jk1kls66zzxjfyq5ir6sfcvqrdwfcva61y3ajc9ssay2")))))) + (arguments + `(#:tests? #f + #:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'check) + (add-after 'unpack 'unpack-submodule-sources + (lambda* (#:key inputs #:allow-other-keys) + (let ((unpack (lambda (source target) + (with-directory-excursion target + (zero? (system* "tar" "xvf" + (assoc-ref inputs source) + "--strip-components=1")))))) + (and + (unpack "intervaltree-src" "intervaltree") + (unpack "fastahack-src" "fastahack") + (unpack "filevercmp-src" "filevercmp") + (unpack "fsom-src" "fsom") + (unpack "intervaltree-src" "intervaltree") + (unpack "multichoose-src" "multichoose") + (unpack "smithwaterman-src" "smithwaterman") + (unpack "tabixpp-src" "tabixpp"))))) + (add-after 'unpack-submodule-sources 'fix-makefile + (lambda* (#:key inputs #:allow-other-keys) + (substitute* '("Makefile") + (("^GIT_VERSION.*") "GIT_VERSION = v1.0.0")))) + (replace + 'build + (lambda* (#:key inputs make-flags #:allow-other-keys) + (with-directory-excursion "tabixpp" + (zero? (system* "make"))) + (zero? (system* "make" "CC=gcc" + (string-append "CFLAGS=\"" "-Itabixpp " + "-I" (assoc-ref inputs "htslib") "/include " "\"") "all")))) + (replace + 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin")) + (lib (string-append (assoc-ref outputs "out") "/lib"))) + (for-each (lambda (file) + (install-file file bin)) + (find-files "bin" ".*")) + (install-file "libvcflib.a" lib))))))) + (home-page "https://github.com/vcflib/vcflib/") + (synopsis "Library for parsing and manipulating VCF files") + (description "Vcflib provides methods to manipulate and interpret +sequence variation as it can be described by VCF. It is both an API for parsing +and operating on records of genomic variation as it can be described by the VCF +format, and a collection of command-line utilities for executing complex +manipulations on VCF files.") + (license license:expat)))) + +(define-public pindel + (package + (name "pindel") + (version "0.2.5b8") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/genome/pindel/archive/v" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 "06bsf0psxwf7h5p3j97xkh9k5qrwhxh6xn942y1j1m2inyhgs8bz")))) + (build-system gnu-build-system) + (inputs + `(("samtools" ,samtools) + ("htslib" ,htslib) + ("zlib" ,zlib))) + (native-inputs + `(("cppcheck" ,cppcheck) + ("python" ,python-2) + ("perl" ,perl))) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'configure) ; There is no configure phase. + ;; The build phase needs to run 'make' twice for the reasons described + ;; below. + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + ;; The first run creates a Makefile.local file. Make will report + ;; the failure to find Makefile.local, but we can ignore this error. + (system* "make" (string-append "SAMTOOLS=" (assoc-ref inputs "samtools"))) + ;; The second run actually compiles the program. Now Makefile.local + ;; is available, and we should treat an exiting make with an error as + ;; a true error. + (zero? (system* "make")))) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (let ((bin (string-append (assoc-ref outputs "out") "/bin"))) + (install-file "src/pindel" bin) + (install-file "src/pindel2vcf" bin) + (install-file "src/pindel2vcf4tcga" bin) + (install-file "src/sam2pindel" bin)))) + ;; There are multiple test targets, so in order to run all + ;; tests, we must run the separate make targets. + (replace 'check + (lambda* (#:key inputs #:allow-other-keys) + (and + (zero? (system* "make" "acceptance-tests")) + (zero? (system* "make" "coverage-tests")) + (zero? (system* "make" "cppcheck")) + (zero? (system* "make" "functional-tests")) + (zero? (system* "make" "regression-tests")))))))) + (home-page "https://github.com/genome/pindel") + (synopsis "Structural variants detector for next-gen sequencing data") + (description "Pindel can detect breakpoints of large deletions, medium sized +insertions, inversions, tandem duplications and other structural variants at +single-based resolution from next-gen sequence data. It uses a pattern growth +approach to identify the breakpoints of these variants from paired-end short +reads.") + (license license:gpl3+))) diff --git a/gn/packages/clBLAS.scm b/gn/packages/clBLAS.scm new file mode 100644 index 0000000..17a4589 --- /dev/null +++ b/gn/packages/clBLAS.scm @@ -0,0 +1,164 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages clBLAS) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (guix packages) + #:use-module (gnu packages algebra) + #:use-module (gnu packages bootstrap) + #:use-module (gnu packages base) + #:use-module (gnu packages autotools) + #:use-module (gnu packages curl) + #:use-module (gnu packages gawk) + #:use-module (gnu packages cmake) + #:use-module (gnu packages boost) + #:use-module (gnu packages glib) + #:use-module (gnu packages image) + #:use-module (gnu packages video) + #:use-module (gnu packages textutils) + #:use-module (gnu packages gl) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) + #:use-module (gnu packages ruby) + #:use-module (gnu packages web) + #:use-module (gnu packages python) + #:use-module (gnu packages xorg) + #:use-module (gnu packages version-control) + #:use-module (gnu packages zip) + #:use-module (gnu packages linux)) + +(define-public clBLAS + (package + (name "clBLAS") + (version "v2.10") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/clMathLibraries/clBLAS/archive/" + version ".tar.gz")) + (sha256 + (base32 + "0adlb02lqzrklfybhnv4n0p37mvkvdi3vqiwa05x2mv05ywnr93j")))) + (build-system cmake-build-system) + (arguments `(#:tests? #f + #:configure-flags '("../clBLAS-2.10/src" "-DBUILD_SHARED_LIBS=ON" "-DCMAKE_BUILD_TYPE=Release" "-DBUILD_TEST=OFF"))) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("cmake" ,cmake) + ("gfortran" ,gfortran) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs `(("curl" ,curl) + ("dbus" ,dbus) + ("boost" ,boost) + ("enca" ,enca) + ("eudev" ,eudev) + ("fftw-openmpi" ,fftw-openmpi) + ("glew" ,glew) + ("libcap" ,libcap) + ("libjpeg" ,libjpeg) + ("libltdl" ,libltdl) + ("libtiff" ,libtiff) + ("mesa-utils" ,mesa-utils) + ("openmpi" ,openmpi) + ("ocl-icd" ,ocl-icd) + ("opencl-headers" ,opencl-headers) + ("randrproto" ,randrproto) + ("libxrandr" ,libxrandr) + ("xineramaproto" ,xineramaproto) + ("libxinerama" ,libxinerama) + ("libxcursor" ,libxcursor) + ("python" ,python-2))) + (home-page "http://www.glfw.org/") + (synopsis "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.") + (description "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.") + (license (list license:gpl2)))) + +(define-public ocl-icd + (package + (name "ocl-icd") + (version "2.2.9") + (source (origin + (method url-fetch) + (uri (string-append "https://forge.imag.fr/frs/download.php/716/ocl-icd-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1rgaixwnxmrq2aq4kcdvs0yx7i6krakarya9vqs7qwsv5hzc32hc")))) + (inputs `(("zip" ,zip) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("ruby" ,ruby) + ("libtool" ,libtool) + ("opencl-headers" ,opencl-headers) + ("libgcrypt" ,libgcrypt))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack `bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (home-page "https://forge.imag.fr/projects/ocl-icd/") + (synopsis "OpenCL implementations are provided as ICD (Installable Client Driver).") + (description "OpenCL implementations are provided as ICD (Installable Client Driver). + An OpenCL program can use several ICD thanks to the use of an ICD Loader as provided by this project. + This free ICD Loader can load any (free or non free) ICD") + (license (list license:gpl2 license:ruby)))) + +(define-public opencl-headers +(let ((commit "c1770dc")) + (package + (name "opencl-headers") + (version (string-append "2.1-" commit )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KhronosGroup/OpenCL-Headers.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "0m9fkblqja0686i2jjqiszvq3df95gp01a2674xknlmkd6525rck")))) + (propagated-inputs '()) + (inputs '()) + (native-inputs '()) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (delete 'check) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (copy-recursively "." (string-append + (assoc-ref outputs "out") + "/include/CL"))))))) + (synopsis "The Khronos OpenCL headers") + (description "This package provides the Khronos OpenCL headers") + (home-page "https://www.khronos.org/registry/cl/") + (license (list license:gpl2))))) + + diff --git a/gn/packages/clFFT.scm b/gn/packages/clFFT.scm new file mode 100644 index 0000000..3e72357 --- /dev/null +++ b/gn/packages/clFFT.scm @@ -0,0 +1,158 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages clFFT) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (guix packages) + #:use-module (gnu packages algebra) + #:use-module (gnu packages bootstrap) + #:use-module (gnu packages base) + #:use-module (gnu packages autotools) + #:use-module (gnu packages curl) + #:use-module (gnu packages gawk) + #:use-module (gnu packages cmake) + #:use-module (gnu packages boost) + #:use-module (gnu packages glib) + #:use-module (gnu packages image) + #:use-module (gnu packages video) + #:use-module (gnu packages textutils) + #:use-module (gnu packages gl) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) + #:use-module (gnu packages ruby) + #:use-module (gnu packages web) + #:use-module (gnu packages python) + #:use-module (gnu packages xorg) + #:use-module (gnu packages version-control) + #:use-module (gnu packages zip) + #:use-module (gnu packages linux)) + +(define-public clFFT + (package + (name "clFFT") + (version "v2.10.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/clMathLibraries/clFFT/archive/" + version ".tar.gz")) + (sha256 + (base32 + "19hrk1lf06kch8x9dpbdj0waycn2mldrmj2y4vzi7zn2gdfw6g73")))) + (build-system cmake-build-system) + (arguments `(#:configure-flags '("../clFFT-2.10.1/src" "-DBUILD_SHARED_LIBS=ON" "-DCMAKE_BUILD_TYPE=Release") #:tests? #f)) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("cmake" ,cmake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs `(("curl" ,curl) + ("dbus" ,dbus) + ("enca" ,enca) + ("eudev" ,eudev) + ("fftw-openmpi" ,fftw-openmpi) + ("glew" ,glew) + ("libcap" ,libcap) + ("libjpeg" ,libjpeg) + ("libltdl" ,libltdl) + ("libtiff" ,libtiff) + ("mesa-utils" ,mesa-utils) + ("openmpi" ,openmpi) + ("ocl-icd" ,ocl-icd) + ("opencl-headers" ,opencl-headers) + ("randrproto" ,randrproto) + ("libxrandr" ,libxrandr) + ("xineramaproto" ,xineramaproto) + ("libxinerama" ,libxinerama) + ("libxcursor" ,libxcursor) + ("python" ,python-2))) + (home-page "http://www.glfw.org/") + (synopsis "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.") + (description "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.") + (license (list license:gpl2)))) + +(define-public ocl-icd + (package + (name "ocl-icd") + (version "2.2.9") + (source (origin + (method url-fetch) + (uri (string-append "https://forge.imag.fr/frs/download.php/716/ocl-icd-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1rgaixwnxmrq2aq4kcdvs0yx7i6krakarya9vqs7qwsv5hzc32hc")))) + (inputs `(("zip" ,zip) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("ruby" ,ruby) + ("libtool" ,libtool) + ("opencl-headers" ,opencl-headers) + ("libgcrypt" ,libgcrypt))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack `bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (home-page "https://forge.imag.fr/projects/ocl-icd/") + (synopsis "OpenCL implementations are provided as ICD (Installable Client Driver).") + (description "OpenCL implementations are provided as ICD (Installable Client Driver). + An OpenCL program can use several ICD thanks to the use of an ICD Loader as provided by this project. + This free ICD Loader can load any (free or non free) ICD") + (license (list license:gpl2 license:ruby)))) + +(define-public opencl-headers +(let ((commit "c1770dc")) + (package + (name "opencl-headers") + (version (string-append "2.1-" commit )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KhronosGroup/OpenCL-Headers.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "0m9fkblqja0686i2jjqiszvq3df95gp01a2674xknlmkd6525rck")))) + (propagated-inputs '()) + (inputs '()) + (native-inputs '()) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (delete 'check) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (copy-recursively "." (string-append + (assoc-ref outputs "out") + "/include/CL"))))))) + (synopsis "The Khronos OpenCL headers") + (description "This package provides the Khronos OpenCL headers") + (home-page "https://www.khronos.org/registry/cl/") + (license (list license:gpl2))))) diff --git a/gn/packages/erlang.scm b/gn/packages/erlang.scm new file mode 100644 index 0000000..ebf98cf --- /dev/null +++ b/gn/packages/erlang.scm @@ -0,0 +1,132 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Steve Sprang <scs@stevesprang.com> +;;; Copyright © 2016 Leo Famulari <leo@famulari.name> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages erlang) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system trivial) + #:use-module (gnu packages base) + #:use-module (gnu packages compression) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages perl) + #:use-module (gnu packages tls)) + +(define-public erlang + ;; Keep in sync with 'erlang-manpages'! + (package + (name "erlang") + (version "18.3") + (source (origin + (method url-fetch) + (uri (string-append + "http://erlang.org/download/otp_src_" + version + ".tar.gz")) + (sha256 + (base32 + "1hy9slq9gjvwdb504dmvp6rax90isnky6chqkyq5v4ybl4lq3azx")))) + (build-system gnu-build-system) + (native-inputs + `(("perl" ,perl))) + (inputs + `(("ncurses" ,ncurses) + ("openssl" ,openssl))) + (arguments + `(#:configure-flags + (list (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl"))) + #:phases + (modify-phases %standard-phases + (add-after 'patch-source-shebangs 'patch-source-env + (lambda _ + (let ((escripts + (append + (find-files "." "\\.escript") + (find-files "lib/stdlib/test/escript_SUITE_data/") + '("erts/lib_src/utils/make_atomics_api" + "erts/preloaded/src/add_abstract_code" + "lib/diameter/bin/diameterc" + "lib/reltool/examples/display_args" + "lib/reltool/examples/mnesia_core_dump_viewer" + "lib/snmp/src/compile/snmpc.src" + "make/verify_runtime_dependencies" + "make/emd2exml.in")))) + (substitute* escripts + (("/usr/bin/env") (which "env")))))) + (add-after 'unpack 'path-to-rm + (lambda _ + (substitute* "erts/configure" + (("/bin/rm") (which "rm"))) + (substitute* "lib/odbc/configure" + (("/bin/rm") (which "rm"))))) + (add-before 'configure 'set-erl-top + (lambda _ + (setenv "ERL_TOP" (getcwd)))) + (add-after 'install 'patch-erl + ;; This only works after install. + (lambda _ + (substitute* (string-append (assoc-ref %outputs "out") "/bin/erl") + (("sed") (which "sed")))))) + #:test-target "release_tests")) + (home-page "http://erlang.org/") + (synopsis "The Erlang programming language") + (description + "Erlang is a programming language used to build massively +scalable soft real-time systems with requirements on high +availability. Some of its uses are in telecoms, banking, e-commerce, +computer telephony and instant messaging. Erlang's runtime system has +built-in support for concurrency, distribution and fault tolerance.") + (license license:asl2.0))) + +(define-public erlang-manpages + ;; Keep in sync with 'erlang'! + (package + (name "erlang-manpages") + (version (package-version erlang)) + (source (origin + (method url-fetch) + (uri (string-append "http://erlang.org/download/otp_doc_man_" + version ".tar.gz")) + (sha256 + (base32 + "1hpcr7a3dx2y9gnb53bvb4g6lyvbwigadl9s3f978s01x40f32wp")))) + (build-system trivial-build-system) + (arguments + '(#:modules ((guix build utils)) + #:builder + (begin + (use-modules (guix build utils)) + (let* ((gz (assoc-ref %build-inputs "gzip")) + (tar (assoc-ref %build-inputs "tar")) + (out (assoc-ref %outputs "out")) + (man (string-append out "/share/man"))) + (setenv "PATH" (string-append tar "/bin:" gz "/bin")) + (mkdir-p man) + (with-directory-excursion man + (zero? (system* "tar" "xvf" + (assoc-ref %build-inputs "source")))) + (delete-file (string-append man "/PR.template")) + (delete-file (string-append man "/README")))))) + (native-inputs `(("tar" ,tar) + ("gzip" ,gzip))) + (synopsis "Man pages of Erlang") + (description "This provides the man pages of Erlang.") + (home-page (package-home-page erlang)) + (license license:asl2.0))) diff --git a/gn/packages/genenetwork.scm b/gn/packages/genenetwork.scm new file mode 100644 index 0000000..79ad3fe --- /dev/null +++ b/gn/packages/genenetwork.scm @@ -0,0 +1,298 @@ +;; Bioinformatics module + +(define-module (gn packages genenetwork) + #: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 build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (guix build-system perl) + #:use-module (guix build-system python) + ;; #:use-module (guix build-system ruby) + #:use-module (guix build-system r) + #:use-module (guix build-system trivial) + #:use-module (gnu packages) + #:use-module (gnu packages algebra) + #:use-module (gnu packages base) + #:use-module (gnu packages bioinformatics) + #:use-module (gnu packages boost) + #:use-module (gnu packages compression) + #:use-module (gnu packages databases) + #:use-module (gnu packages cpio) + #:use-module (gnu packages file) + #:use-module (gnu packages gcc) + #:use-module (gnu packages graphviz) + #:use-module (gnu packages java) + #:use-module (gnu packages linux) + #:use-module (gnu packages ldc) + #:use-module (gnu packages machine-learning) + #:use-module (gnu packages maths) + #:use-module (gnu packages ncurses) + #:use-module (gnu packages perl) + #: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 statistics) + #:use-module (gnu packages tbb) + #:use-module (gnu packages textutils) + #:use-module (gnu packages vim) + #:use-module (gnu packages web) + #:use-module (gnu packages xml) + #:use-module (gnu packages zip) + #:use-module (gnu packages bootstrap) + #:use-module (gn packages bioinformatics) + #:use-module (gn packages python) + #:use-module (gn packages statistics) + #:use-module (srfi srfi-1)) + +(define-public my-deploy + (package + (name "my-deploy") + (version "0.0.1") + (source #f) + (build-system trivial-build-system) + (arguments + `(#:guile ,%bootstrap-guile + #:modules ((guix build utils)) + #:builder + (let* ((out (assoc-ref %outputs "out")) + (bash (assoc-ref %build-inputs "bash")) + (foo (string-append out "/foo"))) + (begin + (use-modules (guix build utils)) + (mkdir out) + (call-with-output-file foo + (lambda (p) + (format p + "#!~a~%echo \"${GUIX_FOO} ${GUIX_BAR}\"~%" + bash))) + (chmod foo #o777) + ;; wrap-program uses `which' to find bash for the wrapper + ;; shebang, but it can't know about the bootstrap bash in + ;; the store, since it's not named "bash". Help it out a + ;; bit by providing a symlink it this package's output. + (symlink bash (string-append out "/bash")) + (setenv "PATH" out) + (wrap-program foo `("GUIX_FOO" prefix ("hello"))) + (wrap-program foo `("GUIX_BAR" prefix ("world"))) + #t)))) + (inputs `(("bash" ,(search-bootstrap-binary "bash" + (%current-system))))) + + (home-page #f) + (synopsis #f) + (description #f) + (license #f))) + +(define-public genenetwork1 + (let ((commit "d622c803b")) + (package + (name "genenetwork1") + (version (string-append "1.0-" commit )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/genenetwork/genenetwork.git") + ;; (url "https://github.com/pjotrp/genenetwork.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "14fzfcm4vl20mlhxjslfa01i1nmxpk8lbxmfvpq6dyfc22ir62py")))) + (propagated-inputs `( + ("python" ,python-2) ;; probably superfluous + ("r" ,r) + )) + (inputs `( + ;; http://spring211.uthsc.edu/gn/thirdparty.tbz + ;; graphviz-2.22.2 htmlgen json numarray-1.5.2 piddle PIL pp-1.5.7 pyx pyXLWriter svg + ("mysql" ,mysql) + ("nginx" ,nginx) + ("graphviz" ,graphviz) + ; ("python2-jinja2" ,python2-jinja2) + ; ("python2-sqlalchemy" ,python2-sqlalchemy) + ; ("python2-setuptools" ,python2-setuptools) + ; ("python2-scipy" ,python2-scipy) + ;; looks like python-numarray is not needed + ; ("python2-numpy" ,python2-numpy) + ; ("python2-pandas" ,python2-pandas) + ; ("python2-passlib" ,python2-passlib) + ; ("python2-redis" ,python2-redis) + ; ("python2-requests" ,python2-requests) + ; ("python2-simplejson" ,python2-simplejson) + ; ("python2-pyyaml" ,python2-pyyaml) + ;; python-yolk is not needed + ("python2-pil" ,python2-pil) + ("python2-numarray" ,python2-numarray) + ("plink" ,plink) ;; gn1 + ; ("r-qtl" ,r-qtl) + )) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:tests? #f)) ; no 'setup.py test' + (home-page "http://genenetwork.org/") + (synopsis "Full genenetwork services") + (description "Genenetwork installation sumo.") + (license license:agpl3+)))) + +(define-public genenetwork2 + (let ((commit "a8fcff44d3bd768d02e7ed0c80b84d2516bdad2a")) + (package + (name "genenetwork2") + (version (string-append "2.0-" (string-take commit 7) )) + (source (origin + (method git-fetch) + (uri (git-reference + ;; (url "https://github.com/genenetwork/genenetwork2.git") + (url "https://github.com/genenetwork/genenetwork2_diet.git") + (commit commit))) + (file-name (string-append name "-" (string-take commit 7))) + (sha256 + (base32 + "1zs6jgrpwzxmfjz03whnaw8q6h8f53mycl440p058gfn8x7pd618")))) + (propagated-inputs `( ;; propagated for development purposes + ("python" ,python-2) ;; probably superfluous + ("r" ,r) + ("r-wgcna" ,r-wgcna) + ("r-qtl" ,r-qtl) + ("redis" ,redis) + ("mysql" ,mysql) + ("gemma" ,gemma-git) + ("genenetwork2-files-small" ,genenetwork2-files-small) + ("pylmm-gn2" ,pylmm-gn2) + ("plink2" ,plink-ng) + ("nginx" ,nginx) + ("python2-flask" ,python2-flask) + ("python2-htmlgen-gn" ,python2-htmlgen-gn) + ("python2-jinja2" ,python2-jinja2) + ("python2-sqlalchemy" ,python2-sqlalchemy) + ("python2-flask-sqlalchemy" ,python2-flask-sqlalchemy) + ("python2-setuptools" ,python2-setuptools) + ("python2-scipy" ,python2-scipy) + ;; looks like python-numarray is not needed + ("python2-mysqlclient" ,python2-mysqlclient) + ("python2-numarray" ,python2-numarray) + ("python2-numpy" ,python2-numpy) + ("python2-pandas" ,python2-pandas) + ("python2-parallel" ,python2-parallel) + ("python2-passlib" ,python2-passlib) + ("python2-piddle-gn" ,python2-piddle-gn) + ("python2-redis" ,python2-redis) + ("python2-pil" ,python2-pil) + ("python2-requests" ,python2-requests) + ("python2-rpy2" ,python2-rpy2) + ("python2-scipy" ,python2-scipy) + ("python2-simplejson" ,python2-simplejson) + ("python2-pyyaml" ,python2-pyyaml) + ("python2-xlsxwriter" ,python2-xlsxwriter) + ;; python-yolk is not needed + ("plink" ,plink) + ("qtlreaper" ,qtlreaper) + )) + (build-system python-build-system) + (arguments + `(#:python ,python-2 + #:phases + (modify-phases %standard-phases + (add-before 'install 'fix-paths + (lambda* (#:key inputs #:allow-other-keys) + (let* ( + (datafiles (string-append (assoc-ref inputs "genenetwork2-files-small") "/share/genenetwork2" )) + (pylmmcmd (string-append (assoc-ref inputs "pylmm-gn2") "/bin/pylmm_redis")) + (plink2cmd (string-append (assoc-ref inputs "plink2") "/bin/plink2")) + (gemmacmd (string-append (assoc-ref inputs "gemma") "/bin/gemma")) + ) + + (substitute* '("etc/default_settings.py") + (("^GENENETWORK_FILES =.*") (string-append "GENENETWORK_FILES = \"" datafiles "\"\n" )) + (("^PYLMM_COMMAND =.*") (string-append "PYLMM_COMMAND = \"" pylmmcmd "\"\n" )) + (("^PLINK_COMMAND =.*") (string-append "PLINK_COMMAND = \"" plink2cmd "\"\n" )) + (("^GEMMA_COMMAND =.*") (string-append "GEMMA_COMMAND = \"" gemmacmd "\"\n" )) + ) + )))) + #:tests? #f)) ; no 'setup.py test' + (home-page "http://genenetwork.org/") + (synopsis "Full genenetwork services") + (description "Genenetwork installation sumo.") + (license license:agpl3+)))) + +;; ./pre-inst-env guix download http://files.genenetwork.org/raw_database/db_webqtl_s.zip +;; 0sscjh0wml2lx0mb43vf4chg9gpbfi7abpjxb34n3kyny9ll557x + +(define-public genenetwork2-files-small1 + (let ((pfff "xx")) + (package + (name "genenetwork2-files-small") + (version "1.0") + (source + (origin + (method url-fetch) + (uri "http://files.genenetwork.org/data_files/gn2_data_s-20160303-C9E672ECED1F51B915DE419B5B2C524E.tar.lz4") + (file-name (string-append name "-" pfff)) + (sha256 + (base32 "058ymx3af6abdhdxyxj0i9qfvb6v7j091frjpp6jh4ahks7r23lj")))) + (build-system trivial-build-system) + (native-inputs `(("lz4" ,lz4) + ("tar" ,tar) + ("source" ,source))) + + (arguments + `(#:modules ((guix build utils)) + #:builder + (let* ((out (assoc-ref %outputs "out")) + (name "gn2_data_s") + (tarfn (string-append name ".tar")) + (targetdir (string-append out "/share/genenetwork2/")) + ) + (begin + (use-modules (guix build utils)) + (let ((source (assoc-ref %build-inputs "source")) + (lz4unpack (string-append (assoc-ref %build-inputs "lz4") "/bin/lz4")) + (tar (string-append (assoc-ref %build-inputs "tar") "/bin/tar")) + ) + (and + (zero? (system* lz4unpack source "-d" tarfn)) + (zero? (system* tar "xf" tarfn)) + (mkdir-p targetdir) + (copy-recursively name targetdir) + )))))) + (home-page "http://genenetwork.org/") + (synopsis "Small file archive to run on genenetwork") + (description "Genenetwork genotype and mapping files.") + (license license:agpl3+)))) + +(define-public genenetwork2-database-small + (let ((md5 "93e745e9c")) + (package + (name "genenetwork2-database-small") + (version "1.0") + (source + (origin + (method url-fetch) + (uri "http://files.genenetwork.org/raw_database/db_webqtl_s.zip") + (file-name (string-append name "-" md5)) + (sha256 + (base32 "0sscjh0wml2lx0mb43vf4chg9gpbfi7abpjxb34n3kyny9ll557x")))) + (build-system trivial-build-system) + (native-inputs `(("unzip" ,unzip) + ("source" ,source))) + + (arguments + `(#:modules ((guix build utils)) + #:builder (begin + (use-modules (guix build utils)) + (let ((source (assoc-ref %build-inputs "source")) + (unzip (string-append (assoc-ref %build-inputs "unzip") "/bin/unzip")) + ) + (and (mkdir "db") + (zero? (system* unzip source "-d" "db")) + (chdir "db")))))) + (home-page "http://genenetwork.org/") + (synopsis "Small database to run on genenetwork") + (description "Genenetwork installation + database.") + (license license:agpl3+)))) + diff --git a/gn/packages/glfw.scm b/gn/packages/glfw.scm new file mode 100644 index 0000000..30342f0 --- /dev/null +++ b/gn/packages/glfw.scm @@ -0,0 +1,83 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages glfw) + #:use-module ((guix licenses)) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (guix packages) + #:use-module (gnu packages algebra) + #:use-module (gnu packages autotools) + #:use-module (gnu packages curl) + #:use-module (gnu packages gawk) + #:use-module (gnu packages cmake) + #:use-module (gnu packages boost) + #:use-module (gnu packages glib) + #:use-module (gnu packages image) + #:use-module (gnu packages video) + #:use-module (gnu packages textutils) + #:use-module (gnu packages gl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages maths) + #:use-module (gnu packages web) + #:use-module (gnu packages databases) + #:use-module (gnu packages python) + #:use-module (gnu packages xorg) + #:use-module (gnu packages version-control) + #:use-module (gnu packages linux)) + +(define-public glfw + (package + (name "glfw") + (version "3.1.2") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/glfw/glfw/archive/" + version ".tar.gz")) + (sha256 + (base32 + "08pixv8hd5xsccf7l8cqcijjqaq4k4da8qbp77wggal2fq445ika")))) + (build-system cmake-build-system) + (arguments `(#:configure-flags '("-DBUILD_SHARED_LIBS=ON") #:tests? #f)) + (native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("cmake" ,cmake) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config))) + (inputs `(("curl" ,curl) + ("dbus" ,dbus) + ("enca" ,enca) + ("eudev" ,eudev) + ("glew" ,glew) + ("libcap" ,libcap) + ("libjpeg" ,libjpeg) + ("libltdl" ,libltdl) + ("libtiff" ,libtiff) + ("mesa-utils" ,mesa-utils) + ("randrproto" ,randrproto) + ("libxrandr" ,libxrandr) + ("xineramaproto" ,xineramaproto) + ("libxinerama" ,libxinerama) + ("libxcursor" ,libxcursor) + ("mysql" ,mysql) + ("python" ,python-2))) + (home-page "http://www.glfw.org/") + (synopsis "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.") + (description "glfw is an Open Source, multi-platform library for creating windows with OpenGL contexts and receiving input and events.") + (license (list gpl2)))) diff --git a/gn/packages/gtest.scm b/gn/packages/gtest.scm new file mode 100644 index 0000000..f8b34e9 --- /dev/null +++ b/gn/packages/gtest.scm @@ -0,0 +1,76 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages gtest) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (guix packages) + #:use-module (gnu packages algebra) + #:use-module (gnu packages bootstrap) + #:use-module (gnu packages base) + #:use-module (gnu packages autotools) + #:use-module (gnu packages curl) + #:use-module (gnu packages gawk) + #:use-module (gnu packages cmake) + #:use-module (gnu packages boost) + #:use-module (gnu packages glib) + #:use-module (gnu packages image) + #:use-module (gnu packages video) + #:use-module (gnu packages textutils) + #:use-module (gnu packages gl) + #:use-module (gnu packages gcc) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) + #:use-module (gnu packages ruby) + #:use-module (gnu packages web) + #:use-module (gnu packages python) + #:use-module (gnu packages xorg) + #:use-module (gnu packages version-control) + #:use-module (gnu packages zip) + #:use-module (gnu packages linux)) + +(define-public gtest + (let ((revision "1") + (commit "13206d6f53aaff844f2d3595a01ac83a29e383db")) + (package + (name "gtest") + (version (string-append "1.7.0." revision "." commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url + "https://github.com/google/googletest.git") + (commit commit))) + (file-name (string-append name "-" version "-checkout")) + (sha256 + (base32 + "1v73r7wm9q9kpjbpbk0qs15703y2caaz6dkvz9bkn7nnv98jbqqc")))) + (build-system cmake-build-system) + (native-inputs + `(("python" ,python-wrapper))) + (synopsis "") + (description + "") + (home-page "") + (license license:expat)))) diff --git a/gn/packages/hyphy.scm b/gn/packages/hyphy.scm new file mode 100644 index 0000000..fea73a4 --- /dev/null +++ b/gn/packages/hyphy.scm @@ -0,0 +1,84 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages hyphy) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (guix packages) + #:use-module (gnu packages algebra) + #:use-module (gnu packages autotools) + #:use-module (gnu packages curl) + #:use-module (gnu packages gawk) + #:use-module (gnu packages cmake) + #:use-module (gnu packages boost) + #:use-module (gnu packages glib) + #:use-module (gnu packages image) + #:use-module (gnu packages video) + #:use-module (gnu packages textutils) + #:use-module (gnu packages gl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages maths) + #:use-module (gnu packages web) + #:use-module (gnu packages databases) + #:use-module (gnu packages python) + #:use-module (gnu packages xorg) + #:use-module (gnu packages version-control) + #:use-module (gnu packages linux)) + +(define-public hyphy + (package + (name "hyphy") + (version "2.2.6") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/veg/hyphy/archive/" version + ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "00i3609nywb1xfq50p3kvfbvahql241ciq23jrf67z0yp4y5l5a9")))) + (inputs + `(("python" ,python-2) + ("fftw-openmpi" ,fftw-openmpi))) + (build-system cmake-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack `bootstrap + (lambda _ + (zero? (system* "make" "MPI"))))))) + (arguments + `(#:configure-flags '("-DCMAKE_BUILD_TYPE=Release") + #:tests? #f)) + (synopsis "hyphy: an open-source software package for the analysis +of genetic sequences using techniques in phylogenetics, molecular +evolution, and machine learning.") + (description "HyPhy is an open-source software package for the +analysis of genetic sequences using techniques in phylogenetics, +molecular evolution, and machine learning. It features a complete +graphical user interface (GUI) and a rich scripting language for +limitless customization of analyses. Additionally, HyPhy features +support for parallel computing environments (via message passing +interface (MPI)) and it can be compiled as a shared library and called +from other programming environments such as Python and R. ") + (home-page "http://hyphy.org") + (license license:expat))) + + + diff --git a/gn/packages/java.scm b/gn/packages/java.scm new file mode 100644 index 0000000..3fce390 --- /dev/null +++ b/gn/packages/java.scm @@ -0,0 +1,299 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Roel Janssen <roel@gnu.org> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gnu packages java) + #: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 svn-download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system ant) + #:use-module (gnu packages) + #:use-module (gnu packages autotools) + #:use-module (gnu packages bioinformatics) + #:use-module (gnu packages compression) + #:use-module (gnu packages gcc) + #:use-module (gnu packages java) + #:use-module (gnu packages perl) + #:use-module (gnu packages certs) + #:use-module (gnu packages zip)) + +;; ---------------------------------------------------------------------------- +;; WORKING PACKAGES +;; ---------------------------------------------------------------------------- + +(define-public xz-java + (package + (name "xz-java") + (version "1.5") + (source (origin + (method url-fetch) + (uri (string-append "http://tukaani.org/xz/" + name "-" version ".zip")) + (sha256 + (base32 "0x6vn9dp9kxk83x2fp3394n95dk8fx9yg8jns9371iqsn0vy8ih1")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; There's no test target. + #:jdk ,icedtea-7 + #:phases + (modify-phases %standard-phases + (replace 'unpack + (lambda _ + (mkdir-p "source") + (chdir "source") + (zero? (system* "unzip" (assoc-ref %build-inputs "source"))))) + (replace 'install + (lambda _ + (let ((out (string-append (assoc-ref %outputs "out") + "/share/java/xz/"))) + (mkdir-p out) + (copy-file "build/jar/xz.jar" (string-append out "/xz-1.5.jar")))))))) + (native-inputs + `(("unzip" ,unzip))) + (home-page "http://tukaani.org/xz/java.html") + (synopsis "Implementation of XZ data compression in pure Java") + (description "This aims to be a complete implementation of XZ data +compression in pure Java. Single-threaded streamed compression and +decompression and random access decompression have been fully implemented.") + (license license:public-domain))) + +(define-public jakarta-oro + (package + (name "jakarta-oro") + (version "2.0.8") + (source (origin + (method url-fetch) + (uri (string-append "http://archive.apache.org/dist/jakarta/oro/" + name "-" version ".tar.gz")) + (sha256 + (base32 "0rpmnsskiwmsy8r0sckz5n5dbvh3vkxx8hpm177c754r8xy3qksc")))) + (build-system ant-build-system) + (arguments + `(#:tests? #f ; There is no 'check' target + #:phases + (modify-phases %standard-phases + (replace 'install + (lambda _ + (let ((out (string-append (assoc-ref %outputs "out") + "/share/java/oro/"))) + (mkdir-p out) + (copy-file "jakarta-oro-2.0.8.jar" (string-append out "/oro-2.0.8.jar")))))) + )) + (home-page "http://jakarta.apache.org/oro/") + (synopsis "Set of text-processing Java classes") + (description "The Jakarta-ORO Java classes are a set of text-processing +Java classes that provide Perl5 compatible regular expressions, AWK-like regular +expressions, glob expressions, and utility classes for performing substitutions, +splits, filtering filenames, etc.") + (license license:asl1.1))) + +;; ---------------------------------------------------------------------------- +;; IN PROGRESS +;; ---------------------------------------------------------------------------- + +(define-public jsch + (package + (name "jsch") + (version "0.1.53") + (source (origin + (method url-fetch) + (uri (string-append "mirror://sourceforge.net/jsch/" name "/" + version "/" name "-" version ".zip")) + (sha256 + (base32 "1729j7khwj6yvkr26fjaf273i3krhz2n1m3mbv5ms4x00qrhrxdn")))) + (build-system ant-build-system) + (home-page "http://www.jcraft.com/jsch/") + (synopsis "JSch is a pure Java implementation of SSH2") + (description "JSch is a pure Java implementation of SSH2. JSch allows you +to connect to an sshd server and use port forwarding, X11 forwarding, file +transfer, etc., and you can integrate its functionality into your own Java +programs.") + (license license:bsd-3))) + +(define-public commons-vfs + (package + (name "commons-vfs") + (version "2.0") + (source (origin + (method url-fetch) + (uri (string-append + "http://mirrors.supportex.net/apache/commons/vfs/source/" + name "-" version "-src.tar.gz")) + (sha256 + (base32 "1gkfg9g14kjkh2kf041ssdz9xnw7hpfmdsyrs1bbhyzikwg4s3d9")))) + (build-system ant-build-system) + (home-page "https://commons.apache.org/proper/commons-vfs/") + (synopsis "Commons Virtual File System API for Java") + (description "Commons VFS provides a single API for accessing various +different file systems. It presents a uniform view of the files from various +different sources, such as the files on local disk, on an HTTP server, or +inside a Zip archive. ") + (license license:asl2.0))) + +(define-public ivy +;; Ivy tries to download the following packages: +;; - https://repo1.maven.org/maven2/org/apache/ant/ant/1.7.1/ant-1.7.1.jar => We have ant-1.9.6 +;; - https://repo1.maven.org/maven2/org/apache/ant/ant-nodeps/1.7.1/ant-nodeps-1.7.1.jar => Probably not needed +;; - https://repo1.maven.org/maven2/org/apache/ant/ant-trax/1.7.1/ant-trax-1.7.1.jar => Classes moved to ant.jar +;; - https://repo1.maven.org/maven2/commons-httpclient/commons-httpclient/3.0/commons-httpclient-3.0.jar +;; - https://repo1.maven.org/maven2/oro/oro/2.0.8/oro-2.0.8.jar => Packaged +;; - https://repo1.maven.org/maven2/commons-vfs/commons-vfs/1.0/commons-vfs-1.0.jar +;; - https://repo1.maven.org/maven2/com/jcraft/jsch/0.1.50/jsch-0.1.50.jar +;; - https://repo1.maven.org/maven2/com/jcraft/jsch.agentproxy/0.0.6/jsch.agentproxy-0.0.6.jar +;; - https://repo1.maven.org/maven2/com/jcraft/jsch.agentproxy.connector-factory/0.0.6/jsch.agentproxy.connector-factory-0.0.6.jar +;; - https://repo1.maven.org/maven2/com/jcraft/jsch.agentproxy.jsch/0.0.6/jsch.agentproxy.jsch-0.0.6.jar +;; - https://repo1.maven.org/maven2/org/bouncycastle/bcpg-jdk14/1.45/bcpg-jdk14-1.45.jar +;; - https://repo1.maven.org/maven2/org/bouncycastle/bcprov-jdk14/1.45/bcprov-jdk14-1.45.jar +;; - https://repo1.maven.org/maven2/junit/junit/3.8.2/junit-3.8.2.jar +;; - https://repo1.maven.org/maven2/commons-lang/commons-lang/2.6/commons-lang-2.6.jar +;; - https://repo1.maven.org/maven2/org/apache/ant/ant-testutil/1.7.0/ant-testutil-1.7.0.jar +;; - https://repo1.maven.org/maven2/ant/ant-launcher/1.6.2/ant-launcher-1.6.2.jar +;; - https://repo1.maven.org/maven2/ant-contrib/ant-contrib/1.0b3/ant-contrib-1.0b3.jar +;; - https://repo1.maven.org/maven2/xerces/xercesImpl/2.6.2/xercesImpl-2.6.2.jar +;; - https://repo1.maven.org/maven2/xerces/xmlParserAPIs/2.6.2/xmlParserAPIs-2.6.2.jar + (package + (name "ivy") + (version "2.4.0") + (source (origin + (method url-fetch) + (uri (string-append "http://ftp.nluug.nl/internet/apache/ant/" name "/" + version "/apache-" name "-" version "-src.tar.gz")) + (sha256 + (base32 "1xkfn57g2m7l6y0xdq75x5rnrgk52m9jx2xah70g3ggl8750hbr0")))) + (build-system ant-build-system) + (inputs + `(("nss-certs" ,nss-certs))) + (home-page "http://ant.apache.org/ivy/") + (synopsis "Dependency manager for Ant") + (description "Apache Ivy is a popular dependency manager focusing on +flexibility and simplicity.") + (license license:asl2.0))) + + +;; ---------------------------------------------------------------------------- +;; ON HOLD: WAITING FOR MAVEN PACKAGES +;; ---------------------------------------------------------------------------- + +;; TODO: Needs commons-compress +;; (define-public ant-compress +;; (package +;; (name "ant-compress") +;; (version "1.4") +;; (source (origin +;; (method url-fetch) +;; (uri "https://www.apache.org/dist/ant/antlibs/compress/source/apache-ant-compress-1.4-src.tar.gz")) +;; (sha256 +;; (base32 "17v5i11srmi12ckgrvhlwn0gvapgizs5672x252h143r0ya4c04d"))) +;; )) + +;; TODO: Needs Maven. +;; (define-public commons-compress +;; (package +;; (name "apache-commons-compress") +;; (version "1.10") +;; (source (origin +;; (method url-fetch) +;; (uri ("http://ftp.tudelft.nl/apache//commons/compress/source/commons-compress-1.10-src.tar.gz"))) +;; (sha256 +;; (base32 "06b40k9dmgqkga3qmfpgzq87jf3fkcxnwaiyczclh58yibg19604"))) +;; )) + +;; TODO: Needs Maven. +;; (define-public jcommander +;; (package +;; (name "jcommander") +;; (version "1.48") +;; (source (origin +;; (method url-fetch) +;; (uri (string-append "https://github.com/cbeust/jcommander/archive/" +;; name "-" version ".tar.gz")) +;; (sha256 +;; (base32 "1qn56hd6sxkfdv9j6pwf8c7ia00n39zry236a6achc87wq2kmfnw")))) +;; (build-system ant-build-system) +;; (home-page "http://jcommander.org/") +;; (synopsis "Java framework for parsing command line parameters") +;; (description "JCommander is a very small Java framework that makes it +;; trivial to parse command line parameters. ") +;; (license license:asl2.0))) + +;; TODO: Needs Maven. +;; (define-public maven-remote-resources-plugin +;; (package +;; (name "maven-remote-resources-plugin") +;; (version "1.5") +;; (source (origin +;; (method svn-fetch) +;; (uri (svn-reference +;; (url (string-append "http://svn.apache.org/viewvc/maven/plugins/tags/" +;; name "-" version)) +;; (revision 1513840))) +;; (file-name (string-append name "-" version "-checkout")) +;; (sha256 +;; (base32 "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i")))) +;; (build-system ant-build-system) +;; (home-page "https://maven.apache.org/plugins/maven-remote-resources-plugin/") +;; (synopsis "") +;; (description "") +;; (license license:asl2.0))) + +;; TODO: Needs Maven. +;; (define-public junit +;; (package +;; (name "junit") +;; (version "4.12") +;; (source (origin +;; (method url-fetch) +;; (uri (string-append "https://github.com/junit-team/" +;; name "/archive/r" version ".tar.gz")) +;; (sha256 +;; (base32 "1r6ww2y3jpbpqh03r0966xxiz2vs8n72g6n6l0sjs3aspy56v8b1")))) +;; (build-system ant-build-system) +;; (home-page "http://junit.org/") +;; (synopsis "Framework to write repeatable tests") +;; (description "JUnit is a simple framework to write repeatable tests. It is +;; an instance of the xUnit architecture for unit testing frameworks.") +;; (license license:asl2.0))) + +(define-public maven + (package + (name "maven") + (version "3.3.9") + (source (origin + (method url-fetch) + (uri (string-append "http://apache.proserve.nl/maven/maven-3/" + version "/source/apache-maven-" version "-src.tar.gz")) + (sha256 + (base32 "1g0iavyb34kvs3jfrx2hfnr8lr11m39sj852cy7528wva1glfl4i")))) + (build-system ant-build-system) + (arguments + `(#:make-flags "-Dmaven.home=build/" + #:phases + (modify-phases %standard-phases + (add-before 'build 'set-m2-variable + (lambda _ + (setenv "M2_HOME" (string-append (assoc-ref %outputs "out") "/maven-3.3.9"))))))) + (home-page "https://maven.apache.org/") + (synopsis "") + (description "Apache Maven is a software project management and +comprehension tool. Based on the concept of a project object model (POM), +Maven can manage a project's build, reporting and documentation from a central +piece of information.") + (license license:asl2.0))) diff --git a/gn/packages/llvm.scm b/gn/packages/llvm.scm new file mode 100644 index 0000000..607f7c2 --- /dev/null +++ b/gn/packages/llvm.scm @@ -0,0 +1,65 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> +;;; Copyright © 2015 Mark H Weaver <mhw@netris.org> +;;; Copyright © 2015 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages llvm) + #:use-module (guix packages) + #:use-module (guix licenses) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (gnu packages) + #:use-module (gnu packages gcc) + #:use-module (gnu packages bootstrap) ;glibc-dynamic-linker + #:use-module (gnu packages perl) + #:use-module (gnu packages python) + #:use-module (gnu packages xml)) + + +(define-public llvm +(package + (name "llvm") + (version "3.7.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://llvm.org/releases/" + version "/llvm-" version ".src.tar.xz")) + (sha256 + (base32 + "1masakdp9g2dan1yrazg7md5am2vacbkb3nahb3dchpc1knr8xxy")))) + (build-system cmake-build-system) + (native-inputs + `(("python" ,python-wrapper) + ("perl" ,perl))) + (arguments + `(#:configure-flags '("-DCMAKE_SKIP_BUILD_RPATH=FALSE" + "-DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE"))) + (home-page "http://www.llvm.org") + (synopsis "Optimizing compiler infrastructure") + (description + "LLVM is a compiler infrastructure designed for compile-time, link-time, +runtime, and idle-time optimization of programs from arbitrary programming +languages. It currently supports compilation of C and C++ programs, using +front-ends derived from GCC 4.0.1. A new front-end for the C family of +languages is in development. The compiler infrastructure includes mirror sets +of programming tools as well as libraries with equivalent functionality.") + (license ncsa))) diff --git a/gn/packages/ocl-icd.scm b/gn/packages/ocl-icd.scm new file mode 100644 index 0000000..b33fe9d --- /dev/null +++ b/gn/packages/ocl-icd.scm @@ -0,0 +1,99 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages ocl-icd) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (gnu packages) + #:use-module (gnu packages autotools) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages linux) + #:use-module (gnu packages textutils) + #:use-module (gnu packages base) + #:use-module (gnu packages ruby) + #:use-module (gnu packages zip) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages bootstrap) + #:use-module (guix git-download)) + +(define-public ocl-icd + (package + (name "ocl-icd") + (version "2.2.9") + (source (origin + (method url-fetch) + (uri (string-append "https://forge.imag.fr/frs/download.php/716/ocl-icd-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1rgaixwnxmrq2aq4kcdvs0yx7i6krakarya9vqs7qwsv5hzc32hc")))) + (inputs `(("zip" ,zip) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("ruby" ,ruby) + ("libtool" ,libtool) + ("opencl-headers" ,opencl-headers) + ("libgcrypt" ,libgcrypt))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack `bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (home-page "https://forge.imag.fr/projects/ocl-icd/") + (synopsis "OpenCL implementations are provided as ICD (Installable Client Driver).") + (description "OpenCL implementations are provided as ICD (Installable Client Driver). + An OpenCL program can use several ICD thanks to the use of an ICD Loader as provided by this project. + This free ICD Loader can load any (free or non free) ICD") + (license license:gpl2))) + + (define-public opencl-headers +(let ((commit "c1770dc")) + (package + (name "opencl-headers") + (version (string-append "2.1-" commit )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KhronosGroup/OpenCL-Headers.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "0m9fkblqja0686i2jjqiszvq3df95gp01a2674xknlmkd6525rck")))) + (propagated-inputs '()) + (inputs '()) + (native-inputs '()) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (delete 'check) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (copy-recursively "." (string-append + (assoc-ref outputs "out") + "/include/CL"))))))) + (synopsis "The Khronos OpenCL headers") + (description "This package provides the Khronos OpenCL headers") + (home-page "https://www.khronos.org/registry/cl/") + (license license:gpl2)))) diff --git a/gn/packages/opencl-headers.scm b/gn/packages/opencl-headers.scm new file mode 100644 index 0000000..bddd136 --- /dev/null +++ b/gn/packages/opencl-headers.scm @@ -0,0 +1,63 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages opencl-headers) + #:use-module ((guix licenses)) + #:use-module (guix download) + #:use-module (guix git-download) + #:use-module (guix packages) + #:use-module (guix build-system gnu) + #:use-module (gnu packages gl) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages xorg) + #:use-module (gnu packages version-control) + #:use-module (gnu packages linux)) + +(define-public opencl-headers +(let ((commit "c1770dc")) + (package + (name "opencl-headers") + (version (string-append "2.1-" commit )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KhronosGroup/OpenCL-Headers.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "0m9fkblqja0686i2jjqiszvq3df95gp01a2674xknlmkd6525rck")))) + (propagated-inputs '()) + (inputs '()) + (native-inputs '()) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (delete 'check) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (copy-recursively "." (string-append + (assoc-ref outputs "out") + "/include/CL"))))))) + (synopsis "The Khronos OpenCL headers") + (description "This package provides the Khronos OpenCL headers") + (home-page "https://www.khronos.org/registry/cl/") + (license gpl2)))) diff --git a/gn/packages/opencl-icd-loader.scm b/gn/packages/opencl-icd-loader.scm new file mode 100644 index 0000000..a8fbc7b --- /dev/null +++ b/gn/packages/opencl-icd-loader.scm @@ -0,0 +1,95 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages opencl-icd-loader) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix git-download) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (guix packages) + #:use-module (gnu packages algebra) + #:use-module (gnu packages autotools) + #:use-module (gnu packages curl) + #:use-module (gnu packages boost) + #:use-module (gnu packages gawk) + #:use-module (gnu packages cmake) + #:use-module (gnu packages glib) + #:use-module (gnu packages image) + #:use-module (gnu packages video) + #:use-module (gnu packages textutils) + #:use-module (gnu packages gl) + #:use-module (gnu packages llvm) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) + #:use-module (gnu packages web) + #:use-module (gnu packages perl) + #:use-module (gnu packages python) + #:use-module (gnu packages xorg) + #:use-module (gnu packages version-control) + #:use-module (gnu packages linux)) + +(define-public opencl-icd-loader +(let ((commit "bf894eb")) + (package + (name "opencl-icd-loader") + (version (string-append "2.1-" commit )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KhronosGroup/OpenCL-ICD-Loader.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "1sbxdd9vgl3m8j39kwvvk5cflyj7480pq0s307zg1ssidvj98v3g")))) +(native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("cmake" ,cmake) + ("pkg-config" ,pkg-config))) +(inputs `(("python" ,python-2) + ("boost" ,boost) + ("dbus" ,dbus) + ("clang" ,clang) + ("clang-runtime" ,clang-runtime) + ("enca" ,enca) + ("eudev" ,eudev) + ("fftw-openmpi" ,fftw-openmpi) + ("glew" ,glew) + ("hwloc" ,hwloc) + ("libcap" ,libcap) + ("libjpeg" ,libjpeg) + ("libltdl" ,libltdl) + ("libtiff" ,libtiff) + ("llvm" ,llvm) + ("mesa-utils" ,mesa-utils) + ("openmpi" ,openmpi) + ("perl" ,perl) + ("randrproto" ,randrproto) + ("libxrandr" ,libxrandr) + ("xineramaproto" ,xineramaproto) + ("libxinerama" ,libxinerama) + ("libxcursor" ,libxcursor) + ("fftw-openmpi" ,fftw-openmpi))) + (build-system cmake-build-system) + (synopsis "The Khronos OpenCL ICDs (Installable Client Driver)") + (description "This package provides the Khronos OpenCL ICDs") + (home-page "https://www.khronos.org/registry/cl/") + (license license:gpl2)))) diff --git a/gn/packages/openfyba.scm b/gn/packages/openfyba.scm new file mode 100644 index 0000000..2b20d09 --- /dev/null +++ b/gn/packages/openfyba.scm @@ -0,0 +1,61 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages openfyba) + #:use-module ((guix licenses)) + #:use-module (gnu packages) + #:use-module (gnu packages autotools) + #:use-module (guix packages) + #:use-module (guix download) + #:use-module (guix build-system gnu) + #:use-module (gnu packages linux) + #:use-module (gnu packages textutils) + #:use-module (gnu packages base) + ;;#:use-module (gnu packages tls) + #:use-module (gnu packages zip) + #:use-module (gnu packages gnupg) + #:use-module (gnu packages bootstrap) + #:use-module (guix git-download)) + +(define-public openfyba + (package + (name "openfyba") + (version "4.1.1") + (source (origin + (method url-fetch) + (uri (string-append "https://github.com/kartverket/fyba/archive/" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "0ya1agi78d386skq353dk400fl11q6whfqmv31qrkn4g5vamixlr")))) + (inputs `(("zip" ,zip) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("libgcrypt" ,libgcrypt))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack `bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (home-page "http://labs.kartverket.no/sos/") + (synopsis "source code release of the FYBA library") + (description "OpenFYBA is the source code release of the FYBA library.") + (license (list gpl2)))) diff --git a/gn/packages/pocl.scm b/gn/packages/pocl.scm new file mode 100644 index 0000000..7d61526 --- /dev/null +++ b/gn/packages/pocl.scm @@ -0,0 +1,328 @@ +;;; GNU Guix --- Functional package management for GNU +;;; Copyright © 2016 Dennis Mungai <dmngaie@gmail.com> +;;; +;;; This file is part of GNU Guix. +;;; +;;; GNU Guix is free software; you can redistribute it and/or modify it +;;; under the terms of the GNU General Public License as published by +;;; the Free Software Foundation; either version 3 of the License, or (at +;;; your option) any later version. +;;; +;;; GNU Guix is distributed in the hope that it will be useful, but +;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gn packages pocl) + #:use-module ((guix licenses) #:prefix license:) + #:use-module (guix git-download) + #:use-module (guix download) + #:use-module (guix utils) + #:use-module (guix build-system gnu) + #:use-module (guix build-system cmake) + #:use-module (guix packages) + #:use-module (gnu packages) + #:use-module (srfi srfi-1) + #:use-module (gnu packages algebra) + #:use-module (gnu packages autotools) + #:use-module (gnu packages curl) + #:use-module (gnu packages boost) + #:use-module (gnu packages bootstrap) + #:use-module (gnu packages base) + #:use-module (gnu packages gawk) + #:use-module (gnu packages cmake) + #:use-module (gnu packages gcc) + #:use-module (gnu packages glib) + #:use-module (gnu packages image) + #:use-module (gnu packages video) + #:use-module (gnu packages textutils) + #:use-module (gnu packages gl) + #:use-module (gnu packages llvm) + #:use-module (gnu packages pkg-config) + #:use-module (gnu packages maths) + #:use-module (gnu packages mpi) + #:use-module (gnu packages web) + #:use-module (gnu packages perl) + #:use-module (gnu packages python) + #:use-module (gnu packages xorg) + #:use-module (gnu packages xml) + #:use-module (gnu packages version-control) + #:use-module (gnu packages ruby) + #:use-module (gnu packages gnupg) + #:use-module ((gnu packages zip) #:prefix gnuzip:) + #:use-module (gnu packages linux)) + +(define-public pocl +(let ((commit "7aefc52")) + (package + (name "pocl") + (version (string-append "v09rc-" commit )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/pocl/pocl.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "03wbcxkx1w5kx0crangsnah0xq218bhb99vglmn00wcjhhw80qim")))) +(native-inputs `(("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool) + ("cmake" ,cmake) + ("pkg-config" ,pkg-config))) +(inputs `(("python" ,python-2) + ("boost" ,boost) + ("dbus" ,dbus) + ("clang" ,clang-3.7.1) + ("clang-runtime" ,clang-runtime-3.7.1) + ("enca" ,enca) + ("eudev" ,eudev) + ("fftw-openmpi" ,fftw-openmpi) + ("glew" ,glew) + ("hwloc" ,hwloc) + ("libcap" ,libcap) + ("libjpeg" ,libjpeg) + ("libltdl" ,libltdl) + ("libtiff" ,libtiff) + ("llvm" ,llvm-3.7.1) + ("ocl-icd" ,ocl-icd) + ("opencl-headers" ,opencl-headers) + ("mesa-utils" ,mesa-utils) + ("openmpi" ,openmpi) + ("perl" ,perl) + ("randrproto" ,randrproto) + ("libxrandr" ,libxrandr) + ("xineramaproto" ,xineramaproto) + ("libxinerama" ,libxinerama) + ("libxcursor" ,libxcursor) + ("fftw-openmpi" ,fftw-openmpi))) + (build-system gnu-build-system) + (arguments + `(#:configure-flags '("--enable-icd") + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before + 'configure 'rewrite-usr-bin + (lambda _ + (zero? (system* "./autogen.sh"))))))) + (synopsis "pocl: Portable Computing Language (pocl) aims to become a MIT-licensed + open source implementation of the OpenCL standard which can be easily adapted for + new targets and devices, both for homogeneous CPU and heterogenous GPUs/accelerators.") + (description "Portable Computing Language (pocl) aims to become a MIT-licensed + open source implementation of the OpenCL standard which can be easily adapted for + new targets and devices, both for homogeneous CPU and heterogenous GPUs/accelerators.") + (home-page "http://portablecl.org/") + (license license:gpl2)))) + +(define-public ocl-icd + (package + (name "ocl-icd") + (version "2.2.9") + (source (origin + (method url-fetch) + (uri (string-append "https://forge.imag.fr/frs/download.php/716/ocl-icd-" + version ".tar.gz")) + (file-name (string-append name "-" version ".tar.gz")) + (sha256 + (base32 + "1rgaixwnxmrq2aq4kcdvs0yx7i6krakarya9vqs7qwsv5hzc32hc")))) + (inputs `(("zip" ,gnuzip:zip) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("ruby" ,ruby) + ("libtool" ,libtool) + ("opencl-headers" ,opencl-headers) + ("libgcrypt" ,libgcrypt))) + (build-system gnu-build-system) + (arguments + '(#:phases (modify-phases %standard-phases + (add-after 'unpack `bootstrap + (lambda _ + (zero? (system* "autoreconf" "-vfi"))))))) + (home-page "https://forge.imag.fr/projects/ocl-icd/") + (synopsis "OpenCL implementations are provided as ICD (Installable Client Driver).") + (description "OpenCL implementations are provided as ICD (Installable Client Driver). + An OpenCL program can use several ICD thanks to the use of an ICD Loader as provided by this project. + This free ICD Loader can load any (free or non free) ICD") + (license license:gpl2))) + + (define-public opencl-headers +(let ((commit "c1770dc")) + (package + (name "opencl-headers") + (version (string-append "2.1-" commit )) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/KhronosGroup/OpenCL-Headers.git") + (commit commit))) + (file-name (string-append name "-" commit)) + (sha256 + (base32 + "0m9fkblqja0686i2jjqiszvq3df95gp01a2674xknlmkd6525rck")))) + (propagated-inputs '()) + (inputs '()) + (native-inputs '()) + (build-system gnu-build-system) + (arguments + '(#:phases + (modify-phases %standard-phases + (delete 'configure) + (delete 'build) + (delete 'check) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (copy-recursively "." (string-append + (assoc-ref outputs "out") + "/include/CL"))))))) + (synopsis "The Khronos OpenCL headers") + (description "This package provides the Khronos OpenCL headers") + (home-page "https://www.khronos.org/registry/cl/") + (license license:gpl2)))) + +(define (clang-runtime-from-llvm llvm hash) + (package + (name "clang-runtime") + (version (package-version llvm-3.7.1)) + (source + (origin + (method url-fetch) + (uri (string-append "http://llvm.org/releases/" + version "/compiler-rt-" version ".src.tar.xz")) + (sha256 + (base32 + "10c1mz2q4bdq9bqfgr3dirc6hz1h3sq8573srd5q5lr7m7j6jiwx")))) + (build-system cmake-build-system) + (native-inputs (package-native-inputs llvm)) + (inputs + `(("llvm" ,llvm))) + (arguments + `(;; Don't use '-g' during the build to save space. + #:build-type "Release")) + + (home-page "http://compiler-rt.llvm.org") + (synopsis "Runtime library for Clang/LLVM") + (description + "The \"clang-runtime\" library provides the implementations of run-time +functions for C and C++ programs. It also provides header files that allow C +and C++ source code to interface with the \"sanitization\" passes of the clang +compiler. In LLVM this library is called \"compiler-rt\".") + (license license:ncsa) + + ;; <http://compiler-rt.llvm.org/> doesn't list MIPS as supported. + (supported-systems (delete "mips64el-linux" %supported-systems)))) + +(define (clang-from-llvm llvm clang-runtime hash) + (package + (name "clang") + (version (package-version llvm-3.7.1)) + (source + (origin + (method url-fetch) + (uri (string-append "http://llvm.org/releases/" + version "/cfe-" version ".src.tar.xz")) + (sha256 + (base32 + "0x065d0w9b51xvdjxwfzjxng0gzpbx45fgiaxpap45ragi61dqjn")) + (patches (list (search-patch "clang-libc-search-path.patch"))))) + ;; Using cmake allows us to treat llvm as an external library. There + ;; doesn't seem to be any way to do this with clang's autotools-based + ;; build system. + (build-system cmake-build-system) + (native-inputs (package-native-inputs llvm)) + (inputs + `(("libxml2" ,libxml2) + ("libstdc++-4.9", libstdc++-4.9) + ("python" ,python-2) + ("gcc-lib" ,gcc "lib") + ,@(package-inputs llvm))) + (propagated-inputs + `(("llvm" ,llvm) + ("clang-runtime" ,clang-runtime))) + (arguments + `(#:configure-flags + (list "-DCLANG_INCLUDE_TESTS=True" + + ;; Find libgcc_s, crtbegin.o, and crtend.o. + (string-append "-DGCC_INSTALL_PREFIX=" + (assoc-ref %build-inputs "gcc-lib")) + + ;; Use a sane default include directory. + (string-append "-DC_INCLUDE_DIRS=" + (assoc-ref %build-inputs "libc") + "/include")) + + ;; Don't use '-g' during the build to save space. + #:build-type "Release" + + #:phases (modify-phases %standard-phases + (add-after + 'unpack 'set-glibc-file-names + (lambda* (#:key inputs #:allow-other-keys) + (let ((libc (assoc-ref inputs "libc")) + (compiler-rt (assoc-ref inputs "clang-runtime"))) + (substitute* "lib/Driver/Tools.cpp" + ;; Patch the 'getLinuxDynamicLinker' function to that + ;; it uses the right dynamic linker file name. + (("/lib64/ld-linux-x86-64.so.2") + (string-append libc + ,(glibc-dynamic-linker))) + + ;; Link to libclang_rt files from clang-runtime. + (("TC\\.getDriver\\(\\)\\.ResourceDir") + (string-append "\"" compiler-rt "\""))) + + ;; Same for libc's libdir, to allow crt1.o & co. to be + ;; found. + (substitute* "lib/Driver/ToolChains.cpp" + (("@GLIBC_LIBDIR@") + (string-append libc "/lib"))))))))) + + ;; Clang supports the same environment variables as GCC. + (native-search-paths + (list (search-path-specification + (variable "CPATH") + (files '("include"))) + (search-path-specification + (variable "LIBRARY_PATH") + (files '("lib" "lib64"))))) + + (home-page "http://clang.llvm.org") + (synopsis "C language family frontend for LLVM") + (description + "Clang is a compiler front end for the C, C++, Objective-C and +Objective-C++ programming languages. It uses LLVM as its back end. The Clang +project includes the Clang front end, the Clang static analyzer, and several +code analysis tools.") + (license license:ncsa))) + +(define-public llvm-3.7.1 + (package (inherit llvm) + (version "3.7.1") + (source + (origin + (method url-fetch) + (uri (string-append "http://llvm.org/releases/" + version "/llvm-" version ".src.tar.xz")) + (sha256 + (base32 + "1masakdp9g2dan1yrazg7md5am2vacbkb3nahb3dchpc1knr8xxy")))))) + +(define-public clang-runtime-3.7.1 + (clang-runtime-from-llvm + llvm-3.7.1 + "0dl1kbrhz96djsxqr61iw5h788s7ncfpfb7aayixky1bhdaydcx4")) + +(define-public clang-3.7.1 + (clang-from-llvm llvm clang-runtime + "12yv3jwdjcbkrx7zjm8wh4jrvb59v8fdw4mnmz3zc1jb00p9k07w")) + + + + + diff --git a/gn/packages/python.scm b/gn/packages/python.scm index 8f2bc80..47b2c23 100644 --- a/gn/packages/python.scm +++ b/gn/packages/python.scm @@ -279,16 +279,14 @@ powerful language for representing information.") (base32 "06qzgwk7j66k8ggx51i6wxx0f0zsppp7w4bh6gjd0cr9rfs86jn7")))) (build-system python-build-system) - (inputs + (propagated-inputs `( ("mysql" ,mysql) ("python-nose" ,python-nose) ("zlib" ,zlib) ("openssl" ,openssl) ("libgcrypt" ,libgcrypt) - )) - (propagated-inputs - `(("python-setuptools" ,python-setuptools) + ("python-setuptools" ,python-setuptools) )) (arguments `(#:tests? #f)) ; wants a running MySQL server @@ -357,32 +355,91 @@ project)") (description #f) (license #f))) -(define-public python2-piddle +(define-public python2-pil (package - (name "python2-piddle") - (version "1.0.15") + (name "python2-pil") + (version "1.1.6") (source - (origin - (method url-fetch) - (uri (string-append - ;; http://sourceforge.net/projects/numpy/files/Old%20Numarray/1.5.2/numarray-1.5.2.tar.gz/download - "mirror://sourceforge/piddle/piddle-" version ".zip" - )) - ;; (file-name (string-append name "-" version ".zip")) - (sha256 - (base32 - "0jaxfsrcgqb5cf2wznxnpdws5khlrdixmg85lrhq2zl9cy6dfdya")))) - (native-inputs - `(("unzip" ,unzip))) - + (origin + (method url-fetch) + (uri (string-append + "http://effbot.org/downloads/Imaging-" + version ".tar.gz")) + (sha256 + (base32 + "141zidl3s9v4vfi3nsbg42iq1lc2a932gprqr1kij5hrnn53bmvx")) + (modules '((guix build utils))) + (snippet + ;; Adapt to newer freetype. As the package is unmaintained upstream, + ;; there is no use in creating a patch and reporting it. + '(substitute* "_imagingft.c" + (("freetype/") + "freetype2/"))))) (build-system python-build-system) - ;; (native-inputs - ;; `(("python-setuptools" ,python-setuptools))) + (inputs + `(("freetype" ,freetype) + ("libjpeg" ,libjpeg) + ("libtiff" ,libtiff) + ("python-setuptools" ,python-setuptools) + ("zlib" ,zlib))) (arguments + ;; Only the fork python-pillow works with Python 3. `(#:python ,python-2 - #:tests? #f - )) ; no 'setup.py test' really! - (home-page "http://www.numpy.org/") + #:tests? #f ; no check target + #:phases + (alist-cons-before + 'build 'configure + ;; According to README and setup.py, manual configuration is + ;; the preferred way of "searching" for inputs. + ;; lcms is not found, TCL_ROOT refers to the unavailable tkinter. + (lambda* (#:key inputs #:allow-other-keys) + (let ((jpeg (assoc-ref inputs "libjpeg")) + (zlib (assoc-ref inputs "zlib")) + (tiff (assoc-ref inputs "libtiff")) + (freetype (assoc-ref inputs "freetype"))) + (substitute* "setup.py" + (("JPEG_ROOT = None") + (string-append "JPEG_ROOT = libinclude(\"" jpeg "\")")) + (("ZLIB_ROOT = None") + (string-append "ZLIB_ROOT = libinclude(\"" zlib "\")")) + (("TIFF_ROOT = None") + (string-append "TIFF_ROOT = libinclude(\"" tiff "\")")) + (("FREETYPE_ROOT = None") + (string-append "FREETYPE_ROOT = libinclude(\"" + freetype "\")"))))) + %standard-phases))) + (home-page "http://www.pythonware.com/products/pil/") + (synopsis "Python Imaging Library") + (description "The Python Imaging Library (PIL) adds image processing +capabilities to the Python interpreter.") + (license (license:x11-style + "file://README" + "See 'README' in the distribution.")))) + +(define-public python2-piddle-gn + (package + (name "python2-piddle") + (version "1.0.15-gn") + (source (origin + (method url-fetch) + (uri (string-append + "http://files.genenetwork.org/software/contrib/piddle-" +version ".tgz")) + (sha256 + (base32 + "05gjnn31v7p0kh58qixrpcizcxqf3b7zv4a5kk8nsmqwgxh0c6gq")))) + + (build-system python-build-system) + (native-inputs + `(("python2-setuptools" ,python2-setuptools))) + (propagated-inputs + `(("python2-pil" ,python2-pil))) + (arguments + `( + #:python ,python-2 + #:tests? #f ; no 'setup.py test' really! + )) + (home-page #f) (synopsis "Canvas drawing library for python2 (old!)") (description #f) (license #f))) diff --git a/gn/packages/ruby.scm b/gn/packages/ruby.scm index 0e1fa88..bebc678 100644 --- a/gn/packages/ruby.scm +++ b/gn/packages/ruby.scm @@ -16,7 +16,7 @@ ;;; You should have received a copy of the GNU General Public License ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. -(define-module (gnu packages ruby) +(define-module (gn packages ruby) #:use-module ((guix licenses) #:prefix license:) #:use-module (gnu packages) #:use-module (gnu packages compression) diff --git a/gn/packages/statistics.scm b/gn/packages/statistics.scm index c10ba29..2c9ebda 100644 --- a/gn/packages/statistics.scm +++ b/gn/packages/statistics.scm @@ -18,6 +18,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages cpio) #:use-module (gnu packages file) + #:use-module (gnu packages gcc) #:use-module (gnu packages java) #:use-module (gnu packages linux) #:use-module (gnu packages machine-learning) @@ -39,6 +40,227 @@ #:use-module (gnu packages bootstrap) #:use-module (srfi srfi-1)) +(define-public r-acepack +(package + (name "r-acepack") + (version "1.3-3.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "acepack" version)) + (sha256 + (base32 + "13ry3vyys12iplb14jfhmkrl9g5fxg3iijiggq4s4zb5m5436b1y")))) + (build-system r-build-system) + (inputs + `(("gfortran" ,gfortran))) + (home-page + "http://cran.r-project.org/web/packages/acepack") + (synopsis + "ace() and avas() for selecting regression transformations") + (description + "ACE and AVAS methods for choosing regression transformations.") + (license license:x11))) + +(define-public r-latticeextra +(package + (name "r-latticeextra") + (version "0.6-28") + (source + (origin + (method url-fetch) + (uri (cran-uri "latticeExtra" version)) + (sha256 + (base32 + "1hkyqsa7klk5glj9y1hg3rxr5qilqw8h0017zc4c3nps7lr9a1kq")))) + (properties `((upstream-name . "latticeExtra"))) + (build-system r-build-system) + (propagated-inputs + `( ;;("r-grdevices" ,r-grdevices) + ("r-gridbase" ,r-gridbase) + ("r-lattice" ,r-lattice) + ("r-rcolorbrewer" ,r-rcolorbrewer) + )) + (home-page + "http://latticeextra.r-forge.r-project.org/") + (synopsis + "Extra Graphical Utilities Based on Lattice") + (description + "Building on the infrastructure provided by the lattice package, this package provides several new high-level functions and methods, as well as additional utilities such as panel and axis annotation functions.") + (license license:gpl2+))) + +(define-public r-formula + (package + (name "r-formula") + (version "1.2-1") + (source + (origin + (method url-fetch) + (uri (cran-uri "Formula" version)) + (sha256 + (base32 + "02in5325zzrqbhlygx6s0dinj6ymw845q70y56frqacv25ayzcax")))) + (properties `((upstream-name . "Formula"))) + (build-system r-build-system) + (home-page + "http://cran.r-project.org/web/packages/Formula") + (synopsis "Extended Model Formulas") + (description + "Infrastructure for extended formulas with multiple parts on the right-hand side and/or multiple responses on the left-hand side.") + (license #f)) +) + +(define-public r-hmisc +(package + (name "r-hmisc") + (version "3.17-2") + (source + (origin + (method url-fetch) + (uri (cran-uri "Hmisc" version)) + (sha256 + (base32 + "110w5hbrl10isslqs0iq6w2ll0dafqyqznb50cdcallnlnvbvxrg")))) + (properties `((upstream-name . "Hmisc"))) + (build-system r-build-system) + (inputs + `(("gfortran" ,gfortran))) + (arguments + `(#:tests? #f)) ; no 'setup.py test' + (propagated-inputs + `(("r-acepack" ,r-acepack) + ; ("r-cluster" ,r-cluster) + ; ("r-foreign" ,r-foreign) + ("r-formula" ,r-formula) + ("r-ggplot2" ,r-ggplot2) + ; ("r-grid" ,r-grid) + ("r-gridextra" ,r-gridextra) + ("r-gtable" ,r-gtable) + ("r-lattice" ,r-lattice) + ("r-latticeextra" ,r-latticeextra) + ; ("r-methods" ,r-methods) + ; ("r-nnet" ,r-nnet) + ; ("r-rpart" ,r-rpart) + ; ("r-survival" ,r-survival))) + )) + (home-page + "http://biostat.mc.vanderbilt.edu/Hmisc") + (synopsis "Harrell Miscellaneous") + (description + "Contains many functions useful for data analysis, high-level graphics, utility operations, functions for computing sample size and power, importing and annotating datasets, imputing missing values, advanced table making, variable clustering, character string manipulation, conversion of R objects to LaTeX code, and recoding variables.") + (license license:gpl2+))) + +(define-public r-doparallel +(package + (name "r-doparallel") + (version "1.0.10") + (source + (origin + (method url-fetch) + (uri (cran-uri "doParallel" version)) + (sha256 + (base32 + "1mddx25l25pw9d0csnx2q203dbg5hbrhkr1f08kw0p02a1lln0kh")))) + (properties `((upstream-name . "doParallel"))) + (build-system r-build-system) + (propagated-inputs + `(("r-foreach" ,r-foreach) + ("r-iterators" ,r-iterators) + ;; ("r-parallel" ,r-parallel) + )) + (home-page + "http://cran.r-project.org/web/packages/doParallel") + (synopsis + "Foreach Parallel Adaptor for the 'parallel' Package") + (description + "Provides a parallel backend for the %dopar% function using the parallel package.") + (license license:gpl2+))) + +(define-public r-iterators +(package + (name "r-iterators") + (version "1.0.8") + (source + (origin + (method url-fetch) + (uri (cran-uri "iterators" version)) + (sha256 + (base32 + "1f057pabs7ss9h1n244can26qsi5n2k3salrdk0b0vkphlrs4kmf")))) + (build-system r-build-system) + ;; (propagated-inputs `(("r-utils" ,r-utils))) + (home-page + "http://cran.r-project.org/web/packages/iterators") + (synopsis "Provides Iterator Construct for R") + (description + "Support for iterators, which allow a programmer to traverse through all the elements of a vector, list, or other collection of data.") + (license #f))) + +(define-public r-foreach +(package + (name "r-foreach") + (version "1.4.3") + (source + (origin + (method url-fetch) + (uri (cran-uri "foreach" version)) + (sha256 + (base32 + "10aqsd3rxz03s1qdb6gsb1cj89mj4vmh491zfpin4skj1xvkzw0y")))) + (build-system r-build-system) + (propagated-inputs `(("r-iterators" ,r-iterators))) + (home-page + "http://cran.r-project.org/web/packages/foreach") + (synopsis + "Provides Foreach Looping Construct for R") + (description + "Support for the foreach looping construct. Foreach is an idiom that allows for iterating over elements in a collection, without the use of an explicit loop counter. This package in particular is intended to be used for its return value, rather than for its side effects. In that sense, it is similar to the standard lapply function, but doesn't require the evaluation of a function. Using foreach without side effects also facilitates executing the loop in parallel.") + (license #f)) +) + +(define-public r-fastcluster +(package + (name "r-fastcluster") + (version "1.1.16") + (source + (origin + (method url-fetch) + (uri (cran-uri "fastcluster" version)) + (sha256 + (base32 + "0x2prrsnqi5iqx23ki6y2agndjq8058ph6s703i4avrqi1q1w1q8")))) + (build-system r-build-system) + (home-page + "http://danifold.net/fastcluster.html") + (synopsis + "Fast Hierarchical Clustering Routines for R and Python") + (description + "This is a two-in-one package which provides interfaces to both R and Python. It implements fast hierarchical, agglomerative clustering routines. Part of the functionality is designed as drop-in replacement for existing routines: \"linkage\" in the SciPy package \"scipy.cluster.hierarchy\", \"hclust\" in R's \"stats\" package, and the \"flashClust\" package. It provides the same functionality with the benefit of a much faster implementation. Moreover, there are memory-saving routines for clustering of vector data, which go beyond what the existing packages provide. For information on how to install the Python files, see the file INSTALL in the source distribution.") + (license #f))) + +(define-public r-dynamictreecut +(package + (name "r-dynamictreecut") + (version "1.62") + (source + (origin + (method url-fetch) + (uri (cran-uri "dynamicTreeCut" version)) + (sha256 + (base32 + "1y11gg6k32wpsyb10kdv176ivczx2jlizs1xsrjrs6iwbncwzrkp")))) + (properties + `((upstream-name . "dynamicTreeCut"))) + (build-system r-build-system) + ; (propagated-inputs `(("r-stats" ,r-stats))) + (home-page + "http://www.genetics.ucla.edu/labs/horvath/CoexpressionNetwork/BranchCutting/") + (synopsis + "Methods for detection of clusters in hierarchical clustering dendrograms.") + (description + "Contains methods for detection of clusters in hierarchical clustering dendrograms.") + (license license:gpl2+))) + (define-public r-rcppeigen (package (name "r-rcppeigen") @@ -150,7 +372,7 @@ (license license:asl2.0))) (define-public pylmm-gn2 - (let ((commit "f5c9e2378")) + (let ((commit "3c6d1cac8")) (package (name "pylmm-gn2") (version (string-append "1.0-" commit )) @@ -162,11 +384,27 @@ (file-name (string-append name "-" commit)) (sha256 (base32 - "10qb5dpwqjdiq9gakl7m4p4ckjlc701mzqpgbhp89w1aysddj1c7")))) + "0wryaadb36i275p9d2i1kzflahvbl9kj5wlk8jlbvjij8gpqg964")))) (build-system python-build-system) + (inputs `( + ("python2-setuptools" ,python2-setuptools) + ("python2-scipy" ,python2-scipy) + ("python2-numpy" ,python2-numpy) + )) (arguments `(#:python ,python-2 - #:tests? #f)) ; no 'setup.py test' + #:tests? #f ; no 'setup.py test' + #:phases + (modify-phases %standard-phases + (add-before + 'build 'change-paths + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (substitute* "scripts/pylmm_redis" + (("/usr/bin/python") (which "python")) + (("\\$PACKAGEDIR") (string-append out "/lib/python2.7/site-packages"))) + )))))) + (home-page "http://genenetwork.org/") (synopsis "LMM resolver") (description "Fast and lightweight linear mixed-model (LMM) solver diff --git a/htslib-add-cram_to_bam.patch b/htslib-add-cram_to_bam.patch new file mode 100644 index 0000000..c90f7aa --- /dev/null +++ b/htslib-add-cram_to_bam.patch @@ -0,0 +1,27 @@ +This patch adds the cram_to_bam function to the public interface of htslib, +because it is used by code in Sambamba. + +by Roel Janssen <roel@gnu.org> +--- a/cram/cram_decode.c 2015-12-15 17:34:33.000000000 +0100 ++++ b/cram/cram_decode.c 2016-02-24 11:16:10.491808702 +0100 +@@ -2730,7 +2730,7 @@ + * Returns the used size of the bam record on success + * -1 on failure. + */ +-static int cram_to_bam(SAM_hdr *bfd, cram_fd *fd, cram_slice *s, ++int cram_to_bam(SAM_hdr *bfd, cram_fd *fd, cram_slice *s, + cram_record *cr, int rec, bam_seq_t **bam) { + int bam_idx, rg_len; + char name_a[1024], *name; +diff -Naur htslib-1.3/cram/cram_decode.h htslib-1.3-patched/cram/cram_decode.h +--- a/cram/cram_decode.h 2015-12-15 17:34:33.000000000 +0100 ++++ b/cram/cram_decode.h 2016-02-24 11:15:04.556809864 +0100 +@@ -104,6 +104,8 @@ + int cram_decode_slice(cram_fd *fd, cram_container *c, cram_slice *s, + SAM_hdr *hdr); + ++int cram_to_bam(SAM_hdr *bfd, cram_fd *fd, cram_slice *s, ++ cram_record *cr, int rec, bam_seq_t **bam); + + #ifdef __cplusplus + } |