aboutsummaryrefslogtreecommitdiff
path: root/guix.scm
blob: e64ff983286eabd1846bb75477b5b33c90aefa26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
;; To use this file to build HEAD of gemma:
;;
;;   guix build -f guix.scm
;;
;; To get a development container (e.g., run in emacs shell).
;;
;;   guix shell -C -f guix.scm

(use-modules
  ((guix licenses) #:prefix license:)
  (guix gexp)
  (guix packages)
  (guix git-download)
  (guix build-system gnu)
  (gnu packages algebra)
  (gnu packages base)
  (gnu packages compression)
  (gnu packages bioinformatics)
  (gnu packages build-tools)
  (gnu packages check)
  (gnu packages curl)
  (gnu packages gdb)
  (gnu packages llvm)
  (gnu packages maths)
  (gnu packages ninja)
  (gnu packages parallel)
  (gnu packages perl)
  ;; (gnu packages perl6)
  (gnu packages ruby)
  (gnu packages pkg-config)
  ;; (gnu packages shell)  ;; for shunit2
  (srfi srfi-1)
  (ice-9 popen)
  (ice-9 rdelim))

(define %source-dir (dirname (current-filename)))

(define %git-commit
    (read-string (open-pipe "git show HEAD | head -1 | cut -d ' ' -f 2" OPEN_READ)))

(define %gemma-version
    (read-string (open-pipe "cat VERSION" OPEN_READ)))

(define-public gemma-git
  (package
    (name "gemma-git")
    (version (git-version "0.98.5" "HEAD" %git-commit))
    (source (local-file %source-dir #:recursive? #t))
    (build-system gnu-build-system)
    (inputs `(
              ("catch" ,catch2)
              ("gdb" ,gdb)
              ("gsl" ,gsl)
              ;; ("shunit2" ,shunit2) ;; comes with gemma
              ("openblas" ,openblas)
              ("ruby" ,ruby) ;; for testing
              ("zlib:static" ,zlib "static")
              ("zlib" ,zlib)
              ))
    (native-inputs ; for running tests
      `(("perl" ,perl)
       ("which" ,which)
       ))
    (arguments
     `(#:phases
       (modify-phases %standard-phases
                      (delete 'configure)
                      (delete 'validate-runpath)
                      (add-before 'build 'bin-mkdir
                                  (lambda _
                                    (mkdir-p "bin")
                                    ))
                      (replace 'install
                               (lambda* (#:key outputs #:allow-other-keys)
                                 (let ((out (assoc-ref outputs "out")))
                                   (install-file "bin/gemma" (string-append out "/bin"))))))
       #:tests? #t
       #:parallel-tests? #f))
    (home-page "https://github.com/genetics-statistics")
    (synopsis "Tool for genome-wide efficient mixed model association")
    (description "Genome-wide Efficient Mixed Model Association (GEMMA)
provides a standard linear mixed model resolver with application in
genome-wide association studies (GWAS).")
    (license license:gpl3)))

gemma-git