Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
##
# This file is an EasyBuild recipy as per https://github.com/easybuilders/easybuild
#
# Copyright:: Copyright 2012-2014 Uni.Lu/LCSB, NTUA
# Authors:: Fotis Georgatos <[email protected]>
# License:: MIT/GPL
# $Id$
#
# This work implements a part of the HPCBIOS project and is a component of the policy:
# https://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-94.html
##
# Contribution from the NIHR Biomedical Research Centre
# Guy's and St Thomas' NHS Foundation Trust and King's College London
# uploaded by J. Sassmannshausen

easyblock = 'CMakeMake'

name = 'HH-suite'
version = '3.3.0-2025-08-12'
local_commit = '43095e4'

homepage = 'https://github.com/soedinglab/hh-suite'
description = """The HH-suite is an open-source software package
for sensitive protein sequence searching based on the pairwise
alignment of hidden Markov models (HMMs)."""

toolchain = {'name': 'gompi', 'version': '2025b'}

source_urls = ['https://github.com/soedinglab/hh-suite/archive/']
sources = [{
'download_filename': f'{local_commit}.tar.gz',
'filename': f'%(name)s-%(version)s-{local_commit}.tar.gz',
}]
checksums = ['d9145fe93d1e6d35ebad9604998356406fdfd91239d949b19a5e60bc641d04d0']

builddependencies = [
('CMake', '4.0.3'),
]

dependencies = [
('Perl', '5.40.2'),
('Python', '3.13.5'),
]

# fix cmake policy version - CMAKE v4 is not compatible with versions < v3.5
configopts = '-DCMAKE_POLICY_VERSION_MINIMUM=3.5'

# ModPipe is looking for scripts in lib/hh dir
postinstallcmds = ["mkdir -p %(installdir)s/lib/hh && ln -s %(installdir)s/scripts %(installdir)s/lib/hh/scripts"]

_binaries_help = [
'cstranslate', 'cstranslate_mpi', 'hhalign', 'hhalign_mpi', 'hhalign_omp', 'hhconsensus',
'hhfilter', 'hhmake'
]

_binaries_h = [
'a3m_database_extract', 'a3m_database_filter', 'a3m_database_reduce', 'a3m_extract', 'a3m_reduce',
'hhblits', 'hhblits_ca3m', 'hhblits_mpi', 'hhblits_omp', 'hhsearch', 'hhsearch_mpi', 'hhsearch_omp'
]

_binaries_version = ['ffindex_build', 'ffindex_from_fasta', 'ffindex_modify']

_binaries_v = ['ffindex_from_fasta_with_split']

_binaries_helpless = [
'ffindex_apply', 'ffindex_apply_mpi', 'ffindex_get',
'ffindex_order', 'ffindex_reduce', 'ffindex_unpack'
]

_scriptfiles = ['hhmakemodel.py', 'hh_reader.py', 'hhsuitedb.py', 'cif2fasta.py']

fix_perl_shebang_for = ['scripts/*pl']

sanity_check_paths = {
'files': ['bin/%s' % x for x in _binaries_help] +
['bin/%s' % x for x in _binaries_h] +
['bin/%s' % x for x in _binaries_version] +
['bin/%s' % x for x in _binaries_v] +
['bin/%s' % x for x in _binaries_helpless] +
['scripts/%s' % y for y in _scriptfiles],
'dirs': ['data', 'scripts', 'lib/hh']
}

sanity_check_commands = ['%s --help' % x for x in _binaries_help]
sanity_check_commands += ['%s -h' % x for x in _binaries_h]
sanity_check_commands += ['%s --version' % x for x in _binaries_version]
sanity_check_commands += ['%s -v' % x for x in _binaries_v]
sanity_check_commands += ['%s 2>&1 | grep USAGE' % x for x in _binaries_helpless]

modextrapaths = {
'PATH': 'scripts',
'PERL5LIB': 'scripts',
}

modextravars = {
'HHLIB': '%(installdir)s',
}

moduleclass = 'bio'
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
easyblock = 'PythonPackage'

name = 'ModPipe'
version = '2.3.1'
versionsuffix = '-Linux_x86_64'
_modeller_version = '10.7'

homepage = 'https://salilab.org/modpipe'
description = """
ModPipe is a completely automated software pipeline that can calculate protein structure models for a large number
of sequences with almost no manual intervention. In the simplest case, it takes as input a sequence identifier and
a configuration file and produces one or more comparative models for that sequence.
"""

toolchain = {'name': 'foss', 'version': '2025b'}

