diff --git a/.gitignore b/.gitignore index 9beeac1..31833e9 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,7 @@ dask-scratch-space *.h5 !tests/data/distograms_pdbs/pdbs.h5 -!tests/data/dataset_expected/structures/*/*/*/*/*.h5 \ No newline at end of file +!tests/data/dataset_expected/structures/*/*/*/*/*.h5 + +*.egg-info +build diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..9311c11 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,9 @@ +# include everything in the sdist (be careful — this will bundle all files) +global-include * + +recursive-exclude tests * +recursive-exclude .github * +recursive-exclude .pytest_cache * +recursive-exclude build * +recursive-exclude *.egg-info * +recursive-exclude dist * \ No newline at end of file diff --git a/README.md b/README.md index 644c481..be2e84b 100644 --- a/README.md +++ b/README.md @@ -86,6 +86,28 @@ PYTHONPATH='.' python3 -u ${FRIDATA_PATH}/fridata.py \ -e ${EMBEDDER_TYPE} ``` +## Running as a CLI tool + +Assuming all `Instalation and activation` steps succeeded. + +0. Go into `FRIdata` directory + +``` +cd +``` + +1. Install as a CLI tool + +``` +python3 -m pip install -e . +``` + +2. Now FRIdata can be run as a CLI tool + +``` +$ fridata <...> +``` + ## Running on HPC Running FRIdata on HPC differs on CPU and GPU nodes. This instruction set is valid for HPC hosted in PLGrid infrastructure. Running on other infrastructures may require additional adjustments. diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..80b81eb --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,48 @@ +[build-system] +requires = ["setuptools>=61.0", "wheel"] +build-backend = "setuptools.build_meta" + +[project] +name = "FRIdata" +version = "0.1.0" +readme = "README.md" +requires-python = ">=3.10" +dependencies = [ + "foldcomp", + "pydantic>=2.8.2", + "scipy>=1.14.0", + "h5py", + "matplotlib", + "biotite>=0.41.2", + "numpy>=1.26.4,<1.27.0", + "genson", + "bs4", + "bio~=1.7.0", + "pytest", + "pytest-order", + "dask>=2024.4.2,<2025.0.0", + "dask[dataframe]", + "distributed>=2024.4.2,<2025.0.0", + "python-dotenv", + "tables", + "biopython", + "bokeh>=2.4.2,<3.0.0", + "pdbfixer", + "mamba", + "transformers", + "tqdm", + "pytorch-gpu", + "esm" +] + +[project.scripts] +fridata = "fridata:main" + +[tool.setuptools] +# fridata.py is a single-module at project root; install as py-module +py-modules = ["fridata"] +include-package-data = true + +[tool.setuptools.packages.find] +where = ["."] +include = ["toolbox*"] \ No newline at end of file