gnu: Add pplacer.
* gnu/packages/bioinformatics.scm (pplacer, pplacer-scripts): New variables.
This commit is contained in:
		
							parent
							
								
									ad0ae297d4
								
							
						
					
					
						commit
						c033f5d6b5
					
				
					 1 changed files with 125 additions and 0 deletions
				
			
		| 
						 | 
					@ -33,6 +33,7 @@
 | 
				
			||||||
  #:use-module (guix build-system ant)
 | 
					  #:use-module (guix build-system ant)
 | 
				
			||||||
  #:use-module (guix build-system gnu)
 | 
					  #:use-module (guix build-system gnu)
 | 
				
			||||||
  #:use-module (guix build-system cmake)
 | 
					  #:use-module (guix build-system cmake)
 | 
				
			||||||
 | 
					  #:use-module (guix build-system ocaml)
 | 
				
			||||||
  #:use-module (guix build-system perl)
 | 
					  #:use-module (guix build-system perl)
 | 
				
			||||||
  #:use-module (guix build-system python)
 | 
					  #:use-module (guix build-system python)
 | 
				
			||||||
  #:use-module (guix build-system r)
 | 
					  #:use-module (guix build-system r)
 | 
				
			||||||
| 
						 | 
					@ -71,6 +72,7 @@
 | 
				
			||||||
  #:use-module (gnu packages maths)
 | 
					  #:use-module (gnu packages maths)
 | 
				
			||||||
  #:use-module (gnu packages mpi)
 | 
					  #:use-module (gnu packages mpi)
 | 
				
			||||||
  #:use-module (gnu packages ncurses)
 | 
					  #:use-module (gnu packages ncurses)
 | 
				
			||||||
 | 
					  #:use-module (gnu packages ocaml)
 | 
				
			||||||
  #:use-module (gnu packages pcre)
 | 
					  #:use-module (gnu packages pcre)
 | 
				
			||||||
  #:use-module (gnu packages parallel)
 | 
					  #:use-module (gnu packages parallel)
 | 
				
			||||||
  #:use-module (gnu packages pdf)
 | 
					  #:use-module (gnu packages pdf)
 | 
				
			||||||
