summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorMike Renfro <mike+github@renf.ro>2023-10-09 05:47:54 -0500
committerGitHub <noreply@github.com>2023-10-09 12:47:54 +0200
commit215c699307a23fd7043116cfb13ccd0035fe812f (patch)
tree4885a1b385157aeb8489a1b71e83dbd464879869 /var
parentf609093c6eccb7c63147f307c496453d9c4d0564 (diff)
downloadspack-215c699307a23fd7043116cfb13ccd0035fe812f.tar.gz
spack-215c699307a23fd7043116cfb13ccd0035fe812f.tar.bz2
spack-215c699307a23fd7043116cfb13ccd0035fe812f.tar.xz
spack-215c699307a23fd7043116cfb13ccd0035fe812f.zip
velvet: improved variants (#40225)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/velvet/package.py49
1 files changed, 48 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/velvet/package.py b/var/spack/repos/builtin/packages/velvet/package.py
index 89b88feaff..55c76fee33 100644
--- a/var/spack/repos/builtin/packages/velvet/package.py
+++ b/var/spack/repos/builtin/packages/velvet/package.py
@@ -6,6 +6,13 @@
from spack.package import *
+def is_positive_int(x):
+ if x.isdigit() and int(x) > 0:
+ return True
+ else:
+ return False
+
+
class Velvet(MakefilePackage):
"""Velvet is a de novo genomic assembler specially designed for short read
sequencing technologies."""
@@ -13,14 +20,54 @@ class Velvet(MakefilePackage):
homepage = "https://www.ebi.ac.uk/~zerbino/velvet/"
url = "https://www.ebi.ac.uk/~zerbino/velvet/velvet_1.2.10.tgz"
+ maintainers("snehring")
+
version("1.2.10", sha256="884dd488c2d12f1f89cdc530a266af5d3106965f21ab9149e8cb5c633c977640")
+ variant(
+ "categories",
+ default="2",
+ description="Number of channels which can be handled independently",
+ values=is_positive_int,
+ )
+ variant(
+ "maxkmerlength",
+ default="31",
+ description="Longest kmer size you can use in an analysis",
+ values=is_positive_int,
+ )
+ variant("bigassembly", default=False, description="Allow assemblies with more than 2^31 reads")
+ variant(
+ "vbigassembly",
+ default=False,
+ description="Allow unsigned 64-bit array index values (also enables bigassembly)",
+ )
+ variant(
+ "longsequences", default=False, description="Allow assembling contigs longer than 32kb"
+ )
+ variant("openmp", default=False, description="Enable multithreading")
+ variant("single_cov_cat", default=False, description="Per-library coverage")
+
depends_on("zlib-api")
def edit(self, spec, prefix):
+ makefile = FileFilter("Makefile")
if spec.target.family == "aarch64":
- makefile = FileFilter("Makefile")
makefile.filter("-m64", "")
+ maxkmerlength = self.spec.variants["maxkmerlength"].value
+ categories = self.spec.variants["categories"].value
+ makefile.filter(r"^MAXKMERLENGTH\s*=\s*.*", f"MAXKMERLENGTH = {maxkmerlength}")
+ makefile.filter(r"^CATEGORIES\s*=\s*.*", f"CATEGORIES = {categories}")
+ if "+bigassembly" in self.spec:
+ makefile.filter("^ifdef BIGASSEMBLY", "BIGASSEMBLY=1\nifdef BIGASSEMBLY")
+ if "+vbigassembly" in self.spec:
+ makefile.filter("^ifdef VBIGASSEMBLY", "VBIGASSEMBLY=1\nifdef VBIGASSEMBLY")
+ if "+longsequences" in self.spec:
+ makefile.filter("^ifdef LONGSEQUENCES", "LONGSEQUENCES=1\nifdef LONGSEQUENCES")
+ if "+openmp" in self.spec:
+ makefile.filter("^ifdef OPENMP", "OPENMP=1\nifdef OPENMP")
+ if "+single_cov_cat" in self.spec:
+ makefile.filter("^ifdef SINGLE_COV_CAT", "SINGLE_COV_CAT=1\nifdef SINGLE_COV_CAT")
def install(self, spec, prefix):
mkdirp(prefix.bin)