From 1172d644dac2263e599f152c7415699a1da6c5ef Mon Sep 17 00:00:00 2001 From: Adam Huffman <12435+verdurin@users.noreply.github.com> Date: Tue, 23 Apr 2024 09:18:36 +0000 Subject: [PATCH 1/2] adding easyconfigs: Gubbins-3.3.5-foss-2022b.eb, rapidNJ-2.3.3-GCCcore-12.2.0.eb, FastTree-2.1.11-GCCcore-12.2.0.eb, multiprocess-0.70.15-gfbf-2022b.eb, Autoconf-archive-2023.02.20-GCCcore-12.2.0.eb --- ...oconf-archive-2023.02.20-GCCcore-12.2.0.eb | 53 +++++++++++++++ .../FastTree-2.1.11-GCCcore-12.2.0.eb | 42 ++++++++++++ .../g/Gubbins/Gubbins-3.3.5-foss-2022b.eb | 64 +++++++++++++++++++ .../multiprocess-0.70.15-gfbf-2022b.eb | 24 +++++++ .../r/rapidNJ/rapidNJ-2.3.3-GCCcore-12.2.0.eb | 41 ++++++++++++ 5 files changed, 224 insertions(+) create mode 100644 easybuild/easyconfigs/a/Autoconf-archive/Autoconf-archive-2023.02.20-GCCcore-12.2.0.eb create mode 100644 easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-12.2.0.eb create mode 100644 easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb create mode 100644 easybuild/easyconfigs/m/multiprocess/multiprocess-0.70.15-gfbf-2022b.eb create mode 100644 easybuild/easyconfigs/r/rapidNJ/rapidNJ-2.3.3-GCCcore-12.2.0.eb diff --git a/easybuild/easyconfigs/a/Autoconf-archive/Autoconf-archive-2023.02.20-GCCcore-12.2.0.eb b/easybuild/easyconfigs/a/Autoconf-archive/Autoconf-archive-2023.02.20-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..73e0608725b --- /dev/null +++ b/easybuild/easyconfigs/a/Autoconf-archive/Autoconf-archive-2023.02.20-GCCcore-12.2.0.eb @@ -0,0 +1,53 @@ +## +# This is a contribution from DeepThought HPC Service, Flinders University, Adelaide, Australia +# Homepage: https://staff.flinders.edu.au/research/deep-thought +# +# Authors:: Robert Qiao +# License:: GNU Free Documentation License +# +# Notes:: +## + +easyblock = 'ConfigureMake' + +name = 'Autoconf-archive' +version = '2023.02.20' + +homepage = "https://www.gnu.org/software/autoconf-archive" + +description = """ +The GNU Autoconf Archive is a collection of more than 500 macros for GNU Autoconf +that have been contributed as free software by friendly supporters of the cause from +all over the Internet. Every single one of those macros can be re-used without +imposing any restrictions whatsoever on the licensing of the generated configure script. +In particular, it is possible to use all those macros in configure scripts that +are meant for non-free software. This policy is unusual for a Free Software Foundation +project. The FSF firmly believes that software ought to be free, and software licenses +like the GPL are specifically designed to ensure that derivative work based on free +software must be free as well. In case of Autoconf, however, an exception has been made, +because Autoconf is at such a pivotal position in the software development tool chain +that the benefits from having this tool available as widely as possible outweigh the +disadvantage that some authors may choose to use it, too, for proprietary software. +""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = [GNU_SOURCE] +sources = [SOURCELOWER_TAR_XZ] +checksums = ['71d4048479ae28f1f5794619c3d72df9c01df49b1c628ef85fde37596dc31a33'] + +builddependencies = [ + ('binutils', '2.39'), + ('Autotools', '20220317'), + ('makeinfo', '7.0.3'), +] + +preconfigopts = 'autoreconf -i -f &&' + +sanity_check_paths = { + 'files': [], + 'dirs': ['share/%s' % x for x in + ['aclocal', 'doc', 'info']], +} + +moduleclass = 'devel' diff --git a/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-12.2.0.eb b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..abb4f293128 --- /dev/null +++ b/easybuild/easyconfigs/f/FastTree/FastTree-2.1.11-GCCcore-12.2.0.eb @@ -0,0 +1,42 @@ +# Updated from previous config +# Author: Pavel Grochal (INUITS) +# License: GPLv2 + +easyblock = 'CmdCp' + +name = 'FastTree' +version = '2.1.11' + +homepage = 'http://www.microbesonline.org/fasttree/' +description = """FastTree infers approximately-maximum-likelihood phylogenetic trees from alignments of nucleotide + or protein sequences. FastTree can handle alignments with up to a million of sequences in a reasonable amount of + time and memory. """ + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} +toolchainopts = {'openmp': True} + +# HTTPS cert error: +# hostname 'www.microbesonline.org' doesn't match either of 'genomics.lbl.gov', 'mojave.qb3.berkeley.edu', ... +source_urls = ['http://www.microbesonline.org/fasttree/'] +sources = [{'filename': '%(name)s-%(version)s.c', 'extract_cmd': 'cp %s FastTree.c'}] +checksums = ['9026ae550307374be92913d3098f8d44187d30bea07902b9dcbfb123eaa2050f'] + +builddependencies = [('binutils', '2.39')] + +cmds_map = [('%(name)s-%(version)s.c', '$CC -DOPENMP $CFLAGS $LIBS %%(source)s -o %(name)s')] + +files_to_copy = [(['FastTree'], 'bin')] + +# as FastTree is built with OpenMP, the correct binary is FastTreeMP +# the FastTree binary should normally be built without OpenMP, but let’s keep it as is for backward compatibility +# see http://www.microbesonline.org/fasttree/#OpenMP +postinstallcmds = ['cd %(installdir)s/bin && ln -s FastTree FastTreeMP'] + +sanity_check_paths = { + 'files': ['bin/FastTree'], + 'dirs': [], +} + +sanity_check_commands = ['FastTree 2>&1 | grep "FastTree Version %(version)s"'] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb b/easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb new file mode 100644 index 00000000000..1a19d74c757 --- /dev/null +++ b/easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb @@ -0,0 +1,64 @@ +# This easyconfig was created by the BEAR Software team at the University of Birmingham. +easyblock = 'ConfigureMake' + +name = 'Gubbins' +version = '3.3.5' + +homepage = "https://nickjcroucher.github.io/gubbins/" +description = """Gubbins (Genealogies Unbiased By recomBinations In Nucleotide Sequences) is an algorithm that + iteratively identifies loci containing elevated densities of base substitutions, which are marked as recombinations, + while concurrently constructing a phylogeny based on the putative point mutations outside of these regions. + Simulations demonstrate the algorithm generates highly accurate reconstructions under realistic models of short-term + bacterial evolution, and can be run in only a few hours on alignments of hundreds of bacterial genome sequences.""" + +toolchain = {'name': 'foss', 'version': '2022b'} + +source_urls = ['https://github.com/nickjcroucher/gubbins/archive/refs/tags/'] +sources = ['v%(version)s.tar.gz'] + +builddependencies = [ + ('Autotools', '20220317'), + ('Autoconf-archive', '2023.02.20'), + ('pkgconf', '1.9.3'), + ('Check', '0.15.2'), + ('subunit', '1.4.3'), +] + +dependencies = [ + ('Python', '3.10.8'), + ('Biopython', '1.81'), + ('DendroPy', '4.5.2'), + ('numba', '0.58.1'), + ('SciPy-bundle', '2023.02'), + ('FastTree', '2.1.11'), + ('IQ-TREE', '2.2.2.6'), + ('rapidNJ', '2.3.3'), + ('RAxML', '8.2.12', '-avx2'), + ('RAxML-NG', '1.2.0'), + ('SKA2', '0.3.7'), + ('dill', '0.3.7'), + ('multiprocess', '0.70.15'), +] + +preconfigopts = "autoreconf -i && " +# runtest = 'check' # runs the Python tests and this causes package to be installed into the Python install +postinstallcmds = [ + """sed -i 's/self.executable = "iqtree"/self.executable = "iqtree2"/' python/gubbins/treebuilders.py""", + "cd python && python -m pip install --prefix %(installdir)s --no-build-isolation . " +] + +modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'} + +sanity_check_paths = { + 'files': ['bin/gubbins', 'lib/libgubbins.%s' % SHLIB_EXT], + 'dirs': [], +} + +sanity_check_commands = [ + "gubbins --help", + "run_gubbins.py --version", + 'python -c "import gubbins"', + 'python -m pip check', +] + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/m/multiprocess/multiprocess-0.70.15-gfbf-2022b.eb b/easybuild/easyconfigs/m/multiprocess/multiprocess-0.70.15-gfbf-2022b.eb new file mode 100644 index 00000000000..2bac0d9bfe6 --- /dev/null +++ b/easybuild/easyconfigs/m/multiprocess/multiprocess-0.70.15-gfbf-2022b.eb @@ -0,0 +1,24 @@ +easyblock = 'PythonPackage' + +name = 'multiprocess' +version = '0.70.15' + +homepage = 'https://github.com/uqfoundation/multiprocess' +description = "better multiprocessing and multithreading in python" + +toolchain = {'name': 'gfbf', 'version': '2022b'} + +sources = [SOURCE_TAR_GZ] +checksums = ['f20eed3036c0ef477b07a4177cf7c1ba520d9a2677870a4f47fe026f0cd6787e'] + +dependencies = [ + ('Python', '3.10.8'), + ('dill', '0.3.7'), + ('Arrow', '11.0.0'), # if needed rebuild --from-pr 19758 +] + +download_dep_fail = True +use_pip = True +sanity_pip_check = True + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/r/rapidNJ/rapidNJ-2.3.3-GCCcore-12.2.0.eb b/easybuild/easyconfigs/r/rapidNJ/rapidNJ-2.3.3-GCCcore-12.2.0.eb new file mode 100644 index 00000000000..b6fc9da5925 --- /dev/null +++ b/easybuild/easyconfigs/r/rapidNJ/rapidNJ-2.3.3-GCCcore-12.2.0.eb @@ -0,0 +1,41 @@ +# This seems to be actively maintained version of the code by the looks of it. +# See issue #5 +# https://github.com/somme89/rapidNJ/issues/5 +# why -march=native will not be used +# Author: J. Sassmannshausen (Imperial College London/UK) + +easyblock = 'MakeCp' + +name = 'rapidNJ' +version = '2.3.3' + +homepage = 'https://github.com/somme89/rapidNJ' +description = """RapidNJ is an algorithmic engineered implementation of canonical +neighbour-joining. It uses an efficient search heuristic to speed-up the core +computations of the neighbour-joining method that enables RapidNJ to +outperform other state-of-the-art neighbour-joining implementations.""" + +citing = """Rapid Neighbour Joining. Martin Simonsen, Thomas Mailund and Christian N. S. Pedersen. +In: Proceedings of the 8th Workshop in Algorithms in Bioinformatics (WABI), LNBI 5251, 113-122, +Springer Verlag, October 2008. +doi: 10.1007/978-3-540-87361-7_10""" + +toolchain = {'name': 'GCCcore', 'version': '12.2.0'} + +source_urls = ['https://github.com/somme89/rapidNJ/archive/'] +sources = [{'filename': 'v%(version)s.tar.gz', 'download_filename': 'latest.tar.gz'}] +checksums = ['662f864cc3e5bc68aea23129f02e0062cac9ebd37e414b54c5c5e616ff4f245d'] + +builddependencies = [('binutils', '2.39')] + +files_to_copy = [(['bin/rapidnj'], 'bin')] + +# That is returning 1 instead of 0, so disabled for now +# sanity_check_commands = ['rapidnj --help'] + +sanity_check_paths = { + 'files': ['bin/rapidnj'], + 'dirs': [], +} + +moduleclass = 'bio' From 369de49e4d12555ad23072a357835ef265b676e6 Mon Sep 17 00:00:00 2001 From: Adam Huffman <12435+verdurin@users.noreply.github.com> Date: Thu, 11 Jul 2024 11:03:23 +0000 Subject: [PATCH 2/2] Add checksum --- easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb | 1 + 1 file changed, 1 insertion(+) diff --git a/easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb b/easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb index 1a19d74c757..57a08aeb182 100644 --- a/easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb +++ b/easybuild/easyconfigs/g/Gubbins/Gubbins-3.3.5-foss-2022b.eb @@ -15,6 +15,7 @@ toolchain = {'name': 'foss', 'version': '2022b'} source_urls = ['https://github.com/nickjcroucher/gubbins/archive/refs/tags/'] sources = ['v%(version)s.tar.gz'] +checksums = ['4ee363f82708bdda0c00d1c6c334cf20127bd852ee488619f61140771a279774'] builddependencies = [ ('Autotools', '20220317'),