blob: 1dff8b41f01370e643e2ec4d95ab12124d633f88 (
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
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
|
;; To use this file to build HEAD of gemma:
;;
;; guix build -f guix.scm # default builds pangemma-git
;; guix build -L . gemma-git # builds original (still)
;;
;; To get a development container (e.g., run in emacs shell).
;;
;; guix shell -C -D -F -v 3 -L . pangemma-shell-git # pangemma-shell-git
;;
;; see premake5.lua header for examples.
;;
;; guix shell -C -D -F -v 3 -L . gemma-git # for specific packages
;;
(define-module (guix)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix gexp)
#:use-module (guix packages)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (gnu packages algebra)
#:use-module (gnu packages base)
#:use-module (gnu packages build-tools)
#:use-module (gnu packages compression)
#:use-module (gnu packages commencement)
#:use-module (gnu packages check)
#:use-module (gnu packages databases)
#:use-module (gnu packages gdb)
#:use-module (gnu packages guile)
#:use-module (gnu packages guile-xyz)
#:use-module (gnu packages maths)
#:use-module (gnu packages ninja)
#:use-module (gnu packages perl)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages ruby)
#:use-module (srfi srfi-1)
#:use-module (ice-9 popen)
#:use-module (ice-9 rdelim))
(define %source-dir (dirname (current-filename)))
(define %git-commit
(read-string (open-pipe "git describe --always --tags --long|tr -d $'\n'" OPEN_READ)))
(define %pangemma-version
(read-string (open-pipe "cat VERSION|tr -d $'\n'" OPEN_READ)))
(define-public pangemma-base-git
"Pangemma base build package"
(package
(name "pangemma-git")
(version (git-version %pangemma-version "HEAD" %git-commit))
(source (local-file %source-dir #:recursive? #t))
(build-system gnu-build-system)
(inputs
(list gsl
openblas
guile-3.0
`(,guile-3.0 "debug")
guile-lmdb
lmdb
ninja
ruby
zlib))
(propagated-inputs
(list
`("guile" ,guile-3.0-latest)
`("guile-debug" ,guile-3.0-latest "debug")))
;; ("gsl-static" ,gsl-static)
;; ("zlib:static" ,zlib "static")
(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://git.genenetwork.org/pangemma/")
(synopsis "Tool for genome-wide efficient mixed model association")
(description "New version of Genome-wide Efficient Mixed Model Association (PANGEMMA)
provides a standard linear mixed model resolver with application in
genome-wide association studies (GWAS).")
(license license:gpl3)))
(define-public pangemma-shell-git
"Shell version for development"
(package
(inherit pangemma-base-git)
(name "pangemma-shell-git")
(build-system gnu-build-system)
(propagated-inputs
(modify-inputs (package-inputs pangemma-base-git)
(append which binutils coreutils gcc-toolchain premake5 gnu-make ;; for the shell
)))
(arguments
`(#:phases (modify-phases %standard-phases
(delete 'configure)
(delete 'build)
(delete 'package)
(delete 'check)
(delete 'install))))
(description "Pangemma shell for development")
))
;; ---- legacy build -----------------------------------------------------------------
(define-public gemma-git
"Original legacy gemma -- for as long as it compiles"
(package
(name "gemma-git")
(version (git-version %pangemma-version "HEAD" %git-commit))
(source (local-file %source-dir #:recursive? #t))
(build-system gnu-build-system)
(inputs
(list catch2
gdb
gsl
openblas
zlib))
;; ("gsl-static" ,gsl-static)
;; ("zlib:static" ,zlib "static")
(native-inputs ; for running tests
(list perl 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
|