hisat2: add version 2.2.1 and sra variant (#34966)
- add python dependency - add perl dependency - set python and perl interpreters in scripts
This commit is contained in:
parent
b7e416046f
commit
6f19eb5e67
@ -3,6 +3,7 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
import glob
|
||||||
|
|
||||||
from spack.package import *
|
from spack.package import *
|
||||||
|
|
||||||
@ -16,6 +17,12 @@ class Hisat2(MakefilePackage):
|
|||||||
homepage = "https://daehwankimlab.github.io/hisat2/"
|
homepage = "https://daehwankimlab.github.io/hisat2/"
|
||||||
url = "ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.1.0-source.zip"
|
url = "ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.1.0-source.zip"
|
||||||
|
|
||||||
|
version(
|
||||||
|
"2.2.1",
|
||||||
|
sha256="48e933330d4d8470d2b3dfe7ec3918f2e98a75f7381891e23b7df1fb4f135eb1",
|
||||||
|
url="https://cloud.biohpc.swmed.edu/index.php/s/fE9QCsX3NH4QwBi/download",
|
||||||
|
extension="zip",
|
||||||
|
)
|
||||||
version(
|
version(
|
||||||
"2.2.0",
|
"2.2.0",
|
||||||
sha256="0dd55168853b82c1b085f79ed793dd029db163773f52272d7eb51b3b5e4a4cdd",
|
sha256="0dd55168853b82c1b085f79ed793dd029db163773f52272d7eb51b3b5e4a4cdd",
|
||||||
@ -24,14 +31,36 @@ class Hisat2(MakefilePackage):
|
|||||||
)
|
)
|
||||||
version("2.1.0", sha256="89a276eed1fc07414b1601947bc9466bdeb50e8f148ad42074186fe39a1ee781")
|
version("2.1.0", sha256="89a276eed1fc07414b1601947bc9466bdeb50e8f148ad42074186fe39a1ee781")
|
||||||
|
|
||||||
|
variant("sra", default=False, description="Add SRA (Sequence Read Archive) support")
|
||||||
|
|
||||||
|
depends_on("perl", type="run")
|
||||||
|
depends_on("python", type="run")
|
||||||
|
|
||||||
|
depends_on("sra-tools", when="+sra")
|
||||||
|
depends_on("ncbi-vdb", when="+sra")
|
||||||
|
|
||||||
|
# patch to get SRA working
|
||||||
|
patch("sra.patch", when="+sra")
|
||||||
|
|
||||||
|
@when("+sra")
|
||||||
|
def build(self, spec, prefix):
|
||||||
|
make(
|
||||||
|
"USE_SRA=1",
|
||||||
|
"NCBI_NGS_DIR={0}".format(spec["sra-tools"].prefix),
|
||||||
|
"NCBI_VDB_DIR={0}".format(spec["ncbi-vdb"].prefix),
|
||||||
|
)
|
||||||
|
|
||||||
def install(self, spec, prefix):
|
def install(self, spec, prefix):
|
||||||
if spec.satisfies("@:2.1.0"):
|
if spec.satisfies("@:2.1.0"):
|
||||||
install_tree("doc", prefix.doc)
|
install_tree("doc", prefix.doc)
|
||||||
|
|
||||||
install_tree("example", prefix.example)
|
install_tree("example", prefix.example)
|
||||||
install_tree("hisatgenotype_modules", prefix.hisatgenotype_modules)
|
|
||||||
install_tree("hisatgenotype_scripts", prefix.hisatgenotype_scripts)
|
|
||||||
install_tree("scripts", prefix.scripts)
|
install_tree("scripts", prefix.scripts)
|
||||||
|
|
||||||
|
if "@:2.2.0" in spec:
|
||||||
|
install_tree("hisatgenotype_modules", prefix.hisatgenotype_modules)
|
||||||
|
install_tree("hisatgenotype_scripts", prefix.hisatgenotype_scripts)
|
||||||
|
|
||||||
mkdirp(prefix.bin)
|
mkdirp(prefix.bin)
|
||||||
install("hisat2", prefix.bin)
|
install("hisat2", prefix.bin)
|
||||||
install("hisat2-align-s", prefix.bin)
|
install("hisat2-align-s", prefix.bin)
|
||||||
@ -44,5 +73,38 @@ def install(self, spec, prefix):
|
|||||||
install("hisat2-inspect-l", prefix.bin)
|
install("hisat2-inspect-l", prefix.bin)
|
||||||
install("*.py", prefix.bin)
|
install("*.py", prefix.bin)
|
||||||
|
|
||||||
def setup_run_environment(self, env):
|
if "@2.2:" in spec:
|
||||||
env.prepend_path("PATH", self.spec.prefix)
|
install("hisat2-repeat", prefix.bin)
|
||||||
|
|
||||||
|
@run_after("install")
|
||||||
|
def filter_sbang(self):
|
||||||
|
with working_dir(self.prefix.bin):
|
||||||
|
pattern = "^#!.*/usr/bin/env python"
|
||||||
|
repl = "#!{0}".format(self.spec["python"].command.path)
|
||||||
|
files = [
|
||||||
|
"hisat2-build",
|
||||||
|
"hisat2-inspect",
|
||||||
|
]
|
||||||
|
for file in files:
|
||||||
|
filter_file(pattern, repl, *files, backup=False)
|
||||||
|
|
||||||
|
pattern = "^#!.*/usr/bin/env perl"
|
||||||
|
repl = "#!{0}".format(self.spec["perl"].command.path)
|
||||||
|
files = [
|
||||||
|
"hisat2",
|
||||||
|
]
|
||||||
|
for file in files:
|
||||||
|
filter_file(pattern, repl, *files, backup=False)
|
||||||
|
|
||||||
|
pattern = "^#!.*/usr/bin/env python3"
|
||||||
|
repl = "#!{0}".format(self.spec["python"].command.path)
|
||||||
|
files = glob.glob("*.py")
|
||||||
|
for file in files:
|
||||||
|
filter_file(pattern, repl, *files, backup=False)
|
||||||
|
|
||||||
|
with working_dir(self.prefix.scripts):
|
||||||
|
pattern = "^#!.*/usr/bin/perl"
|
||||||
|
repl = "#!{0}".format(self.spec["perl"].command.path)
|
||||||
|
files = glob.glob("*.pl")
|
||||||
|
for file in files:
|
||||||
|
filter_file(pattern, repl, *files, backup=False)
|
||||||
|
11
var/spack/repos/builtin/packages/hisat2/sra.patch
Normal file
11
var/spack/repos/builtin/packages/hisat2/sra.patch
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
--- a/Makefile 2020-07-24 10:46:16.000000000 -0500
|
||||||
|
+++ b/Makefile 2023-01-12 20:28:08.919588735 -0600
|
||||||
|
@@ -94,7 +94,7 @@
|
||||||
|
SERACH_INC =
|
||||||
|
ifeq (1,$(USE_SRA))
|
||||||
|
SRA_DEF = -DUSE_SRA
|
||||||
|
- SRA_LIB = -lncbi-ngs-c++-static -lngs-c++-static -lncbi-vdb-static -ldl
|
||||||
|
+ SRA_LIB = -lncbi-ngs-c++-static -lngs-c++-static -lncbi-ngs-static -lncbi-vdb-static -ldl
|
||||||
|
SEARCH_INC += -I$(NCBI_NGS_DIR)/include -I$(NCBI_VDB_DIR)/include
|
||||||
|
SEARCH_LIBS += -L$(NCBI_NGS_DIR)/lib64 -L$(NCBI_VDB_DIR)/lib64
|
||||||
|
endif
|
Loading…
Reference in New Issue
Block a user