| 
						 | 
					@ -3627,6 +3629,129 @@ interrupted by stop codons.  OrfM finds and prints these ORFs.")
 | 
				
			||||||
    (home-page "https://github.com/wwood/OrfM")
 | 
					    (home-page "https://github.com/wwood/OrfM")
 | 
				
			||||||
    (license license:lgpl3+)))
 | 
					    (license license:lgpl3+)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					(define-public pplacer
 | 
				
			||||||
 | 
					  (let ((commit "g807f6f3"))
 | 
				
			||||||
 | 
					    (package
 | 
				
			||||||
 | 
					      (name "pplacer")
 | 
				
			||||||
 | 
					      ;; The commit should be updated with each version change.
 | 
				
			||||||
 | 
					      (version "1.1.alpha19")
 | 
				
			||||||
 | 
					      (source
 | 
				
			||||||
 | 
					       (origin
 | 
				
			||||||
 | 
					         (method url-fetch)
 | 
				
			||||||
 | 
					         (uri (string-append "https://github.com/matsen/pplacer/archive/v"
 | 
				
			||||||
 | 
					                             version ".tar.gz"))
 | 
				
			||||||
 | 
					         (file-name (string-append name "-" version ".tar.gz"))
 | 
				
			||||||
 | 
					         (sha256
 | 
				
			||||||
 | 
					          (base32 "0z1lnd2s8sh6kpzg106wzbh2szw7h0hvq8syd5a6wv4rmyyz6x0f"))))
 | 
				
			||||||
 | 
					      (build-system ocaml-build-system)
 | 
				
			||||||
 | 
					      (arguments
 | 
				
			||||||
 | 
					       `(#:ocaml ,ocaml-4.01
 | 
				
			||||||
 | 
					         #:findlib ,ocaml4.01-findlib
 | 
				
			||||||
 | 
					         #:modules ((guix build ocaml-build-system)
 | 
				
			||||||
 | 
					                    (guix build utils)
 | 
				
			||||||
 | 
					                    (ice-9 ftw))
 | 
				
			||||||
 | 
					         #:phases
 | 
				
			||||||
 | 
					         (modify-phases %standard-phases
 | 
				
			||||||
 | 
					           (delete 'configure)
 | 
				
			||||||
 | 
					           (add-after 'unpack 'replace-bundled-cddlib
 | 
				
			||||||
 | 
					             (lambda* (#:key inputs #:allow-other-keys)
 | 
				
			||||||
 | 
					               (let* ((cddlib-src (assoc-ref inputs "cddlib-src"))
 | 
				
			||||||
 | 
					                      (local-dir "cddlib_guix"))
 | 
				
			||||||
 | 
					                 (mkdir local-dir)
 | 
				
			||||||
 | 
					                 (with-directory-excursion local-dir
 | 
				
			||||||
 | 
					                   (system* "tar" "xvf" cddlib-src))
 | 
				
			||||||
 | 
					                 (let ((cddlib-src-folder
 | 
				
			||||||
 | 
					                        (string-append local-dir "/"
 | 
				
			||||||
 | 
					                                       (list-ref (scandir local-dir) 2)
 | 
				
			||||||
 | 
					                                       "/lib-src")))
 | 
				
			||||||
 | 
					                   (for-each
 | 
				
			||||||
 | 
					                    (lambda (file)
 | 
				
			||||||
 | 
					                      (copy-file file
 | 
				
			||||||
 | 
					                                 (string-append "cdd_src/" (basename file))))
 | 
				
			||||||
 | 
					                    (find-files cddlib-src-folder ".*[ch]$")))
 | 
				
			||||||
 | 
					                 #t)))
 | 
				
			||||||
 | 
					           (add-after 'unpack 'fix-makefile
 | 
				
			||||||
 | 
					             (lambda _
 | 
				
			||||||
 | 
					               ;; Remove system calls to 'git'.
 | 
				
			||||||
 | 
					               (substitute* "Makefile"
 | 
				
			||||||
 | 
					                 (("^DESCRIPT:=pplacer-.*")
 | 
				
			||||||
 | 
					                  (string-append
 | 
				
			||||||
 | 
					                   "DESCRIPT:=pplacer-$(shell uname)-v" ,version "\n")))
 | 
				
			||||||
 | 
					               (substitute* "myocamlbuild.ml"
 | 
				
			||||||
 | 
					                 (("git describe --tags --long .*\\\" with")
 | 
				
			||||||
 | 
					                  (string-append
 | 
				
			||||||
 | 
					                   "echo -n v" ,version "-" ,commit "\" with")))
 | 
				
			||||||
 | 
					               #t))
 | 
				
			||||||
 | 
					           (replace 'install
 | 
				
			||||||
 | 
					             (lambda* (#:key outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					               (let* ((out (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                      (bin (string-append out "/bin")))
 | 
				
			||||||
 | 
					                 (copy-recursively "bin" bin))
 | 
				
			||||||
 | 
					               #t)))))
 | 
				
			||||||
 | 
					      (native-inputs
 | 
				
			||||||
 | 
					       `(("zlib" ,zlib)
 | 
				
			||||||
 | 
					         ("gsl" ,gsl)
 | 
				
			||||||
 | 
					         ("ocaml-ounit" ,ocaml4.01-ounit)
 | 
				
			||||||
 | 
					         ("ocaml-batteries" ,ocaml4.01-batteries)
 | 
				
			||||||
 | 
					         ("ocaml-camlzip" ,ocaml4.01-camlzip)
 | 
				
			||||||
 | 
					         ("ocaml-csv" ,ocaml4.01-csv)
 | 
				
			||||||
 | 
					         ("ocaml-sqlite3" ,ocaml4.01-sqlite3)
 | 
				
			||||||
 | 
					         ("ocaml-xmlm" ,ocaml4.01-xmlm)
 | 
				
			||||||
 | 
					         ("ocaml-mcl" ,ocaml4.01-mcl)
 | 
				
			||||||
 | 
					         ("ocaml-gsl" ,ocaml4.01-gsl)
 | 
				
			||||||
 | 
					         ("cddlib-src" ,(package-source cddlib))))
 | 
				
			||||||
 | 
					      (propagated-inputs
 | 
				
			||||||
 | 
					       `(("pplacer-scripts" ,pplacer-scripts)))
 | 
				
			||||||
 | 
					      (synopsis "Phylogenetic placement of biological sequences")
 | 
				
			||||||
 | 
					      (description
 | 
				
			||||||
 | 
					       "Pplacer places query sequences on a fixed reference phylogenetic tree
 | 
				
			||||||
 | 
					to maximize phylogenetic likelihood or posterior probability according to a
 | 
				
			||||||
 | 
					reference alignment.  Pplacer is designed to be fast, to give useful
 | 
				
			||||||
 | 
					information about uncertainty, and to offer advanced visualization and
 | 
				
			||||||
 | 
					downstream analysis.")
 | 
				
			||||||
 | 
					      (home-page "http://matsen.fhcrc.org/pplacer")
 | 
				
			||||||
 | 
					      (license license:gpl3))))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					;; This package is installed alongside 'pplacer'.  It is a separate package so
 | 
				
			||||||
 | 
					;; that it can use the python-build-system for the scripts that are
 | 
				
			||||||
 | 
					;; distributed alongside the main OCaml binaries.
 | 
				
			||||||
 | 
					(define pplacer-scripts
 | 
				
			||||||
 | 
					  (package
 | 
				
			||||||
 | 
					    (inherit pplacer)
 | 
				
			||||||
 | 
					    (name "pplacer-scripts")
 | 
				
			||||||
 | 
					    (build-system python-build-system)
 | 
				
			||||||
 | 
					    (arguments
 | 
				
			||||||
 | 
					     `(#:python ,python-2
 | 
				
			||||||
 | 
					       #:phases
 | 
				
			||||||
 | 
					       (modify-phases %standard-phases
 | 
				
			||||||
 | 
					         (add-after 'unpack 'enter-scripts-dir
 | 
				
			||||||
 | 
					           (lambda _ (chdir "scripts")))
 | 
				
			||||||
 | 
					         (replace 'check
 | 
				
			||||||
 | 
					           (lambda _
 | 
				
			||||||
 | 
					             (zero? (system* "python" "-m" "unittest" "discover" "-v"))))
 | 
				
			||||||
 | 
					         (add-after 'install 'wrap-executables
 | 
				
			||||||
 | 
					           (lambda* (#:key inputs outputs #:allow-other-keys)
 | 
				
			||||||
 | 
					             (let* ((out (assoc-ref outputs "out"))
 | 
				
			||||||
 | 
					                    (bin (string-append out "/bin")))
 | 
				
			||||||
 | 
					               (let ((path (string-append
 | 
				
			||||||
 | 
					                            (assoc-ref inputs "hmmer") "/bin:"
 | 
				
			||||||
 | 
					                            (assoc-ref inputs "infernal") "/bin")))
 | 
				
			||||||
 | 
					                 (display path)
 | 
				
			||||||
 | 
					                 (wrap-program (string-append bin "/refpkg_align.py")
 | 
				
			||||||
 | 
					                   `("PATH" ":" prefix (,path))))
 | 
				
			||||||
 | 
					               (let ((path (string-append
 | 
				
			||||||
 | 
					                            (assoc-ref inputs "hmmer") "/bin")))
 | 
				
			||||||
 | 
					                 (wrap-program (string-append bin "/hrefpkg_query.py")
 | 
				
			||||||
 | 
					                   `("PATH" ":" prefix (,path)))))
 | 
				
			||||||
 | 
					             #t)))))
 | 
				
			||||||
 | 
					    (inputs
 | 
				
			||||||
 | 
					     `(("infernal" ,infernal)
 | 
				
			||||||
 | 
					       ("hmmer" ,hmmer)))
 | 
				
			||||||
 | 
					    (propagated-inputs
 | 
				
			||||||
 | 
					     `(("python-biopython" ,python2-biopython)
 | 
				
			||||||
 | 
					       ("taxtastic" ,taxtastic)))
 | 
				
			||||||
 | 
					    (synopsis "Pplacer Python scripts")))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
(define-public python2-pbcore
 | 
					(define-public python2-pbcore
 | 
				
			||||||
  (package
 | 
					  (package
 | 
				
			||||||
    (name "python2-pbcore")
 | 
					    (name "python2-pbcore")
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Reference in a new issue