From 811abf5d004d86ec1fd6e08f0f6a18ffe09f66cc Mon Sep 17 00:00:00 2001 From: Robert Romero <1013414+NessieCanCode@users.noreply.github.com> Date: Wed, 9 Mar 2022 00:47:04 -0800 Subject: HiCOPS: add new package (#26767) Co-authored-by: Harmen Stoppels --- var/spack/repos/builtin/packages/hicops/package.py | 113 +++++++++++++++++++++ var/spack/repos/builtin/packages/lastz/package.py | 2 +- 2 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 var/spack/repos/builtin/packages/hicops/package.py (limited to 'var') diff --git a/var/spack/repos/builtin/packages/hicops/package.py b/var/spack/repos/builtin/packages/hicops/package.py new file mode 100644 index 0000000000..ccd52af0e0 --- /dev/null +++ b/var/spack/repos/builtin/packages/hicops/package.py @@ -0,0 +1,113 @@ +# Copyright 2013-2022 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) + +from spack import * + + +class Hicops(CMakePackage): + """HiCOPS is a software framework for accelerating database peptide search + workflows on supercomputers. HiCOPS provided algorithm-independent + parallelizations and optimizations can be extended into new HPC database search + algorithms or scalably accelerate the existing ones. + """ + + homepage = "https://hicops.github.io/index" + git = "https://github.com/hicops/hicops.git" + maintainers = ['pcdslab', 'mhaseeb123', 'nessiecancode'] + + version('release', branch='release') + version('develop', branch='develop') + + # Build Options + variant('mpi', default=True, + description='Enable MPI support.') + variant('timemory', default=False, + description='Enable timemory interface. Requires timemory ' + 'installation.') + variant('mpip', default=False, + description='Enables the MPIP data_tracker via Timemory. ' + 'Requires timemory installation.') + variant('tailfit', default=True, + description='Use the tailfit method instead of Gumbelfit ' + 'for e-value computation.') + variant('progress', default=True, + description='Display HiCOPS progress marks.') + variant('seqlen', default='60', + description='Allowed maximum peptide sequence length.', + values=int, multi=False) + variant('qalen', default='100', + description='Maximum number of top K peaks to keep when ' + 'spectrum preprocess.', values=int, + multi=False) + variant('qchunk', default='10000', + description='Max size of each batch extracted from the ' + 'dataset.', values=int, multi=False) + variant('hyperscore', default='100', + description='Maximum allowed hyperscore computed.', + values=int, multi=False) + variant('shdpeaks', default='80', + description='Maximum shared b- or y-ions allowed.', + values=int, multi=False) + variant('cxx_std', default='14', + description='C++ standard', values=('14', '17'), + multi=False) + + depends_on('py-numpy') + depends_on('py-python-dateutil') + depends_on('py-setuptools') + depends_on('py-bottleneck') + depends_on('py-pyparsing') + depends_on('py-subprocess32') + depends_on('py-six') + depends_on('py-setuptools-scm') + depends_on('py-et-xmlfile') + depends_on('py-argparse') + depends_on('py-cython') + depends_on('py-cycler') + depends_on('py-pytz') + depends_on('py-kiwisolver') + depends_on('py-numexpr') + depends_on('py-matplotlib') + depends_on('py-jdcal') + depends_on('py-pandas') + depends_on('py-openpyxl') + depends_on('python@3.7:3.9') + depends_on('boost') + depends_on('mpich') + depends_on('git', type='build', when='@release') + depends_on('git', type='build', when='@develop') + depends_on('cmake@3.11:', type='build') + depends_on('pkgconf', type='build') + # TODO: Add timemory and mpip depends_on() + + conflicts('+timemory') + # Build failing when added. Creating a conflict as a workaround + conflicts('%gcc@:7.2.0') + conflicts('+mpip -timemory') + conflicts('+mpip -mpi') + + def setup_run_environment(self, env): + env.prepend_path('PATH', self.prefix.tools) + env.prepend_path('PATH', self.prefix.bin.tools) + env.set('HICOPS_INSTALL', self.prefix) + env.prepend_path('INCLUDE', self.prefix.include) + + def cmake_args(self): + args = [ + self.define('USE_MPI', True), + self.define('CMAKE_INSTALL_PREFIX', self.prefix), + self.define_from_variant('USE_TIMEMORY', 'timemory'), + self.define_from_variant('USE_MPIP_LIBRARY', 'mpip'), + self.define_from_variant('TAILFIT', 'tailfit'), + self.define_from_variant('PROGRESS', 'progress'), + self.define_from_variant('MAX_SEQ_LEN', 'seqlen'), + self.define_from_variant('QALEN', 'qalen'), + self.define_from_variant('QCHUNK', 'qchunk'), + self.define_from_variant('MAX_HYPERSCORE', 'hyperscore'), + self.define_from_variant('MAX_SHDPEAKS', 'shdpeaks'), + self.define_from_variant('CMAKE_CXX_STANDARD', 'cxx_std') + ] + + return args diff --git a/var/spack/repos/builtin/packages/lastz/package.py b/var/spack/repos/builtin/packages/lastz/package.py index f87845b9f8..114dd2faca 100644 --- a/var/spack/repos/builtin/packages/lastz/package.py +++ b/var/spack/repos/builtin/packages/lastz/package.py @@ -11,7 +11,7 @@ class Lastz(MakefilePackage): homepage = "https://lastz.github.io/lastz" url = "https://github.com/lastz/lastz/archive/1.04.00.tar.gz" - + version('1.04.15', sha256='46a5cfb1fd41911a36fce5d3a2721ebfec9146952943b302e78b0dfffddd77f8') version('1.04.03', sha256='c58ed8e37c4b0e82492b3a2b3e12447a3c40286fb8358906d19f10b0a713e9f4') version('1.04.00', sha256='a4c2c7a77430387e96dbc9f5bdc75874334c672be90f5720956c0f211abf9f5a') -- cgit v1.2.3-60-g2f50