chexmix: new package (#38441)
Co-authored-by: LMS Bioinformatics <bioinformatics@lms.mrc.ac.uk>
This commit is contained in:
parent
be3f7b5da3
commit
c8a3f1a8ae
2 changed files with 52 additions and 0 deletions
3
var/spack/repos/builtin/packages/chexmix/chexmix.sh
Normal file
3
var/spack/repos/builtin/packages/chexmix/chexmix.sh
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
#!/bin/sh
|
||||||
|
# convenience wrapper for the chexmix jar file
|
||||||
|
java -jar chexmix.jar "$@"
|
49
var/spack/repos/builtin/packages/chexmix/package.py
Normal file
49
var/spack/repos/builtin/packages/chexmix/package.py
Normal file
|
@ -0,0 +1,49 @@
|
||||||
|
# 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 os
|
||||||
|
|
||||||
|
from spack.package import *
|
||||||
|
|
||||||
|
|
||||||
|
class Chexmix(Package):
|
||||||
|
"""ChExMix: the ChIP-exo mixture model. ChExMix aims to characterize protein-DNA binding
|
||||||
|
subtypes in ChIP-exo experiments."""
|
||||||
|
|
||||||
|
homepage = "http://mahonylab.org/software/chexmix"
|
||||||
|
url = "https://github.com/seqcode/chexmix/releases/download/v0.51/chexmix.v0.51.jar"
|
||||||
|
|
||||||
|
# The naming of the .jar files is inconsistent on GitHub. Until this is resolved, downloads
|
||||||
|
# that don't match the above url spec will need to be renamed - see rename_versions().
|
||||||
|
version(
|
||||||
|
"0.52",
|
||||||
|
url="https://github.com/seqcode/chexmix/releases/download/v0.52/chexmix.v0.52.public.jar",
|
||||||
|
sha256="7f856921b6071092cfcf226e4f99d9ab80587cf05502b41d00b8e5e16ccbfcdd",
|
||||||
|
expand=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
depends_on("java@8:", type="run")
|
||||||
|
depends_on("meme", type="run")
|
||||||
|
|
||||||
|
@run_before("install")
|
||||||
|
def rename_versions(self):
|
||||||
|
if self.version == Version("0.52"):
|
||||||
|
os.rename("chexmix.v0.52.public.jar", "chexmix.v0.52.jar")
|
||||||
|
|
||||||
|
def install(self, spec, prefix):
|
||||||
|
# install .jar file
|
||||||
|
mkdirp(prefix.bin)
|
||||||
|
jar_file = "chexmix.v{0}.jar".format(self.version)
|
||||||
|
install(jar_file, prefix.bin)
|
||||||
|
# create a helper script to launch the .jar
|
||||||
|
script_sh = join_path(os.path.dirname(__file__), "chexmix.sh")
|
||||||
|
script = prefix.bin.chexmix
|
||||||
|
install(script_sh, script)
|
||||||
|
set_executable(script)
|
||||||
|
# set the helper script to explicitly point to java and the .jar file
|
||||||
|
java = self.spec["java"].prefix.bin.java
|
||||||
|
kwargs = {"ignore_absent": False, "backup": False, "string": False}
|
||||||
|
filter_file("^java", java, script, **kwargs)
|
||||||
|
filter_file("chexmix.jar", join_path(prefix.bin, jar_file), script, **kwargs)
|
Loading…
Reference in a new issue