diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..e9fe3191 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,10 @@ +# Changelog + +## 1.1.0 (unreleased) + +- Rename the distribution from `ms-gen` back to `ms_pred`. +- Read the package version from `ms_pred.__version__`. +- Add `ms_pred.model_registry` with the current model versions. +- Add `python -m ms_pred --version`. + +Changes between v1.0.0 and this release, such as `ms_pred.dag_pred` becoming `ms_pred.iceberg`, were not recorded. diff --git a/pyproject.toml b/pyproject.toml index 455063ff..80518189 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,8 +3,8 @@ requires = ["setuptools>=61", "wheel", "cython>=3", "numpy>=2"] build-backend = "setuptools.build_meta" [project] -name = "ms-gen" -version = "0.1.0" +name = "ms_pred" +dynamic = ["version"] description = "A package for computational tandem mass spectrometry simulation." authors = [ { name = "Sam Goldman", email = "samlg@mit.edu" }, @@ -132,5 +132,8 @@ url = "https://data.pyg.org/whl/torch-2.6.0+cu118.html" format = "flat" explicit = true +[tool.setuptools.dynamic] +version = { attr = "ms_pred.__version__" } + [tool.setuptools.packages.find] where = ["src"] diff --git a/src/ms_pred/__init__.py b/src/ms_pred/__init__.py index 835e34c2..24f75b90 100644 --- a/src/ms_pred/__init__.py +++ b/src/ms_pred/__init__.py @@ -1,3 +1,5 @@ +__version__ = "1.1.0" + # Import all submodules in package # from . import common # from . import iceberg diff --git a/src/ms_pred/__main__.py b/src/ms_pred/__main__.py new file mode 100644 index 00000000..f995facc --- /dev/null +++ b/src/ms_pred/__main__.py @@ -0,0 +1,20 @@ +import argparse + +from ms_pred import __version__ +from ms_pred.model_registry import MODEL_REGISTRY + + +def main(): + parser = argparse.ArgumentParser(prog="python -m ms_pred") + parser.add_argument("--version", action="store_true", help="show package and model versions") + args = parser.parse_args() + if not args.version: + parser.print_help() + return + print(f"ms_pred {__version__}") + for name, info in MODEL_REGISTRY.items(): + print(f"{name} {info['version']}") + + +if __name__ == "__main__": + main() diff --git a/src/ms_pred/model_registry.py b/src/ms_pred/model_registry.py new file mode 100644 index 00000000..15eeb29d --- /dev/null +++ b/src/ms_pred/model_registry.py @@ -0,0 +1,15 @@ +"""Model versions, kept separate from the ms_pred package version.""" + +MODEL_REGISTRY = { + "iceberg": { + "version": "2.1", + "reference": "doi:10.1101/2025.05.28.656653", + "previous": { + "2.0": {"branch": "iceberg_2.0", "reference": "doi:10.1101/2025.05.28.656653"}, + "1.0": {"branch": "iceberg_1.0", "reference": "doi:10.1021/acs.analchem.3c04654"}, + }, + }, + "scarf": {"version": "1.0", "reference": "arXiv:2303.06470"}, + "marason": {"version": "1.0", "reference": "arXiv:2502.17874"}, + "glacier": {"version": "1.0", "reference": "arXiv:2606.29161"}, +}