diff options
Diffstat (limited to 'gnu/packages/chemistry.scm')
-rw-r--r-- | gnu/packages/chemistry.scm | 125 |
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))) |