HiCOPS: add new package (#26767)

Co-authored-by: Harmen Stoppels <harmenstoppels@gmail.com>
This commit is contained in:
Robert Romero 2022-03-09 00:47:04 -08:00 committed by GitHub
parent 37e14ee1ac
commit 811abf5d00
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 114 additions and 1 deletions

View File

@ -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

View File

@ -11,7 +11,7 @@ class Lastz(MakefilePackage):
homepage = "https://lastz.github.io/lastz" homepage = "https://lastz.github.io/lastz"
url = "https://github.com/lastz/lastz/archive/1.04.00.tar.gz" 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.03', sha256='c58ed8e37c4b0e82492b3a2b3e12447a3c40286fb8358906d19f10b0a713e9f4')
version('1.04.00', sha256='a4c2c7a77430387e96dbc9f5bdc75874334c672be90f5720956c0f211abf9f5a') version('1.04.00', sha256='a4c2c7a77430387e96dbc9f5bdc75874334c672be90f5720956c0f211abf9f5a')