summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzschulte <schulte.zach@gmail.com>2019-01-31 17:10:06 -0500
committerPeter Scheibel <scheibel1@llnl.gov>2019-01-31 16:10:06 -0600
commita701c412bc591daed9cb9f7c3e632ecbdeac3e67 (patch)
treed406e3f2c914c339f150a44b7d6a41aace9c205a
parentcf754245fd0fe394bcbd609a8d05b942c4d008dd (diff)
downloadspack-a701c412bc591daed9cb9f7c3e632ecbdeac3e67.tar.gz
spack-a701c412bc591daed9cb9f7c3e632ecbdeac3e67.tar.bz2
spack-a701c412bc591daed9cb9f7c3e632ecbdeac3e67.tar.xz
spack-a701c412bc591daed9cb9f7c3e632ecbdeac3e67.zip
gatk package: new versions, updated helper script (#10459)
Closes #10168 * Add versions 4.1.0.0 and 4.0.12.0 * Replace md5 checksums with sha256 * Logic to generate a helper script for versions earlier than 4 was not running. This corrects the branch which controls whether this script is generated. * Constrain Java dependency to version 8 (GATK does not work with Java 11) * Avoid adding scripts that have dependencies not handled by Spack such as gcloud and google-chrome. These scripts are good candidates for later extensions.
-rw-r--r--var/spack/repos/builtin/packages/gatk/package.py120
1 files changed, 76 insertions, 44 deletions
diff --git a/var/spack/repos/builtin/packages/gatk/package.py b/var/spack/repos/builtin/packages/gatk/package.py
index 5b1d862812..f9d6ff0414 100644
--- a/var/spack/repos/builtin/packages/gatk/package.py
+++ b/var/spack/repos/builtin/packages/gatk/package.py
@@ -3,59 +3,91 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
-from spack import *
import os.path
+import glob
+from spack import *
class Gatk(Package):
- """Genome Analysis Toolkit
- Variant Discovery in High-Throughput Sequencing Data
"""
+ Genome Analysis Toolkit
+ Variant Discovery in High-Throughput Sequencing Data
+ """
+
homepage = "https://software.broadinstitute.org/gatk/"
- url = "https://github.com/broadinstitute/gatk/releases/download/4.0.4.0/gatk-4.0.4.0.zip"
-
- version('4.0.11.0', sha256='5ee23159be7c65051335ac155444c6a49c4d8e3515d4227646c0686819934536')
- version('4.0.8.1', sha256='6d47463dfd8c16ffae82fd29e4e73503e5b7cd0fcc6fea2ed50ee3760dd9acd9',
- url='https://github.com/broadinstitute/gatk/archive/4.0.8.1.tar.gz')
- version('4.0.4.0', '083d655883fb251e837eb2458141fc2b',
- url="https://github.com/broadinstitute/gatk/releases/download/4.0.4.0/gatk-4.0.4.0.zip")
- version('3.8-1', 'a0829534d2d0ca3ebfbd3b524a9b50427ff238e0db400d6e9e479242d98cbe5c', extension='tar.bz2',
- url="https://software.broadinstitute.org/gatk/download/auth?package=GATK-archive&version=3.8-1-0-gf15c1c3ef")
- version('3.8-0', '0581308d2a25f10d11d3dfd0d6e4d28e', extension='tar.gz',
- url="https://software.broadinstitute.org/gatk/download/auth?package=GATK")
-
- depends_on('java@8:', type='run')
- depends_on('python@2.6:2.8,3.6:', type='run', when='@4.0:')
- depends_on('r@3.2:', type='run', when='@4.0:')
+ url = "https://github.com/broadinstitute/gatk/releases/download/4.1.0.0/gatk-4.1.0.0.zip"
+ list_url = "https://github.com/broadinstitute/gatk/releases"
+
+ version(
+ "4.1.0.0",
+ sha256="148aa061328d922a570d0120d88f27e61e5da877f542206f4d77f2d788b7d21d",
+ )
+ version(
+ "4.0.12.0",
+ sha256="733134303f4961dec589247ff006612b7a94171fab8913c5d44c836aa086865f",
+ )
+ version(
+ "4.0.11.0",
+ sha256="5ee23159be7c65051335ac155444c6a49c4d8e3515d4227646c0686819934536",
+ )
+ version(
+ "4.0.8.1",
+ sha256="e4bb082d8c8826d4f8bc8c2f83811d0e81e5088b99099d3396d284f82fbf28c9",
+ )
+ version(
+ "4.0.4.0",
+ sha256="801bbb181c275cfabc96dc0cb21f3f901634cec11efde9ba9c8b91e2834feef4",
+ )
+ version(
+ "3.8-1",
+ "a0829534d2d0ca3ebfbd3b524a9b50427ff238e0db400d6e9e479242d98cbe5c",
+ extension="tar.bz2",
+ url="https://software.broadinstitute.org/gatk/download/auth?package=GATK-archive&version=3.8-1-0-gf15c1c3ef",
+ )
+ version(
+ "3.8-0",
+ "0581308d2a25f10d11d3dfd0d6e4d28e",
+ extension="tar.gz",
+ url="https://software.broadinstitute.org/gatk/download/auth?package=GATK",
+ )
+
+ depends_on("java@8", type="run")
+ depends_on("python@2.6:2.8,3.6:", type="run", when="@4.0:")
+ depends_on("r@3.2:", type="run", when="@4.0:")
def install(self, spec, prefix):
mkdirp(prefix.bin)
- # Install all executable non-script files to prefix bin
- jar_file = 'GenomeAnalysisTK.jar'
- install(jar_file, prefix.bin)
-
- # Skip helper script settings
- if spec.satisfies('@:4.0'):
- return
-
- # Set up a helper script to call java on the jar file,
- # explicitly codes the path for java and the jar file.
- script_sh = join_path(os.path.dirname(__file__), "gatk.sh")
- script = join_path(prefix.bin, "gatk")
- install(script_sh, script)
- set_executable(script)
-
- # Munge the helper script to explicitly point to java and the
- # jar file.
- java = join_path(self.spec['java'].prefix, 'bin', 'java')
- kwargs = {'ignore_absent': False, 'backup': False, 'string': False}
- filter_file('^java', java, script, **kwargs)
- filter_file('GenomeAnalysisTK.jar', join_path(prefix.bin,
- 'GenomeAnalysisTK.jar'),
- script, **kwargs)
+ # For ver 3.x will install "GenomeAnalysisTK.jar"
+ # For ver 4.x will install both "gatk-package-<ver>-local.jar"
+ # and "gatk-package-<ver>-spark.jar"
+ for file in glob.glob("*.jar"):
+ install(file, prefix.bin)
+
+ # Skip helper script for versions >4.0
+ if spec.satisfies("@4.0:"):
+ install("gatk", prefix.bin)
+ else:
+ # Set up a helper script to call java on the jar file,
+ # explicitly codes the path for java and the jar file.
+ script_sh = join_path(os.path.dirname(__file__), "gatk.sh")
+ script = join_path(prefix.bin, "gatk")
+ install(script_sh, script)
+ set_executable(script)
+
+ # Munge the helper script to explicitly point to java and the
+ # jar file.
+ java = join_path(self.spec["java"].prefix, "bin", "java")
+ kwargs = {"ignore_absent": False, "backup": False, "string": False}
+ filter_file("^java", java, script, **kwargs)
+ filter_file(
+ "GenomeAnalysisTK.jar",
+ join_path(prefix.bin, "GenomeAnalysisTK.jar"),
+ script,
+ **kwargs
+ )
def setup_environment(self, spack_env, run_env):
- run_env.prepend_path('GATK',
- join_path(self.prefix, 'bin',
- 'GenomeAnalysisTK.jar'))
+ run_env.prepend_path(
+ "GATK", join_path(self.prefix, "bin", "GenomeAnalysisTK.jar")
+ )