Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{bio}[foss/2023a] Cellformer v20240917 w/ R 4.3.2 #21621

Merged
Changes from 2 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,190 @@
easyblock = 'Tarball'

name = 'Cellformer'
version = '20240917'
versionsuffix = '-R-%(rver)s'
local_commit = '99a1165'

homepage = 'https://github.com/elo-nsrb/Cellformer'
description = '''An implementation of Cellformer from our publication: Berson et al.
"Whole genome deconvolution unveils Alzheimer’s resilient epigenetic signature"'''

toolchain = {'name': 'foss', 'version': '2023a'}

source_urls = ['https://github.com/elo-nsrb/Cellformer/archive/']
sources = [{'download_filename': '%s.tar.gz' % local_commit, 'filename': '%(name)s-%(version)s.tar.gz'}]
checksums = ['7cbddad75a4d47dfc0a39cd660ef20fe4e3cb755631b1b96136c1c3d5226c914']

dependencies = [
('Python', '3.11.3'),
('PyTorch', '2.1.2'),
('PyTorch-bundle', '2.1.2'),
('scikit-learn', '1.3.1'),
('PyTorch-Lightning', '2.2.1'),
('anndata', '0.10.5.post1'),
('h5py', '3.9.0'),
('SciPy-bundle', '2023.07'),
('Seaborn', '0.13.2'),
('tensorboard', '2.15.1'),
('tensorboardX', '2.6.2.2'),
('torchvision', '0.16.0'),
('tqdm', '4.66.1'),
('scanpy', '1.9.8'),
('pretty-yaml', '24.7.0'),
('Arrow', '14.0.1'),
('R', '4.3.2'),
('R-bundle-CRAN', '2023.12'),
('R-bundle-Bioconductor', '3.18', versionsuffix),
('ArchR', '1.0.2', versionsuffix),
('typing-extensions', '4.9.0'),
('einops', '0.7.0'),
]

exts_defaultclass = 'PythonPackage'
exts_default_options = {
'source_urls': [PYPI_SOURCE],
'download_dep_fail': True,
'use_pip': True,
'sanity_pip_check': True,
'installopts': '',
}

