aboutsummaryrefslogtreecommitdiff
path: root/guix.scm
blob: efef9c19dc9eeec49281e484330ed6e8f5adc8fe (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
;;; 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/.

(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 cran)
 (gnu packages databases)
 (gnu packages statistics)
 (gnu packages bioconductor)
 (gn packages golang)
 (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)
                       ("csvdiff" ,go-github-com-aswinkarthik-csvdiff)
                       ("python" ,python-wrapper)
                       ("python-bcrypt" ,python-bcrypt)
                       ("python-flask" ,python-flask)
                       ("python-ipfshttpclient" ,python-ipfshttpclient)
                       ("python-mypy" ,python-mypy)
                       ("python-mypy-extensions" ,python-mypy-extensions)
                       ("python-mysqlclient" ,python-mysqlclient)
                       ("python-numpy" ,python-numpy)
                       ("python-pylint" ,python-pylint)
                       ("python-redis" ,python-redis)
                       ("python-requests" ,python-requests)
                       ("python-scipy" ,python-scipy)
                       ("python-sqlalchemy-stubs"
                        ,python-sqlalchemy-stubs)
                       ("r-optparse" ,r-optparse)
                       ("r-qtl" ,r-qtl)
                       ("r-stringi" ,r-stringi)))
  (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+))