gnu: shogun: Move package to machine-learning.scm.

* gnu/packages/bioinformatics.scm (shogun): Move from here...
* gnu/packages/machine-learning.scm (shogun): ...to here.
master
Ricardo Wurmus 2015-08-14 16:48:52 +02:00
parent 365481116c
commit c1670a8196
2 changed files with 143 additions and 140 deletions

View File

@ -46,7 +46,6 @@
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages statistics)
#:use-module (gnu packages swig)
#:use-module (gnu packages tbb)
#:use-module (gnu packages textutils)
#:use-module (gnu packages vim)
@ -2476,145 +2475,6 @@ features; exactSNP: a SNP caller that discovers SNPs by testing signals
against local background noises.")
(license license:gpl3+)))
(define-public shogun
(package
(name "shogun")
(version "4.0.0")
(source
(origin
(method url-fetch)
(uri (string-append
"ftp://shogun-toolbox.org/shogun/releases/"
(version-major+minor version)
"/sources/shogun-" version ".tar.bz2"))
(sha256
(base32
"159nlijnb7mnrv9za80wnm1shwvy45hgrqzn51hxy7gw4z6d6fdb"))
(modules '((guix build utils)
(ice-9 rdelim)))
(snippet
'(begin
;; Remove non-free sources and files referencing them
(for-each delete-file
(find-files "src/shogun/classifier/svm/"
"SVMLight\\.(cpp|h)"))
(for-each delete-file
(find-files "examples/undocumented/libshogun/"
(string-append
"(classifier_.*svmlight.*|"
"evaluation_cross_validation_locked_comparison).cpp")))
;; Remove non-free functions.
(define (delete-ifdefs file)
(with-atomic-file-replacement file
(lambda (in out)
(let loop ((line (read-line in 'concat))
(skipping? #f))
(if (eof-object? line)
#t
(let ((skip-next?
(or (and skipping?
(not (string-prefix?
"#endif //USE_SVMLIGHT" line)))
(string-prefix?
"#ifdef USE_SVMLIGHT" line))))
(when (or (not skipping?)
(and skipping? (not skip-next?)))
(display line out))
(loop (read-line in 'concat) skip-next?)))))))
(for-each delete-ifdefs (find-files "src/shogun/kernel/"
"^Kernel\\.(cpp|h)"))))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ;no check target
#:phases
(alist-cons-after
'unpack 'delete-broken-symlinks
(lambda _
(for-each delete-file '("applications/arts/data"
"applications/asp/data"
"applications/easysvm/data"
"applications/msplicer/data"
"applications/ocr/data"
"examples/documented/data"
"examples/documented/matlab_static"
"examples/documented/octave_static"
"examples/undocumented/data"
"examples/undocumented/matlab_static"
"examples/undocumented/octave_static"
"tests/integration/data"
"tests/integration/matlab_static"
"tests/integration/octave_static"
"tests/integration/python_modular/tests"))
#t)
(alist-cons-after
'unpack 'change-R-target-path
(lambda* (#:key outputs #:allow-other-keys)
(substitute* '("src/interfaces/r_modular/CMakeLists.txt"
"src/interfaces/r_static/CMakeLists.txt"
"examples/undocumented/r_modular/CMakeLists.txt")
(("\\$\\{R_COMPONENT_LIB_PATH\\}")
(string-append (assoc-ref outputs "out")
"/lib/R/library/")))
#t)
(alist-cons-after
'unpack 'fix-octave-modules
(lambda* (#:key outputs #:allow-other-keys)
(substitute* '("src/interfaces/octave_modular/CMakeLists.txt"
"src/interfaces/octave_static/CMakeLists.txt")
(("^include_directories\\(\\$\\{OCTAVE_INCLUDE_DIRS\\}")
"include_directories(${OCTAVE_INCLUDE_DIRS} ${OCTAVE_INCLUDE_DIRS}/octave"))
;; change target directory
(substitute* "src/interfaces/octave_modular/CMakeLists.txt"
(("\\$\\{OCTAVE_OCT_LOCAL_API_FILE_DIR\\}")
(string-append (assoc-ref outputs "out")
"/share/octave/packages")))
#t)
(alist-cons-before
'build 'set-HOME
;; $HOME needs to be set at some point during the build phase
(lambda _ (setenv "HOME" "/tmp") #t)
%standard-phases))))
#:configure-flags
(list "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
"-DUSE_SVMLIGHT=OFF" ;disable proprietary SVMLIGHT
;;"-DJavaModular=ON" ;requires unpackaged jblas
;;"-DRubyModular=ON" ;requires unpackaged ruby-narray
;;"-DPerlModular=ON" ;"FindPerlLibs" does not exist
;;"-DLuaModular=ON" ;fails because lua doesn't build pkgconfig file
"-DOctaveModular=ON"
"-DOctaveStatic=ON"
"-DPythonModular=ON"
"-DPythonStatic=ON"
"-DRModular=ON"
"-DRStatic=ON"
"-DCmdLineStatic=ON")))
(inputs
`(("python" ,python)
("numpy" ,python-numpy)
("r" ,r)
("octave" ,octave)
("swig" ,swig)
("hdf5" ,hdf5)
("atlas" ,atlas)
("arpack" ,arpack-ng)
("lapack" ,lapack)
("glpk" ,glpk)
("libxml2" ,libxml2)
("lzo" ,lzo)
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://shogun-toolbox.org/")
(synopsis "Machine learning toolbox")
(description
"The Shogun Machine learning toolbox provides a wide range of unified and
efficient Machine Learning (ML) methods. The toolbox seamlessly allows to
combine multiple data representations, algorithm classes, and general purpose
tools. This enables both rapid prototyping of data pipelines and extensibility
in terms of new algorithms.")
(license license:gpl3+)))
(define-public vcftools
(package
(name "vcftools")

View File

@ -21,13 +21,17 @@
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages boost)
#:use-module (gnu packages compression)
#:use-module (gnu packages gcc)
#:use-module (gnu packages maths)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
#:use-module (gnu packages statistics)
#:use-module (gnu packages swig)
#:use-module (gnu packages xml))
(define-public libsvm
@ -144,3 +148,142 @@ learning method. Most interesting features are variable selection, missing
value imputation, classifier creation, generalization error estimation and
sample proximities between pairs of cases.")
(license license:gpl3+)))
(define-public shogun
(package
(name "shogun")
(version "4.0.0")
(source
(origin
(method url-fetch)
(uri (string-append
"ftp://shogun-toolbox.org/shogun/releases/"
(version-major+minor version)
"/sources/shogun-" version ".tar.bz2"))
(sha256
(base32
"159nlijnb7mnrv9za80wnm1shwvy45hgrqzn51hxy7gw4z6d6fdb"))
(modules '((guix build utils)
(ice-9 rdelim)))
(snippet
'(begin
;; Remove non-free sources and files referencing them
(for-each delete-file
(find-files "src/shogun/classifier/svm/"
"SVMLight\\.(cpp|h)"))
(for-each delete-file
(find-files "examples/undocumented/libshogun/"
(string-append
"(classifier_.*svmlight.*|"
"evaluation_cross_validation_locked_comparison).cpp")))
;; Remove non-free functions.
(define (delete-ifdefs file)
(with-atomic-file-replacement file
(lambda (in out)
(let loop ((line (read-line in 'concat))
(skipping? #f))
(if (eof-object? line)
#t
(let ((skip-next?
(or (and skipping?
(not (string-prefix?
"#endif //USE_SVMLIGHT" line)))
(string-prefix?
"#ifdef USE_SVMLIGHT" line))))
(when (or (not skipping?)
(and skipping? (not skip-next?)))
(display line out))
(loop (read-line in 'concat) skip-next?)))))))
(for-each delete-ifdefs (find-files "src/shogun/kernel/"
"^Kernel\\.(cpp|h)"))))))
(build-system cmake-build-system)
(arguments
'(#:tests? #f ;no check target
#:phases
(alist-cons-after
'unpack 'delete-broken-symlinks
(lambda _
(for-each delete-file '("applications/arts/data"
"applications/asp/data"
"applications/easysvm/data"
"applications/msplicer/data"
"applications/ocr/data"
"examples/documented/data"
"examples/documented/matlab_static"
"examples/documented/octave_static"
"examples/undocumented/data"
"examples/undocumented/matlab_static"
"examples/undocumented/octave_static"
"tests/integration/data"
"tests/integration/matlab_static"
"tests/integration/octave_static"
"tests/integration/python_modular/tests"))
#t)
(alist-cons-after
'unpack 'change-R-target-path
(lambda* (#:key outputs #:allow-other-keys)
(substitute* '("src/interfaces/r_modular/CMakeLists.txt"
"src/interfaces/r_static/CMakeLists.txt"
"examples/undocumented/r_modular/CMakeLists.txt")
(("\\$\\{R_COMPONENT_LIB_PATH\\}")
(string-append (assoc-ref outputs "out")
"/lib/R/library/")))
#t)
(alist-cons-after
'unpack 'fix-octave-modules
(lambda* (#:key outputs #:allow-other-keys)
(substitute* '("src/interfaces/octave_modular/CMakeLists.txt"
"src/interfaces/octave_static/CMakeLists.txt")
(("^include_directories\\(\\$\\{OCTAVE_INCLUDE_DIRS\\}")
"include_directories(${OCTAVE_INCLUDE_DIRS} ${OCTAVE_INCLUDE_DIRS}/octave"))
;; change target directory
(substitute* "src/interfaces/octave_modular/CMakeLists.txt"
(("\\$\\{OCTAVE_OCT_LOCAL_API_FILE_DIR\\}")
(string-append (assoc-ref outputs "out")
"/share/octave/packages")))
#t)
(alist-cons-before
'build 'set-HOME
;; $HOME needs to be set at some point during the build phase
(lambda _ (setenv "HOME" "/tmp") #t)
%standard-phases))))
#:configure-flags
(list "-DCMAKE_BUILD_WITH_INSTALL_RPATH=TRUE"
"-DUSE_SVMLIGHT=OFF" ;disable proprietary SVMLIGHT
;;"-DJavaModular=ON" ;requires unpackaged jblas
;;"-DRubyModular=ON" ;requires unpackaged ruby-narray
;;"-DPerlModular=ON" ;"FindPerlLibs" does not exist
;;"-DLuaModular=ON" ;fails because lua doesn't build pkgconfig file
"-DOctaveModular=ON"
"-DOctaveStatic=ON"
"-DPythonModular=ON"
"-DPythonStatic=ON"
"-DRModular=ON"
"-DRStatic=ON"
"-DCmdLineStatic=ON")))
(inputs
`(("python" ,python)
("numpy" ,python-numpy)
("r" ,r)
("octave" ,octave)
("swig" ,swig)
("hdf5" ,hdf5)
("atlas" ,atlas)
("arpack" ,arpack-ng)
("lapack" ,lapack)
("glpk" ,glpk)
("libxml2" ,libxml2)
("lzo" ,lzo)
("zlib" ,zlib)))
(native-inputs
`(("pkg-config" ,pkg-config)))
(home-page "http://shogun-toolbox.org/")
(synopsis "Machine learning toolbox")
(description
"The Shogun Machine learning toolbox provides a wide range of unified and
efficient Machine Learning (ML) methods. The toolbox seamlessly allows to
combine multiple data representations, algorithm classes, and general purpose
tools. This enables both rapid prototyping of data pipelines and extensibility
in terms of new algorithms.")
(license license:gpl3+)))