From 774b0b1f5fd67b6b4c97338e628ae14b02e0c83b Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 14 Aug 2020 12:40:09 +0200 Subject: [PATCH 1/2] {data}[intel/2020a] pySCENIC v0.10.3, dask v2.18.1, scikit-learn v0.23.1, bokeh v2.0.2 w/ Python 3.8.2 --- .../bokeh-2.0.2-intel-2020a-Python-3.8.2.eb | 43 +++++++++ .../dask-2.18.1-intel-2020a-Python-3.8.2.eb | 82 +++++++++++++++++ ...ySCENIC-0.10.3-intel-2020a-Python-3.8.2.eb | 87 +++++++++++++++++++ ...NIC-0.10.3_fix-pyarrow-FeatherReader.patch | 17 ++++ ...t-learn-0.23.1-intel-2020a-Python-3.8.2.eb | 46 ++++++++++ 5 files changed, 275 insertions(+) create mode 100644 easybuild/easyconfigs/b/bokeh/bokeh-2.0.2-intel-2020a-Python-3.8.2.eb create mode 100644 easybuild/easyconfigs/d/dask/dask-2.18.1-intel-2020a-Python-3.8.2.eb create mode 100644 easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.10.3-intel-2020a-Python-3.8.2.eb create mode 100644 easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.10.3_fix-pyarrow-FeatherReader.patch create mode 100644 easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.23.1-intel-2020a-Python-3.8.2.eb diff --git a/easybuild/easyconfigs/b/bokeh/bokeh-2.0.2-intel-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/b/bokeh/bokeh-2.0.2-intel-2020a-Python-3.8.2.eb new file mode 100644 index 000000000000..d0dec501a2ca --- /dev/null +++ b/easybuild/easyconfigs/b/bokeh/bokeh-2.0.2-intel-2020a-Python-3.8.2.eb @@ -0,0 +1,43 @@ +easyblock = 'PythonBundle' + +name = 'bokeh' +version = '2.0.2' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/bokeh/bokeh' +description = "Statistical and novel interactive HTML plots for Python" + +toolchain = {'name': 'intel', 'version': '2020a'} + +dependencies = [ + ('Python', '3.8.2'), + ('PyYAML', '5.3'), + ('Pillow', '7.0.0', versionsuffix), + ('SciPy-bundle', '2020.03', versionsuffix), +] + +use_pip = True + +exts_default_options = {'source_urls': [PYPI_SOURCE]} + +exts_list = [ + ('tornado', '6.0.4', { + 'checksums': ['0fe2d45ba43b00a41cd73f8be321a44936dc1aba233dee979f17a042b83eb6dc'], + }), + ('typing-extensions', '3.7.4.2', { + 'source_tmpl': 'typing_extensions-%(version)s.tar.gz', + 'checksums': ['79ee589a3caca649a9bfd2a8de4709837400dfa00b6cc81962a1e6a1815969ae'], + }), + (name, version, { + 'checksums': ['d9248bdb0156797abf6d04b5eac581dcb121f5d1db7acbc13282b0609314893a'], + }), +] + +sanity_check_paths = { + 'files': ['bin/bokeh'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_pip_check = True + +moduleclass = 'tools' diff --git a/easybuild/easyconfigs/d/dask/dask-2.18.1-intel-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/d/dask/dask-2.18.1-intel-2020a-Python-3.8.2.eb new file mode 100644 index 000000000000..0969954ac6b7 --- /dev/null +++ b/easybuild/easyconfigs/d/dask/dask-2.18.1-intel-2020a-Python-3.8.2.eb @@ -0,0 +1,82 @@ +easyblock = 'PythonBundle' + +name = 'dask' +version = '2.18.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://dask.org/' +description = """Dask natively scales Python. Dask provides advanced parallelism for analytics, enabling performance + at scale for the tools you love.""" + +toolchain = {'name': 'intel', 'version': '2020a'} + +dependencies = [ + ('Python', '3.8.2'), + ('PyYAML', '5.3'), + ('SciPy-bundle', '2020.03', versionsuffix), + ('bokeh', '2.0.2', versionsuffix), +] + +use_pip = True + +exts_default_options = {'source_urls': [PYPI_SOURCE]} + +exts_list = [ + ('fsspec', '0.7.4', { + 'checksums': ['7075fde6d617cd3a97eac633d230d868121a188a46d16a0dcb484eea0cf2b955'], + }), + ('toolz', '0.10.0', { + 'checksums': ['08fdd5ef7c96480ad11c12d472de21acd32359996f69a5259299b540feba4560'], + }), + ('locket', '0.2.0', { + 'checksums': ['1fee63c1153db602b50154684f5725564e63a0f6d09366a1cb13dffcec179fb4'], + }), + ('partd', '1.1.0', { + 'checksums': ['6e258bf0810701407ad1410d63d1a15cfd7b773fd9efe555dac6bb82cc8832b0'], + }), + ('HeapDict', '1.0.1', { + 'checksums': ['8495f57b3e03d8e46d5f1b2cc62ca881aca392fd5cc048dc0aa2e1a6d23ecdb6'], + }), + ('zict', '2.0.0', { + 'checksums': ['8e2969797627c8a663575c2fc6fcb53a05e37cdb83ee65f341fc6e0c3d0ced16'], + }), + ('tblib', '1.6.0', { + 'checksums': ['229bee3754cb5d98b4837dd5c4405e80cfab57cb9f93220410ad367f8b352344'], + }), + ('msgpack', '1.0.0', { + 'checksums': ['9534d5cc480d4aff720233411a1f765be90885750b07df772380b34c10ecb5c0'], + }), + ('cloudpickle', '1.4.1', { + 'checksums': ['0b6258a20a143603d53b037a20983016d4e978f554ec4f36b3d0895b947099ae'], + }), + (name, version, { + 'checksums': ['8ed21e2344419fad7c6f648123f6f56cf2480d0ac4fae92d9063adb321f1c490'], + }), + ('distributed', '2.18.0', { + 'checksums': ['902f098fb7558f035333804a5aeba2fb26a2a715388808205a17cbb2e02e0558'], + }), + ('dask-mpi', '2.0.0', { + 'checksums': ['774cd2d69e5f7154e1fa133c22498062edd31507ffa2ea19f4ab4d8975c27bc3'], + }), + ('immutables', '0.14', { + 'checksums': ['a0a1cc238b678455145bae291d8426f732f5255537ed6a5b7645949704c70a78'], + }), + ('contextvars', '2.4', { + 'checksums': ['f38c908aaa59c14335eeea12abea5f443646216c4e29380d7bf34d2018e2c39e'], + }), + ('docrep', '0.2.7', { + 'checksums': ['c48939ae14d79172839a5bbaf5a570add47f6cc44d2c18f6b1fac8f1c38dec4d'], + }), + ('dask-jobqueue', '0.7.1', { + 'checksums': ['d32ddf3e3c7db29ace102037fa5f61c8db2d945176454dc316a6ffdb8bbfe88b'], + }), +] + +sanity_check_paths = { + 'files': ['bin/dask-%s' % x for x in ['mpi', 'scheduler', 'ssh', 'worker']], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_pip_check = True + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.10.3-intel-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.10.3-intel-2020a-Python-3.8.2.eb new file mode 100644 index 000000000000..6134597bf464 --- /dev/null +++ b/easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.10.3-intel-2020a-Python-3.8.2.eb @@ -0,0 +1,87 @@ +easyblock = 'PythonBundle' + +name = 'pySCENIC' +version = '0.10.3' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://github.com/aertslab/pySCENIC' +description = """pySCENIC is a lightning-fast python implementation of the SCENIC +pipeline (Single-Cell rEgulatory Network Inference and Clustering) which enables +biologists to infer transcription factors, gene regulatory networks and +cell types from single-cell RNA-seq data.""" + +toolchain = {'name': 'intel', 'version': '2020a'} + +use_pip = True + +dependencies = [ + ('Python', '3.8.2'), + ('PyYAML', '5.3'), + ('numba', '0.50.0', versionsuffix), + ('Arrow', '0.17.1', versionsuffix), + ('scikit-learn', '0.23.1', versionsuffix), + ('tqdm', '4.47.0'), + ('networkx', '2.4', versionsuffix), + ('h5py', '2.10.0', versionsuffix), + ('dask', '2.18.1', versionsuffix), +] + +use_pip = True + +exts_default_options = {'source_urls': [PYPI_SOURCE]} + +exts_list = [ + ('cytoolz', '0.10.1', { + 'checksums': ['82f5bba81d73a5a6b06f2a3553ff9003d865952fcb32e1df192378dd944d8a5c'], + }), + ('dill', '0.3.2', { + 'source_tmpl': 'dill-%(version)s.zip', + 'checksums': ['6e12da0d8e49c220e8d6e97ee8882002e624f1160289ce85ec2cc0a5246b3a2e'], + }), + ('multiprocessing_on_dill', '3.5.0a4', { + 'checksums': ['d6d50c300ff4bd408bb71eb78725e60231039ee9b3d0d9bb7697b9d0e15045e7'], + }), + ('frozendict', '1.2', { + 'checksums': ['774179f22db2ef8a106e9c38d4d1f8503864603db08de2e33be5b778230f6e45'], + }), + ('arboreto', '0.1.5', { + 'checksums': ['a78c73b367eaae38dadeba150e52ac98aec6fc916df703ce61b79d27fe1015f9'], + }), + ('boltons', '20.2.0', { + 'checksums': ['d367506c0b32042bb1ee3bf7899f2dcc8492dceb42ce3727b89e174d85bffe6e'], + }), + ('interlap', '0.2.6', { + 'checksums': ['a8585a165bf7e94d4d262811b4cb00674059414c50afc7561c949b0feb78fa09'], + }), + ('umap-learn', '0.4.6', { + 'modulename': 'umap', + 'checksums': ['4276da9a039c79fa5b4f8d3515a8ccaaccf11a2f59ce8d15baf9d2015a5e82b3'], + }), + ('numpy_groupies', '0.9.10', { + 'checksums': ['a6835c252b7bd489e0f701f8bf5bc880c647ef251e3b434998b95a8aecc9b68a'], + }), + ('loompy', '3.0.6', { + 'checksums': ['58e9763b8ab1af2a4a0e3805d120458b5184fd2b0f3031657ecce33c63ca4c46'], + }), + ('pyscenic', version, { + 'patches': ['pySCENIC-%(version)s_fix-pyarrow-FeatherReader.patch'], + 'checksums': [ + '517c4fadf6198ba0202116f1c419d61c4d4491fc4099b611fbe738845fe4acc9', # pyscenic-0.10.3.tar.gz + # pySCENIC-0.10.3_fix-pyarrow-FeatherReader.patch + '022e69a384771a1389d176db699cc97f5a3c8ee43502a49f0335b82c1932e0e5', + ], + # strip out version restrictions for required Python packages + 'preinstallopts': "sed -i 's/[=>]=[0-9].*//g' requirements.txt && ", + }), +] + +sanity_check_paths = { + 'files': ['bin/pyscenic'], + 'dirs': ['lib/python%(pyshortver)s/site-packages'], +} + +sanity_check_commands = ["pyscenic --help"] + +sanity_pip_check = True + +moduleclass = 'bio' diff --git a/easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.10.3_fix-pyarrow-FeatherReader.patch b/easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.10.3_fix-pyarrow-FeatherReader.patch new file mode 100644 index 000000000000..0362c621f190 --- /dev/null +++ b/easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.10.3_fix-pyarrow-FeatherReader.patch @@ -0,0 +1,17 @@ +fix compatibilty with PyArrow 0.17.1, where FeatherReader was moved from pyarrow.feather to pyarrow.lib +author: Kenneth Hoste (HPC-UGent) +--- pyscenic-0.10.3/src/pyscenic/rnkdb.py.orig 2020-08-11 14:55:53.212511866 +0200 ++++ pyscenic-0.10.3/src/pyscenic/rnkdb.py 2020-08-11 14:56:02.932604710 +0200 +@@ -9,7 +9,11 @@ + from operator import itemgetter + from .genesig import GeneSignature + from cytoolz import memoize +-from pyarrow.feather import write_feather, FeatherReader ++from pyarrow.feather import write_feather ++try: ++ from pyarrow.feather import FeatherReader ++except ImportError: ++ from pyarrow.lib import FeatherReader + from tqdm import tqdm + + diff --git a/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.23.1-intel-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.23.1-intel-2020a-Python-3.8.2.eb new file mode 100644 index 000000000000..2eeae321c162 --- /dev/null +++ b/easybuild/easyconfigs/s/scikit-learn/scikit-learn-0.23.1-intel-2020a-Python-3.8.2.eb @@ -0,0 +1,46 @@ +easyblock = 'PythonBundle' + +name = 'scikit-learn' +version = '0.23.1' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'https://scikit-learn.org/stable/index.html' +description = """Scikit-learn integrates machine learning algorithms in the tightly-knit scientific Python world, +building upon numpy, scipy, and matplotlib. As a machine-learning module, +it provides versatile tools for data mining and analysis in any field of science and engineering. +It strives to be simple and efficient, accessible to everybody, and reusable in various contexts.""" + +toolchain = {'name': 'intel', 'version': '2020a'} + +dependencies = [ + ('Python', '3.8.2'), + ('SciPy-bundle', '2020.03', versionsuffix) +] + +use_pip = True + +exts_default_options = {'source_urls': [PYPI_SOURCE]} + +exts_list = [ + ('pytoml', '0.1.21', { + 'checksums': ['8eecf7c8d0adcff3b375b09fe403407aa9b645c499e5ab8cac670ac4a35f61e7'], + }), + ('flit-core', '2.3.0', { + 'source_tmpl': 'flit_core-%(version)s.tar.gz', + 'checksums': ['a50bcd8bf5785e3a7d95434244f30ba693e794c5204ac1ee908fc07c4acdbf80'], + }), + ('flit', '2.3.0', { + 'checksums': ['017012b809ec489918afd68af7a70bd7c8c770c87b60159d875c126866e97a4b'], + }), + ('threadpoolctl', '2.1.0', { + 'checksums': ['ddc57c96a38beb63db45d6c159b5ab07b6bced12c45a1f07b2b92f272aebfa6b'], + }), + (name, version, { + 'modulename': 'sklearn', + 'checksums': ['e3fec1c8831f8f93ad85581ca29ca1bb88e2da377fb097cf8322aa89c21bc9b8'], + }), +] + +sanity_pip_check = True + +moduleclass = 'data' From a81a994738df824be21f70ab20d8cd3a66b2426b Mon Sep 17 00:00:00 2001 From: Kenneth Hoste Date: Fri, 14 Aug 2020 14:01:16 +0200 Subject: [PATCH 2/2] don't set use_pip twice in pySCENIC easyconfig --- .../p/pySCENIC/pySCENIC-0.10.3-intel-2020a-Python-3.8.2.eb | 2 -- 1 file changed, 2 deletions(-) diff --git a/easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.10.3-intel-2020a-Python-3.8.2.eb b/easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.10.3-intel-2020a-Python-3.8.2.eb index 6134597bf464..e12c3bc967df 100644 --- a/easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.10.3-intel-2020a-Python-3.8.2.eb +++ b/easybuild/easyconfigs/p/pySCENIC/pySCENIC-0.10.3-intel-2020a-Python-3.8.2.eb @@ -12,8 +12,6 @@ cell types from single-cell RNA-seq data.""" toolchain = {'name': 'intel', 'version': '2020a'} -use_pip = True - dependencies = [ ('Python', '3.8.2'), ('PyYAML', '5.3'),