source_urls = ['https://salilab.org/modpipe/']
sources = [
SOURCELOWER_TAR_GZ,
{
'source_urls': [f'https://salilab.org/modeller/{_modeller_version}/'],
'filename': f'modeller-{_modeller_version}.tar.gz',
},
]
checksums = [
{'modpipe-2.3.1.tar.gz': 'a006f436305d5f582f9ce461c73f8f02e1eb6fd416705276373697715209a4a6'},
{'modeller-10.7.tar.gz': 'b81ffee26841ef96470341889fa4af560f968cf35ef990d95480c7eb7a5b5c8f'},
]

dependencies = [
('Perl', '5.40.2'),
('Python', '3.13.5'),
('GLib', '2.85.3'),
('BLAST', '2.2.26', versionsuffix, SYSTEM),
('HH-suite', '3.3.0-2025-08-12'),
('PyYAML', '6.0.2'),
]

# Install Modeller-10.7 into the builddir of ModPipe - replace interactive install script
# export MODELLER_LICENSE_KEY=your license key or this will fail
_modeller_exe_version = '10v7'
_modeller_installdir = '%(builddir)s/%(namelower)s-%(version)s/ext/mod'
_modeller_builddir = f'%(builddir)s/modeller-{_modeller_version}'
_cfg = f'{_modeller_installdir}/modlib/modeller/config.py'
_modeller_install_cmds = (
f"mkdir -p {_modeller_installdir}/bin {_modeller_installdir}/lib && "
f"cd {_modeller_builddir} && cp -a README INSTALLATION doc examples modlib src {_modeller_installdir} && "
f"cd {_modeller_builddir}/bin && "
f"cp -a *.top lib mod{_modeller_version}_%(arch)s-intel8 {_modeller_installdir }/bin && "
f"cd {_modeller_builddir}/lib && cp -a %(arch)s-intel8 {_modeller_installdir}/lib && "
f"sed -e 's/EXECUTABLE_TYPE{_modeller_exe_version}=xxx/EXECUTABLE_TYPE{_modeller_exe_version}=%(arch)s-intel8/' "
rf"-e 's|MODINSTALL{_modeller_exe_version}=xxx|MODINSTALL{_modeller_exe_version}=\"{_modeller_installdir}\"|' "
f'{_modeller_builddir}/bin/modscript > {_modeller_installdir}/bin/mod{_modeller_version} && '
rf"sed -e 's|@TOPDIR@|\"{_modeller_installdir}\"|' -e 's/@EXETYPE@/%(arch)s-intel8/' "
f'{_modeller_builddir}/bin/modpy.sh.in > {_modeller_installdir}/bin/modpy.sh && '
f'chmod a+x {_modeller_installdir}/bin/mod{_modeller_version} {_modeller_installdir}/bin/modpy.sh && '
f'printf "%s\\n" "install_dir = \'{_modeller_installdir}\'" >> "{_cfg}" && '
"""printf "%s\\n" "license = __import__('os').getenv('MODELLER_LICENSE_KEY', """
f"""'set MODELLER_LICENSE_KEY with your license key.')" > "{_cfg}" && """
f'cp %(builddir)s/%(namelower)s-%(version)s/ext/guess-arch.sh {_modeller_installdir}/bin/guess-arch.sh && '
"cd %(start_dir)s && "
)

# install by 'python setup.py'
use_pip = False

# the paths in scripts are changed during the python setup.py based on cwd
buildininstalldir = True

skipsteps = ['install']
prebuildopts = _modeller_install_cmds
# fix path of HHPaths.pm from HH-suite
prebuildopts += (
"sed -i 's|lib/hh/scripts/HHPaths.pm|scripts/HHPaths.pm|' %(builddir)s/%(namelower)s-%(version)s/setup.py && "
)
buildcmd = '--with-blast=$EBROOTBLAST/bin --with-hhsuite=$EBROOTHHMINSUITE'

# clean installdir
postinstallcmds = [f"rm -r %(builddir)s/modeller-{_modeller_version}"]

fix_perl_shebang_for = ['*.pl']
fix_python_shebang_for = ['*.py']

sanity_check_paths = {
'files': ['%(namelower)s-%(version)s/bin/%(namelower)s'],
'dirs': ['%(namelower)s-%(version)s/bin', '%(namelower)s-%(version)s/lib'],
}

sanity_check_commands = ['%(namelower)s help']

modextrapaths = {
'PATH': '%(namelower)s-%(version)s/bin',
'PERL5LIB': '%(namelower)s-%(version)s/lib/perl',
'PYTHONPATH': '%(namelower)s-%(version)s/lib/python'
}

moduleclass = 'tools'