aboutsummaryrefslogtreecommitdiff
path: root/guix.scm
blob: d8b1596a2fbf9f6a275e37a468c6c5950e6fd734 (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
;;; guix.scm --- genenetwork3 rest Api guix bootstrapping file.
;;;
;;; Copyright © 2021 Bonface Munyoki Kilyungi <me@bonfacemunyoki.com>
;;;
;;; This file is part of genenetwork3.
;;;
;;; genenetwork3 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.
;;;
;;; sheepdog 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 genenetwork3. If not, see https://www.gnu.org/licenses/.

;; To use this file to build HEAD of gemma:
;;
;;   env GUIX_PACKAGE_PATH=~/guix-bioinformatics/ guix build -f guix.scm
;;
;; After checking out the git repo
;;   cd ~ ; git clone https://git.genenetwork.org/guix-bioinformatics/guix-bioinformatics
;;
;; To get a development container (e.g., run in emacs shell).
;;
;;   env GUIX_PACKAGE_PATH=~/guix-bioinformatics/ guix environment -C -l guix.scm

(use-modules
 (srfi srfi-1)
 (srfi srfi-26)
 (ice-9 match)
 (ice-9 popen)
 (ice-9 rdelim)
 (gn packages gemma)
 (gn packages python)
 (gnu packages base)
 (gnu packages check)
 (gnu packages graph)
 (gnu packages cran)
 (gnu packages databases)
 (gnu packages statistics)
 (gnu packages bioconductor)
 (gnu packages golang)
 (gn packages genenetwork)
 (gnu packages python)
 (gnu packages python-check)
 (gnu packages python-crypto)
 (gnu packages python-web)
 (gnu packages python-xyz)
 (gnu packages python-science)
 ((guix build utils) #:select (with-directory-excursion))
 (guix build-system python)
 (guix gexp)
 (guix git-download)
 (guix licenses)
 (guix packages))

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

(define git-file?
  (let* ((pipe (with-directory-excursion %source-dir
                 (open-pipe* OPEN_READ "git" "ls-files")))
         (files (let loop ((lines '()))
                  (match (read-line pipe)
                    ((? eof-object?)
                     (reverse lines))
                    (line
                     (loop (cons line lines))))))
         (status (close-pipe pipe)))
    (lambda (file stat)
      (match (stat:type stat)
        ('directory #t)
        ((or 'regular 'symlink)
         (any (cut string-suffix? <> file) files))
        (_ #f)))))

(package
  (name "genenetwork3.git")
  (version "0.0.1")
  (source (local-file %source-dir
                      #:recursive? #t
                      #:select? git-file?))
  (propagated-inputs `(("coreutils" ,coreutils)
                       ("gemma-wrapper" ,gemma-wrapper)
                       ("gunicorn" ,gunicorn)
                       ("python" ,python-wrapper)
                       ("python-bcrypt" ,python-bcrypt)
                       ("python-flask" ,python-flask)
                       ("python-flask-cors" ,python-flask-cors)
                       ("python-ipfshttpclient" ,python-ipfshttpclient)
                       ("python-mypy" ,python-mypy)
                       ("python-mypy-extensions" ,python-mypy-extensions)
                       ("python-mysqlclient" ,python-mysqlclient)
                       ("python-numpy" ,python-numpy)
                       ("python-plotly" ,python-plotly)
                       ("python-pylint" ,python-pylint)
                       ("python-redis" ,python-redis)
                       ("python-requests" ,python-requests)
                       ("python-scipy" ,python-scipy)
                       ("python-flask-socketio" ,python-flask-socketio)
                       ("python-sqlalchemy-stubs"
                        ,python-sqlalchemy-stubs)
                       ("r-optparse" ,r-optparse)
                       ("r-qtl" ,r-qtl)
                       ("r-stringi" ,r-stringi)
                       ("r-wgcna" ,r-wgcna)
                       ("r-rjson" ,r-rjson)
                       ("python-plotly" ,python-plotly)
                       ("python-pandas" ,python-pandas)
                       ("rust-qtlreaper" ,rust-qtlreaper)
                       ("python-flask-cors" ,python-flask-cors)))
  (build-system python-build-system)
  (home-page "https://github.com/genenetwork/genenetwork3")
  (synopsis "GeneNetwork3 API for data science and machine learning.")
  (description "GeneNetwork3 API for data science and machine learning.")
  (license agpl3+))