aboutsummaryrefslogtreecommitdiff
path: root/gnu/packages/chemistry.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/chemistry.scm')
-rw-r--r--gnu/packages/chemistry.scm125
1 files changed, 125 insertions, 0 deletions
diff --git a/gnu/packages/chemistry.scm b/gnu/packages/chemistry.scm
index f1359b2cf6..2d7cb7aad1 100644
--- a/gnu/packages/chemistry.scm
+++ b/gnu/packages/chemistry.scm
@@ -1,5 +1,6 @@
;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2018 Konrad Hinsen <konrad.hinsen@fastmail.net>
+;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,9 +21,16 @@
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix download)
+ #:use-module (gnu packages)
+ #:use-module (gnu packages algebra)
+ #:use-module (gnu packages compression)
#:use-module (gnu packages gv)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages python)
+ #:use-module (gnu packages xml)
+ #:use-module (guix build-system cmake)
+ #:use-module (guix build-system gnu)
#:use-module (guix build-system python))
(define-public domainfinder
@@ -54,6 +62,84 @@ single structure. The software is currently not actively maintained and works
only with Python 2 and NumPy < 1.9.")
(license license:cecill-c)))
+(define-public inchi
+ (package
+ (name "inchi")
+ (version "1.05")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "http://www.inchi-trust.org/download/"
+ (string-join (string-split version #\.) "")
+ "/INCHI-1-SRC.zip"))
+ (sha256
+ (base32
+ "081pcjx1z5jm23fs1pl2r3bccia0ww8wfkzcjpb7byhn7b513hsa"))
+ (file-name (string-append name "-" version ".zip"))))
+ (build-system gnu-build-system)
+ (arguments
+ '(#:tests? #f ; no check target
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure) ; no configure script
+ (add-before 'build 'chdir-to-build-directory
+ (lambda _ (chdir "INCHI_EXE/inchi-1/gcc") #t))
+ (add-after 'build 'build-library
+ (lambda _
+ (chdir "../../../INCHI_API/libinchi/gcc")
+ (invoke "make")))
+ (replace 'install
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (bin (string-append out "/bin"))
+ (doc (string-append out "/share/doc/inchi"))
+ (include-dir (string-append out "/include/inchi"))
+ (lib (string-append out "/lib/inchi"))
+ (inchi-doc (assoc-ref inputs "inchi-doc"))
+ (unzip (string-append (assoc-ref inputs "unzip")
+ "/bin/unzip")))
+ (chdir "../../..")
+ ;; Install binary.
+ (with-directory-excursion "INCHI_EXE/bin/Linux"
+ (rename-file "inchi-1" "inchi")
+ (install-file "inchi" bin))
+ ;; Install libraries.
+ (with-directory-excursion "INCHI_API/bin/Linux"
+ (for-each (lambda (file)
+ (install-file file lib))
+ (find-files "." "libinchi\\.so\\.1\\.*")))
+ ;; Install header files.
+ (with-directory-excursion "INCHI_BASE/src"
+ (for-each (lambda (file)
+ (install-file file include-dir))
+ (find-files "." "\\.h$")))
+ ;; Install documentation.
+ (mkdir-p doc)
+ (invoke unzip "-j" "-d" doc inchi-doc)
+ #t))))))
+ (native-inputs
+ `(("unzip" ,unzip)
+ ("inchi-doc"
+ ,(origin
+ (method url-fetch)
+ (uri (string-append "http://www.inchi-trust.org/download/"
+ (string-join (string-split version #\.) "")
+ "/INCHI-1-DOC.zip"))
+ (sha256
+ (base32
+ "1id1qb2y4lwsiw91qr2yqpn6kxbwjwhjk0hb2rwk4fxhdqib6da6"))
+ (file-name (string-append name "-" version ".zip"))))))
+ (home-page "https://www.inchi-trust.org")
+ (synopsis "Utility for manipulating machine-readable chemical structures")
+ (description
+ "The @dfn{InChI} (IUPAC International Chemical Identifier) algorithm turns
+chemical structures into machine-readable strings of information. InChIs are
+unique to the compound they describe and can encode absolute stereochemistry
+making chemicals and chemistry machine-readable and discoverable. A simple
+analogy is that InChI is the bar-code for chemistry and chemical structures.")
+ (license (license:non-copyleft
+ "file://LICENCE"
+ "See LICENCE in the distribution."))))
+
(define with-numpy-1.8
(package-input-rewriting `((,python2-numpy . ,python2-numpy-1.8))))
@@ -117,3 +203,42 @@ neutron scattering spectra, but also computes other quantities. The software
is currently not actively maintained and works only with Python 2 and
NumPy < 1.9.")
(license license:cecill)))
+
+(define-public openbabel
+ (package
+ (name "openbabel")
+ (version "2.4.1")
+ (source (origin
+ (method url-fetch)
+ (uri (string-append "mirror://sourceforge/" name "/" name "/"
+ version "/" name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "1z3d6xm70dpfikhwdnbzc66j2l49vq105ch041wivrfz5ic3ch90"))
+ (patches
+ (search-patches "openbabel-fix-crash-on-nwchem-output.patch"))))
+ (build-system cmake-build-system)
+ (arguments
+ `(#:configure-flags
+ (list "-DOPENBABEL_USE_SYSTEM_INCHI=ON"
+ (string-append "-DINCHI_LIBRARY="
+ (assoc-ref %build-inputs "inchi")
+ "/lib/inchi/libinchi.so.1")
+ (string-append "-DINCHI_INCLUDE_DIR="
+ (assoc-ref %build-inputs "inchi") "/include/inchi"))
+ #:test-target "test"))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)))
+ (inputs
+ `(("eigen" ,eigen)
+ ("inchi" ,inchi)
+ ("libxml2" ,libxml2)
+ ("zlib" ,zlib)))
+ (home-page "http://openbabel.org/wiki/Main_Page")
+ (synopsis "Chemistry data manipulation toolbox")
+ (description
+ "Open Babel is a chemical toolbox designed to speak the many languages of
+chemical data. It's a collaborative project allowing anyone to search, convert,
+analyze, or store data from molecular modeling, chemistry, solid-state
+materials, biochemistry, or related areas.")
+ (license license:gpl2)))