Files
AlphaPulldown/pyproject.toml
Dima fff63051b4 Tests (#600)
* Harden MMseqs species ID resolution fallback

* Reorganize tests for CPU coverage CI

* New

* Fix function coverage checker def-line false positives

* Expand unit coverage for helper and backend manager utilities

* New.

* New.

* Expand unit coverage for template and post-processing helpers

* Expand unit coverage for objects.py edge cases

* Publish HTML coverage reports via GitHub Pages

* Add CPU unit coverage for AlphaFold3 backend helpers

* Reorganize tests and expand backend coverage

* Reset shared test flags between cases

* Expand AF3 prepare_input unit coverage

* Cover AF3 and truemultimer feature creation

* Test AF3 multimer MSA translation paths

* Cover AF3 duplicate-residue multimer fallback

* Cover AF2 resume and postprocess edge paths

* Cover AF3 template mmCIF preparation

* Test small script entry points

* Expand workflow and ModelCIF test coverage

* Add backend extras and install guide

* Clarify AF3 backend installation path

* Stabilize cluster GPU test runners

* Document AF3 CMake SQLite hints

* Simplify backend installation guide

* Align AF3 install with working cluster env

* Backfill typing dataclass_transform for AF2

* Pin TensorFlow for cluster installs

* Fallback AF2 relax when CUDA OpenMM is unavailable

* Raise AF3 default minimum bucket size

* Simplify backend cluster installation guide

* Fix AF3 wrapper JSON output isolation

* Fix AF3 JSON wrapper outputs and MMseqs ID parsing

* Fix CI entrypoint stub and Python 3.8 typing

* Document release readiness test gates
2026-04-01 14:13:35 +02:00

143 lines
3.8 KiB
TOML

[build-system]
requires = ["setuptools<82", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "alphapulldown"
description = "Pipeline allows massive screening using alphafold"
readme = { file = "README.md", content-type = "text/markdown" }
requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [
{ name = "EMBL Hamburg", email = "alphapulldown@embl-hamburg.de" }
]
classifiers = [
"Programming Language :: Python :: 3",
"Operating System :: OS Independent",
]
dynamic = ["version"]
dependencies = [
"absl-py>=0.13.0",
"alphapulldown-input-parser>=0.4.0",
"dm-haiku",
"dm-tree>=0.1.6",
"h5py>=3.1.0",
"matplotlib>=3.3.3",
"ml-collections>=0.1.0",
"pandas>=1.5.3",
"tensorflow-cpu==2.20.0",
"importlib-resources>=6.1.0",
"importlib-metadata>=4.8.2,<5.0.0",
"biopython>=1.81,<1.82",
"nbformat>=5.9.2",
"py3Dmol==2.0.4",
"ipython==8.16.1",
"tqdm>=4.66.1",
"appdirs>=1.4.4",
"jupyterlab>=3.0",
"ipywidgets",
"ml-dtypes",
"chex>=0.1.86",
"immutabledict>=2.0.0",
"typing-extensions==4.14.0",
]
[project.optional-dependencies]
alphafold2 = [
"jax==0.5.3",
"jax[cuda12]==0.5.3; platform_system == 'Linux' and platform_machine == 'x86_64'",
"modelcif>=1.6",
"numpy<2",
"openmm>=8.2",
"pdbfixer>=1.10",
]
alphafold3 = [
"jaxtyping==0.2.34",
"jax==0.5.3",
"jax[cuda12]==0.5.3; platform_system == 'Linux' and platform_machine == 'x86_64'",
"jax-triton==0.2.0; platform_system == 'Linux' and platform_machine == 'x86_64'",
"modelcif>=1.6",
"numpy<2",
"openmm>=8.2",
"pdbfixer>=1.10",
"rdkit==2024.3.5",
"triton==3.1.0; platform_system == 'Linux' and platform_machine == 'x86_64'",
"typeguard==2.13.3",
"zstandard",
]
test = [
"parameterized",
"pytest>=8.0",
"pytest-cov>=5.0",
"pytest-timeout>=2.3",
"pytest-xdist>=3.6",
]
[project.urls]
Homepage = "https://github.com/KosinskiLab/AlphaPulldown"
[tool.setuptools]
include-package-data = true
packages = [
"alphapulldown",
"alphapulldown.utils",
"alphapulldown.folding_backend",
"alphapulldown.analysis_pipeline",
"alphapulldown.scripts",
"alphafold",
"alphafold.data",
"alphafold.data.tools",
"alphafold.common",
"alphafold.relax",
"alphafold.model",
"alphafold.model.geometry",
"alphafold.model.tf",
"alphafold.notebooks",
"alphafold3",
"alphafold3.structure",
"colabfold",
"analysis_pipeline",
"af2plots",
"unifold",
"unifold.data",
"unifold.modules",
"unifold.msa",
"unifold.losses",
"unifold.symmetry",
]
script-files = [
"./alphapulldown/scripts/create_individual_features.py",
"./alphapulldown/scripts/run_multimer_jobs.py",
"./alphapulldown/analysis_pipeline/create_notebook.py",
"./alphapulldown/analysis_pipeline/get_good_inter_pae.py",
"./alphapulldown/scripts/rename_colab_search_a3m.py",
"./alphapulldown/scripts/prepare_seq_names.py",
"./alphapulldown/scripts/generate_crosslink_pickle.py",
"./alphapulldown/scripts/convert_to_modelcif.py",
"./alphapulldown/scripts/run_structure_prediction.py",
"./alphapulldown/scripts/truncate_pickles.py",
"./alphafold/run_alphafold.py",
]
[tool.setuptools.package-dir]
"" = "."
"alphapulldown" = "./alphapulldown"
"alphapulldown.folding_backend" = "./alphapulldown/folding_backend"
"alphafold" = "./alphafold/alphafold"
"alphafold3" = "./alphafold3/src/alphafold3"
"alphafold3.structure" = "./alphafold3/src/alphafold3/structure"
"colabfold" = "./ColabFold/colabfold"
"analysis_pipeline" = "./alphapulldown/analysis_pipeline"
"af2plots" = "./alphapulldown/analysis_pipeline/af2plots/af2plots"
"unifold" = "./AlphaLink2/unifold/"
"unifold.data" = "./AlphaLink2/unifold/data"
"unifold.losses" = "./AlphaLink2/unifold/losses"
"unifold.symmetry" = "./AlphaLink2/unifold/symmetry"
[tool.setuptools.package-data]
"alphafold.common" = ["stereo_chemical_props.txt"]
[tool.setuptools.dynamic]
version = { attr = "alphapulldown.__version__" }