exts_list = [
('typing_extensions', '4.12.2', {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be no need for this, since typing-extensions is already a dependency?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@PetrKralCZ Just for sanity's sake: in your test environment, the scanpy/1.9.8-foss-2023a module is still loading hatchling/1.18.0-GCCcore-12.3.0 as a runtime dependency, which includes typing-extensions 4.6.3 as an extension. That's wrong, hatchling should only ever be a build dependency...

The same goes for the scanpy module in my test environment, but there's another difference that affects the order of $PYTHONPATH: in my test environment the pydantic/1.10.13-GCCcore-12.3.0 module is old, it was not rebuilt after the changes in 479ecec.

If pydantic/1.10.13-GCCcore-12.3.0 loads typing-extensions/4.9.0-GCCcore-12.3.0 (like it is in your case), then it gets superseded by the older typing-extensions that is included in the hatchling installation that gets loaded as a dependency of scanpy.

Long story short: we should make hatchling a build dependency of scanpy, and then the problem should be resolved... => being fixed via #21657

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Other then scanpy I also had to rebuild anndata on Donphan to pass the pip checks without typing-extensions in exts_list.

'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d'],
}),
('asteroid_filterbanks', '0.4.0', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['4932ac8b6acc6e08fb87cbe8ece84215b5a74eee284fe83acf3540a72a02eaf5'],
}),
('huggingface_hub', '0.25.2', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['1897caf88ce7f97fe0110603d8f66ac264e3ba6accdf30cd66cc0fed5282ad25'],
}),
('julius', '0.2.7', {
'checksums': ['3c0f5f5306d7d6016fcc95196b274cae6f07e2c9596eed314e4e7641554fbb08'],
}),
('cached_property', '1.5.2', {
'source_tmpl': SOURCE_WHL,
'checksums': ['df4f613cf7ad9a588cc381aaf4a512d26265ecebd5eb9e1ba12f1319eb85a6a0'],
}),
('mir_eval', '0.7', {
'checksums': ['e1febaa5766c65a7545c2a170b241490f47a98987370b1e06742424c5debe65e'],
}),
('pesq', '0.0.4', {
'checksums': ['b724b28f73fb638522982bd68e8c3c0957e2f45210639a460233b17aa7fc890b'],
}),
('pb_bss_eval', '0.0.2', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['a72c2fd04c9f4a4e734cf615029c3877e6e4536225eeaaae05bb0cf014b3af1b'],
}),
('soundfile', '0.12.1', {
'source_tmpl': SOURCE_WHL,
'checksums': ['828a79c2e75abab5359f780c81dccd4953c45a2c4cd4f05ba3e233ddf984b882'],
}),
('pytorch_ranger', '0.1.1', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['1e69156c9cc8439185cb8ba4725b18c91947fbe72743e25aca937da8aeb0c8ec'],
}),
('torch_optimizer', '0.1.0', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['b7adaed38b66a5c5105a59b30a71c4ab7c9954baf0acabd969fee3dac954657d'],
}),
('pystoi', '0.4.1', {
'source_tmpl': SOURCE_WHL,
'checksums': ['e277b671663d26d35a2416c9c8010a74084e6c3970354506398051a554896939'],
}),
('torch_stoi', '0.2.3', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['6eee85e33b42fe843a2150de46000f72e7b87cbeb19ae6ab9bbd94b6ec6b3cd2'],
}),
('torchmetrics', '1.4.3', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['76e67490231acef7f70cf36ab129df72fb2b0256dada7051001ab3b9f8699bf4'],
}),
('asteroid', '0.7.0', {
# requirement too strict
'preinstallopts': "sed -i 's/torchmetrics<=0.11.4/torchmetrics/g' setup.py && ",
'checksums': ['0326f28c5342495cb08ba0520efd0e21e39435dfd78854837fdd5a6c9c9ca410'],
}),
('everett', '3.1.0', {
'source_tmpl': SOURCE_WHL,
'checksums': ['db13891b849e45e54faea93ee79881d12458c5378f5b9b7f806eeff03ce1de3c'],
}),
('configobj', '5.0.9', {
'checksums': ['03c881bbf23aa07bccf1b837005975993c4ab4427ba57f959afdd9d1a2386848'],
}),
('python_box', '6.1.0', {
'modulename': 'box',
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['bdec0a5f5a17b01fc538d292602a077aa8c641fb121e1900dff0591791af80e8'],
}),
('sentry_sdk', '2.15.0', {
'source_tmpl': SOURCE_WHL,
'checksums': ['8fb0d1a4e1a640172f31502e4503543765a1fe8a9209779134a4ac52d4677303'],
}),
('wurlitzer', '3.1.1', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['0b2749c2cde3ef640bf314a9f94b24d929fe1ca476974719a6909dfc568c3aac'],
}),
('comet_ml', '3.47.0', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['81062bbef2d0758c8e77d8a469824d2c20ec13b09855c78b51b078203628b8c2'],
}),
('fast_histogram', '0.14', {
'checksums': ['390973b98af22bda85c29dcf6f008ba0d626321e9bd3f5a9d7a43e5690ea69ea'],
}),
('mpl_scatter_density', '0.7', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['721b4efeafcbc0ba4a5c1ecd8f401dc2d1aa6a372445c5b49e1da34e70a95ead'],
}),
('tensorboard_data_server', '0.7.0', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['753d4214799b31da7b6d93837959abebbc6afa86e69eacf1e9a317a48daa31eb'],
}),
('tensorboard_plugin_wit', '1.8.1', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['ff26bdd583d155aa951ee3b152b3d0cffae8005dc697f72b44a8e8c2a77a8cbe'],
}),
('torchmetrics', '1.4.2', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['87b9eca51ff6f93985a0f9db509f646cb45425b016f4d2f383d8c28d40dde5b6'],
}),
('torchmetrics', '0.11.4', {
'source_tmpl': SOURCE_PY3_WHL,
'checksums': ['45f892f3534e91f3ad9e2488d1b05a93b7cb76b7d037969435a41a1f24750d9a'],
}),
]

modextrapaths = {
'PATH': '',
'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages',
}

fix_python_shebang_for = [
'src/*/*.py',
'src/*/*/*.py',
'src/*/*/*/*.py',
]

local_scripts = [
'createPeakMatrix.sh',
'createDataset.sh',
'deconvolution.sh',
'trainModel.sh',
'validation.sh',
]

postinstallcmds = [
"sed -i 's|python |python %(installdir)s/|g' %(installdir)s/*.sh"
] + ['chmod a+rx %%(installdir)s/%s' % script for script in local_scripts]

sanity_check_paths = {
'files': local_scripts,
'dirs': ['lib/python%(pyshortver)s/site-packages'],
}

sanity_check_commands = ["%s --help | grep '^Usage:'" % script for script in local_scripts]

moduleclass = 'bio'
Loading