(define-module (gn packages quality-control)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix utils)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix build-system gnu)
#:use-module (guix build-system asdf)
#:use-module (gnu packages lisp-check)
#:use-module (gnu packages lisp-xyz)
#:use-module (gnu packages)
#:use-module (gnu packages check)
#:use-module (gnu packages databases)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages python-web)
#:use-module (guix build-system python)
#:use-module (gnu packages python-check))
(define-public libcsv
(let ((commit "b1d5212831842ee5869d99bc208a21837e4037d5")
(revision "0"))
(package
(name "libcsv")
(version commit)
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/rgamble/libcsv")
(commit commit)))
(file-name (git-file-name name commit))
(sha256
(base32 "0nni9y0prz8lh3dywbha52yfg8qcf3dn0nb7iinfwlrmmamfyzg2"))))
(build-system gnu-build-system)
(arguments
`(#:make-flags
(list (string-append "CC=" ,(cc-for-target)))))
(home-page "https://github.com/rgamble/libcsv")
(synopsis "CSV library written in pure ANSI C")
(description
"CSV library written in pure ANSI C that can read and write CSV data.")
(license license:lgpl2.1+))))
(define-public sbcl-qc
(let ((commit "a0d8c807fa3f817f977a64f02f5f8936044050ad")
(revision "4"))
(package
(name "sbcl-qc")
(version (git-version "20220331" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.genenetwork.org/jgart/qc")
(commit commit)))
(sha256
(base32 "12i9s1ipqarvq6gsjqycfm8d3ym7dv7vn3nxb5c6214xrd4mmzjj"))
(file-name (git-file-name name commit))))
(build-system asdf-build-system/sbcl)
(arguments
`(#:tests? #f)) ; Need to fix tests.
(native-inputs
(list sbcl-1am))
(inputs
(list sbcl-alexandria
sbcl-split-sequence))
(home-page "https://git.genenetwork.org/jgart/qc/")
(synopsis "Quality control of delimited files")
(description
"@code{cl-qc} is a Common Lisp library for linting the following in
delimited text files:
@itemize
@item Whitespace
@item Floating-point number well-formedness
@item GeneChip Platform ID checks for Affymetrix, Illumina, and others
@end itemize\n")
(license license:unlicense))))
(define-public cl-qc
(sbcl-package->cl-source-package sbcl-qc))
(define-public ecl-qc
(sbcl-package->ecl-package sbcl-qc))
;; The file
;; #P"/tmp/guix-build-sbcl-qc-uploads-20220301-0.76f870e.drv-0/source/strains.csv"
;; does not exist:
;; No such file or directory
#;(define-public sbcl-qc-uploads
(let ((commit "76f870efad964bf680bf633e272094082008e69c")
(revision "0"))
(package
(name "sbcl-qc-uploads")
(version (git-version "20220301" revision commit))
(source
(origin
(method git-fetch)
(uri (git-reference
(url "https://git.genenetwork.org/jgart/qc-uploads")
(commit commit)))
(sha256
(base32 "1nzcdqjwh1xpr92d01fvlmdysxizyklaid10zrxbi12jmdydapil"))
(file-name (git-file-name name commit))))
(build-system asdf-build-system/sbcl)
;; needs install-file for strains.tsv. This require more testing.
;; todo: see for an example: https://github.com/interactive-ssr/issr-server/blob/master/guix.scm#L46
(arguments
`(#:tests? #f ; There are no tests yet.
#:asd-files '("qc-uploads.asd")))
(inputs
(list sbcl-alexandria
sbcl-ningle
sbcl-clack
sbcl-cl-css
sbcl-cl-who
sbcl-cl-fad
sbcl-qc ; packaged in guix-bioinformatics
sbcl-woo))
(home-page "https://git.genenetwork.org/jgart/qc-uploads/")
(synopsis "Web UI for qc")
(description
"@code{qc-uploads} provides a web UI for @code{qc}.")
(license license:expat))))
#;(define-public cl-qc-uploads
(sbcl-package->cl-source-package sbcl-qc-uploads))
#;(define-public ecl-qc-uploads
(sbcl-package->ecl-package sbcl-qc-uploads))
(define-public genenetwork-qc
(let ((commit "b735cae93ac8243bc9b07a10549a68330934d9bf")
(revision "2"))
(package
(name "genenetwork-qc")
(version (git-version "0.0.1" revision commit))
(source
(origin
(method git-fetch)
(uri
(git-reference
;;(url "https://git.genenetwork.org/fredmanglis/gnqc_py.git")
(url "https://gitlab.com/fredmanglis/gnqc_py.git")
(commit commit)))
(sha256
(base32 "0my3zm7kc5ijsp7lmh5qf6z198x1gw1cr17230d20za65pssri3j"))))
(build-system python-build-system)
(arguments
`(#:tests? #f ; Tests requiring redis server fail. Figure out how to start redis
#:phases
(modify-phases %standard-phases
(replace 'check
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
(invoke "pytest")))))))
(inputs
(list python-mypy
python-pylint
python-pytest
python-hypothesis))
(propagated-inputs
(list redis
mariadb
gunicorn
python-redis
python-flask
python-jsonpickle
python-mysqlclient))
(synopsis "GeneNetwork Quality Control Application")
(description
"GeneNetwork qc is a quality control application for the data files that
eventually are used to add to the data in the GeneNetwork project.")
(home-page "https://git.genenetwork.org/fredmanglis/gnqc_py")
(license license:agpl3+))))