diff --git a/easybuild/easyconfigs/d/DeepLabCut/DeepLabCut-2.2.1.1-foss-2021b.eb b/easybuild/easyconfigs/d/DeepLabCut/DeepLabCut-2.2.1.1-foss-2021b.eb new file mode 100644 index 000000000000..bef520634a7c --- /dev/null +++ b/easybuild/easyconfigs/d/DeepLabCut/DeepLabCut-2.2.1.1-foss-2021b.eb @@ -0,0 +1,76 @@ +# Loosely based on PR #7680 +# J. Sassmannshausen (Imperial College London/UK) + +easyblock = 'PythonBundle' + +name = 'DeepLabCut' +version = '2.2.1.1' +local_version = '%(versionsuffix)s-contrib' + +homepage = 'http://www.mousemotorlab.org/deeplabcut' +description = "Markerless tracking of user-defined features with deep learning" + +toolchain = {'name': 'foss', 'version': '2021b'} +toolchainopts = {'pic': True} + +dependencies = [ + ('Python', '3.9.6'), + ('h5py', '3.6.0'), + ('IPython', '7.26.0'), + ('scikit-learn', '1.0.1'), + ('scikit-image', '0.19.1'), + ('TensorFlow', '2.7.1'), + ('PyYAML', '5.4.1'), + ('wxPython', '4.2.0'), + ('OpenCV', '4.5.5', '-contrib'), + ('numba', '0.54.1'), + ('libyaml', '0.2.5'), + ('imgaug', '0.4.0'), + ('tqdm', '4.62.3'), + ('ruamel.yaml', '0.17.21'), + ('statsmodels', '0.13.1'), + ('PyTorch', '1.12.1'), + ('MoviePy', '1.0.3'), + ('SciPy-bundle', '2021.10'), + ('HDF5', '1.12.1'), + ('LZO', '2.10'), + ('Blosc', '1.21.1'), +] + +sanity_pip_check = True +use_pip = True + +exts_list = [ + ('filterpy', '1.4.5', { + 'sources': ['%(name)s-%(version)s.zip'], + 'checksums': ['4f2a4d39e4ea601b9ab42b2db08b5918a9538c168cff1c6895ae26646f3d73b1'], + }), + ('tensorpack', '0.11', { + 'checksums': ['022b610e416e62e3575424cd08e60af27808a5fb6914294615391caf582cbd4f'], + }), + ('tf_slim', '1.1.0', { + 'source_urls': ['https://github.com/google-research/tf-slim/archive'], + 'sources': ['v%(version)s.tar.gz'], + 'checksums': ['964cde4b7728a408dcd5c841ab6b93d95137ab4b60db28b10400f86286bfeb8b'], + }), + ('msgpack-numpy', '0.4.8', { + 'checksums': ['c667d3180513422f9c7545be5eec5d296dcbb357e06f72ed39cc683797556e69'], + 'sources': ['msgpack-numpy-0.4.8.tar.gz'], + }), + # requires PyTables >= 3.7.0 + ('PyTables', '3.7.0', { + 'source_urls': ['https://github.com/PyTables/PyTables/archive/'], + 'sources': ['v%(version)s.tar.gz'], + 'patches': ['%(name)s-%(version)s-fix-libs.patch'], + 'checksums': ['41065fc11b958dde09bd5b9c069d88e40ca07ad10687dd597835fcc8199e81ea', + # PyTables-3.7.0-fix-libs.patch: + '022c26960b8401f3693974f57be49832b72ee1f3a0a92f8e0dd9281c7c0e2c8c'], + 'modulename': 'tables', + }), + (name, version, { + 'source_tmpl': '%(namelower)s-%(version)s.tar.gz', + 'checksums': ['3acabab6c80c075d9b8570568840637062545092c97ba67c8e31858203aaf886'], + }), +] + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/d/DeepLabCut/PyTables-3.7.0-fix-libs.patch b/easybuild/easyconfigs/d/DeepLabCut/PyTables-3.7.0-fix-libs.patch new file mode 100644 index 000000000000..323c993a5f98 --- /dev/null +++ b/easybuild/easyconfigs/d/DeepLabCut/PyTables-3.7.0-fix-libs.patch @@ -0,0 +1,19 @@ +# pyTables expects that LIBS is a list of library names and will add +# a -l by itself. +# original patch by ward.poelmans@ugent.be, ported to PyTables 3.5.2 by Kenneth Hoste (HPC-UGent) +# updated to 3.7.0 by J. Sassmannshausen (Imperial College London/UK) +diff --git a/PyTables-3.7.0.orig/setup.py b/PyTables-3.7.0/setup.py +index ab8f8e3..5804ca3 100755 +--- a/PyTables-3.7.0.orig/setup.py ++++ b/PyTables-3.7.0/setup.py +@@ -526,6 +526,10 @@ if __name__ == "__main__": + # is not a good idea. + CFLAGS = os.environ.get("CFLAGS", "").split() + LIBS = os.environ.get("LIBS", "").split() ++ for idx, lib in enumerate(LIBS): ++ if lib.startswith("-l"): ++ LIBS[idx] = lib.replace("-l", "") ++ + CONDA_PREFIX = os.environ.get("CONDA_PREFIX", "") + # We start using pkg-config since some distributions are putting HDF5 + # (and possibly other libraries) in exotic locations. See issue #442.