summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/repeatmodeler/package.py
blob: c40b288f95562e89db08a0a51465ffeaa3b667fd (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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# 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 Repeatmodeler(Package):
    """RepeatModeler is a de-novo repeat family identification and modeling
       package."""

    homepage = "https://www.repeatmasker.org/RepeatModeler/"
    url      = "https://www.repeatmasker.org/RepeatModeler/RepeatModeler-open-1.0.11.tar.gz"

    version('1.0.11', sha256='7ff0d588b40f9ad5ce78876f3ab8d2332a20f5128f6357413f741bb7fa172193')

    depends_on('perl', type=('build', 'run'))
    depends_on('perl-json', type=('build', 'run'))
    depends_on('perl-uri', type=('build', 'run'))
    depends_on('perl-libwww-perl', type=('build', 'run'))

    depends_on('repeatmasker', type='run')
    depends_on('recon+repeatmasker', type='run')
    depends_on('repeatscout', type='run')
    depends_on('trf', type='run')
    depends_on('nseg', type='run')
    depends_on('ncbi-rmblastn', type='run')

    def install(self, spec, prefix):
        # like repeatmasker, another interactive installer
        # questions:
        #   1. <enter to continue>
        #   2. <perl path, default is OK>
        #   3. <source path, default is OK>
        #   4. RepeatMasker bin path
        #   5. RECON bin path
        #   6. RepeatScout bin path
        #   7. Nseg bin path
        #   8. trf bin path
        #   9. Add a search engine:
        #        1. RMBlast -> Path, Default? (Y/N)
        #        2. WUBlast/ABBlast -> Path, Default? (Y/N)
        #        3. Done

        config_answers = [
            '', '', '',
            spec['repeatmasker'].prefix.bin,
            spec['recon'].prefix.bin,
            spec['repeatscout'].prefix.bin,
            spec['nseg'].prefix.bin,
            spec['trf'].prefix.bin,
            '1', spec['ncbi-rmblastn'].prefix.bin, 'Y',
            '3',
        ]

        config_filename = 'spack-config.in'

        with open(config_filename, 'w') as f:
            f.write('\n'.join(config_answers))

        with open(config_filename, 'r') as f:
            perl = which('perl')
            perl('configure', input=f)

        install_tree('.', prefix.bin)