summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/busco/package.py
blob: 81605a37dae807337fbd07fad6d62c510eb82dea (plain) (blame)
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
# Copyright 2013-2021 Lawrence Livermore National Security, LLC and other
# Spack Project Developers. See the top-level COPYRIGHT file for details.
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)

from spack import *


class Busco(PythonPackage):
    """Assesses genome assembly and annotation completeness with Benchmarking
       Universal Single-Copy Orthologs"""

    homepage = "https://busco.ezlab.org/"
    url      = "https://gitlab.com/api/v4/projects/ezlab%2Fbusco/repository/archive.tar.gz?sha=2.0.1"
    git      = "https://gitlab.com/ezlab/busco.git"

    version('4.1.3', sha256='08ded26aeb4f6aef791cd88524c3c00792a054c7672ea05219f468d495e7b072')

    # TODO: check the installation procedure for version 3.0.2
    # and uncomment the following line
    # version('3.0.2', sha256='dbea093315b766b0f7c4fe3cafbbdf51ade79ec84bde04f1f437b48333200f34')

    # There is no tag for version 3.0.1
    version('3.0.1', commit='078252e00399550d7b0e8941cd4d986c8e868a83')
    version('2.0.1', sha256='bd72a79b880370e9b61b8c722e171818c7c85d46cc1e2f80595df2738a7e220c')

    # https://busco.ezlab.org/busco_userguide.html#manual-installation
    depends_on('python@3.3:', when='@4:', type=('build', 'run'))
    # pip silently replaces distutils with setuptools
    depends_on('py-setuptools', when='@3:', type='build')
    depends_on('blast-plus')
    depends_on('hmmer')
    depends_on('augustus')
    depends_on('py-biopython', when='@4.1.3', type=('build', 'run'))

    def install(self, spec, prefix):
        if self.spec.satisfies('@4.1.3'):
            install_tree('bin', prefix.bin)
            install_tree('config', prefix.config)
            super(self, PythonPackage).install(spec, prefix)
        if self.spec.satisfies('@3.0.1'):
            with working_dir('scripts'):
                mkdirp(prefix.bin)
                install('generate_plot.py', prefix.bin)
                install('run_BUSCO.py', prefix.bin)
            install_tree('config', prefix.config)
            super(self, PythonPackage).install(spec, prefix)
        if self.spec.satisfies('@2.0.1'):
            mkdirp(prefix.bin)
            install('BUSCO.py', prefix.bin)
            install('BUSCO_plot.py', prefix.bin)