70 lines
2.8 KiB
Python
70 lines
2.8 KiB
Python
# Copyright 2013-2023 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)
|
|
|
|
import glob
|
|
import os
|
|
|
|
from spack.package import *
|
|
|
|
|
|
class GenemarkEt(Package):
|
|
"""Gene Prediction in Bacteria, archaea, Metagenomes and
|
|
Metatranscriptomes.
|
|
When downloaded this file is named the same for all versions.
|
|
Spack will search your current directory for the download file.
|
|
Alternatively, add this file to a mirror so that Spack can find it.
|
|
For instructions on how to set up a mirror, see
|
|
https://spack.readthedocs.io/en/latest/mirrors.html"""
|
|
|
|
homepage = "http://topaz.gatech.edu/GeneMark"
|
|
manual_download = True
|
|
|
|
version("4.69", sha256="027a060d6e0654d4d2a09bc97dde9bd6efd60bc4dc3e0183f212ddd5e6854ae7")
|
|
version("4.65", sha256="62ea2dfa1954ab25edcc118dbeaeacf15924274fb9ed47bc54716cfd15ad04fe")
|
|
version("4.46", sha256="856b0b6c7cbd12835e140ff04ecd9124376348efd65f76bfd8b8e08c1834eac0")
|
|
version("4.38", sha256="cee3bd73d331be44159eac15469560d0b07ffa2c98ac764c37219e1f3b7d3146")
|
|
|
|
depends_on("perl", type=("build", "run"))
|
|
depends_on("perl-yaml", type=("build", "run"))
|
|
depends_on("perl-hash-merge", type=("build", "run"))
|
|
depends_on("perl-parallel-forkmanager", type=("build", "run"))
|
|
depends_on("perl-logger-simple", when="@:4.46", type=("build", "run"))
|
|
depends_on("perl-mce", when="@4.65:", type=("build", "run"))
|
|
depends_on("perl-thread-queue", when="@4.65:", type=("build", "run"))
|
|
depends_on("perl-threads", when="@4.65:", type=("build", "run"))
|
|
|
|
def url_for_version(self, version):
|
|
if version >= Version("4.65"):
|
|
return "file://{0}/gmes_linux_64.tar.gz".format(os.getcwd())
|
|
else:
|
|
return "file://{0}/gm_et_linux_64.tar.gz".format(os.getcwd())
|
|
|
|
def install(self, spec, prefix):
|
|
mkdirp(prefix.bin)
|
|
mkdirp(prefix.bin.heu_dir)
|
|
if self.version <= Version("4.38"):
|
|
source_dir = "gmes_petap"
|
|
else:
|
|
source_dir = self.stage.source_path
|
|
with working_dir(source_dir):
|
|
install_tree("lib", prefix.lib)
|
|
files = glob.iglob("*")
|
|
for file in files:
|
|
if os.path.isfile(file):
|
|
install(file, prefix.bin)
|
|
install_tree("heu_dir", prefix.bin.heu_dir)
|
|
|
|
@run_after("install")
|
|
def filter_sbang(self):
|
|
with working_dir(self.prefix.bin):
|
|
pattern = "^#!.*/usr/bin/perl"
|
|
repl = "#!{0}".format(self.spec["perl"].command.path)
|
|
files = glob.iglob("*.pl")
|
|
for file in files:
|
|
filter_file(pattern, repl, *files, backup=False)
|
|
|
|
def setup_run_environment(self, env):
|
|
env.prepend_path("PERL5LIB", self.prefix.lib)
|