diff --git a/easybuild/easyconfigs/h/HH-suite/HH-suite-3.3.0-20250812-gompi-2025b.eb b/easybuild/easyconfigs/h/HH-suite/HH-suite-3.3.0-20250812-gompi-2025b.eb new file mode 100644 index 000000000000..0cbcd79a32ba --- /dev/null +++ b/easybuild/easyconfigs/h/HH-suite/HH-suite-3.3.0-20250812-gompi-2025b.eb @@ -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 +# 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-20250812' +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' + +# some software that requires HH-suite (like ModPipe) looks for script in lib/hh/scripts +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' diff --git a/easybuild/easyconfigs/m/ModPipe/ModPipe-2.3.1-foss-2025b.eb b/easybuild/easyconfigs/m/ModPipe/ModPipe-2.3.1-foss-2025b.eb new file mode 100644 index 000000000000..0c03dac2fd46 --- /dev/null +++ b/easybuild/easyconfigs/m/ModPipe/ModPipe-2.3.1-foss-2025b.eb @@ -0,0 +1,94 @@ +easyblock = 'Bundle' + +name = 'ModPipe' +version = '2.3.1' +_modeller_version = '10.7' +_blast_version = '2.2.26' + +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'} + +build_info_msg = """ +Set $KEY_MODELLER environment variable to the Modeller key before running the +installer. The key can be obtained from the Modeller website: +https://salilab.org/modeller/registration.html +""" + +dependencies = [ + ('Perl', '5.40.2'), + ('Python', '3.13.5'), + ('GLib', '2.85.3'), + ('HH-suite', '3.3.0-20250812'), + ('PyYAML', '6.0.2'), +] + +# fix path of HHPaths.pm from HH-suite +_mp_prebuildopts = ( + "sed -i 's|lib/hh/scripts/HHPaths.pm|scripts/HHPaths.pm|' %(builddir)s/%(namelower)s-%(version)s/setup.py && " +) + +# run Install script to install Modeller into ModPipe +# https://salilab.org/modpipe/doc/install-ext.html#modeller +_modeller_install_cmd = 'cd %(builddir)s/%(namelower)s-%(version)s && ' +_modeller_install_cmd += f'MODINSTALL=%(builddir)s/modpipe-{version}/ext/mod ./Install' + +components = [ + ('BLAST', _blast_version, { + 'easyblock': 'Tarball', + # buildininstalldir - no need to install + 'skipsteps': ['install'], + 'source_urls': ['https://ftp.ncbi.nlm.nih.gov/blast/executables/legacy.NOTSUPPORTED/%(version)s/'], + 'sources': ['%(namelower)s-%(version)s-x64-linux.tar.gz'], + 'checksums': ['8a2f986cf47f0f7cbdb3478c4fc7e25c7198941d2262264d0b6b86194b3d063d'], + }), + ('Modeller', _modeller_version, { + 'easyblock': 'Binary', + 'source_urls': [f'https://salilab.org/modeller/{_modeller_version}/'], + 'sources': [f'modeller-{_modeller_version}.tar.gz'], + 'patches': ['Modeller-10.7_install-to-modpipe.patch'], + 'install_cmd': _modeller_install_cmd, + 'checksums': [ + 'b81ffee26841ef96470341889fa4af560f968cf35ef990d95480c7eb7a5b5c8f', # modeller-10.7.tar.gz + '9d9ff4e6b6b51114d473aa586771fb14ffa4ef66e8429d15042263bbcb1e08d9', # install-to-modpipe.patch + ], + }), + (name, version, { + 'easyblock': 'PythonPackage', + 'source_urls': ['https://salilab.org/modpipe/'], + 'sources': [SOURCELOWER_TAR_GZ], + 'start_dir': '%(namelower)s-%(version)s', + # install by 'python setup.py --with-blast=... --with-hhsuite=...' + 'use_pip': False, + 'skipsteps': ['install'], + 'prebuildopts': _mp_prebuildopts, + 'buildcmd': f'--with-blast=%(installdir)s/blast-{_blast_version}/bin --with-hhsuite=$EBROOTHHMINSUITE', + 'checksums': ['a006f436305d5f582f9ce461c73f8f02e1eb6fd416705276373697715209a4a6'], + }) +] + +# paths in scripts are changed during the installation based on cwd +buildininstalldir = True + +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' diff --git a/easybuild/easyconfigs/m/ModPipe/Modeller-10.7_install-to-modpipe.patch b/easybuild/easyconfigs/m/ModPipe/Modeller-10.7_install-to-modpipe.patch new file mode 100644 index 000000000000..f4c0a83b72a4 --- /dev/null +++ b/easybuild/easyconfigs/m/ModPipe/Modeller-10.7_install-to-modpipe.patch @@ -0,0 +1,68 @@ +Change Install script to run noninteractively using environment variables + install Modeller to ModPipe +Author: Samuel Moors (Vrije Universiteit Brussel) +Update for ModPipe: Pavel Tomanek (Inuits) + +--- modeller-10.7/Install.orig 2025-09-04 15:20:51.390000000 +0200 ++++ modeller-10.7/Install 2025-09-17 13:59:29.814302000 +0200 +@@ -71,11 +71,8 @@ + echo ' 5) Linux on 64-bit ARM (e.g. for Raspberry Pi 3 or later).' + echo + printf "Select the type of your computer from the list above [$DEFexectype]: " +-read ans +-if [ x$ans != x ] ; then +- exectype=$ans +-else +- exectype=$DEFexectype ++if [[ -z $exectype ]]; then ++ exectype=$DEFexectype + fi + if [ $exectype = 1 ] ; then EXECUTABLE_TYPE=$exectype1 ; fi + if [ $exectype = 2 ] ; then EXECUTABLE_TYPE=$exectype2 ; fi +@@ -88,10 +85,7 @@ + echo + echo "Full directory name in which to install $MOD" + printf "[$DEFmodinstall]: " +-read ans +-if [ x$ans != x ] ; then +- MODINSTALL=$ans +-else ++if [[ -z $MODINSTALL ]]; then + MODINSTALL=$DEFmodinstall + fi + if [ ! -d $MODINSTALL ] ; then +@@ -103,7 +97,10 @@ + echo + echo "License key, obtained from our academic license server at" + printf "https://salilab.org/modeller/registration.html: " +-read KEY_MODELLER ++if [ -z "${KEY_MODELLER}" ]; then ++ echo 'ERROR: $KEY_MODELLER environment variable not set, should provide Modeller license key' >&2 ++ exit 1 ++fi + + + echo +@@ -118,7 +115,6 @@ + echo "If they are incorrect, abort installation (ctrl-c) and run Install again." + echo + printf "Press to begin the installation: " +-read ans + echo + echo "------------------------------------------------------------------------" + echo +@@ -153,7 +149,6 @@ + echo "license = '${KEY_MODELLER}'" >> ${config} + echo "Installation complete." + printf "Press to continue: " +-read ans + + echo + echo "------------------------------------------------------------------------" +@@ -180,7 +175,6 @@ + echo "------------------------------------------------------------------------" + echo + printf "Press to continue: " +-read ans + + echo + echo "------------------------------------------------------------------------" \ No newline at end of file