Skip to content
Open
Show file tree
Hide file tree
Changes from all 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-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'
94 changes: 94 additions & 0 deletions easybuild/easyconfigs/m/ModPipe/ModPipe-2.3.1-foss-2025b.eb
Original file line number Diff line number Diff line change
@@ -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
'5d50805f40436dcdec879b088bf5654b288c9a7d593b74df70792e46acfd903f', # 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'
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
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,6 @@
echo
echo "License key, obtained from our academic license server at"
printf "https://salilab.org/modeller/registration.html: "
-read KEY_MODELLER


echo
@@ -118,7 +111,6 @@
echo "If they are incorrect, abort installation (ctrl-c) and run Install again."
echo
printf "Press <Enter> to begin the installation: "
-read ans
echo
echo "------------------------------------------------------------------------"
echo
@@ -153,7 +145,6 @@
echo "license = '${KEY_MODELLER}'" >> ${config}
echo "Installation complete."
printf "Press <Enter> to continue: "
-read ans

echo
echo "------------------------------------------------------------------------"
@@ -180,7 +171,6 @@
echo "------------------------------------------------------------------------"
echo
printf "Press <Enter> to continue: "
-read ans

echo
echo "------------------------------------------------------------------------"