Changelog ========= All notable changes to **protpy** are documented here. The format is based on `Keep a Changelog `_, and this project adheres to `Semantic Versioning `_. ---- Unreleased ---------- Changed ~~~~~~~ - ``aaindex`` dependency version floor raised to ``>=1.2.0`` to pick up the new ``aaindex2`` and ``aaindex3`` modules, ``pyproject.toml`` migration, and all associated bug fixes in that release. ---- 1.3.0 — 2026-03-31 ------------------- Added ~~~~~ - 21 new composition descriptors: ``gravy``, ``aromaticity``, ``instability_index``, ``isoelectric_point``, ``molecular_weight``, ``charge_distribution``, ``hydrophobic_polar_charged_composition``, ``secondary_structure_propensity``, ``kmer_composition``, ``reduced_alphabet_composition``, ``motif_composition``, ``amino_acid_pair_composition``, ``aliphatic_index``, ``extinction_coefficient``, ``boman_index``, ``aggregation_propensity``, ``hydrophobic_moment``, ``pseudo_amino_acid_composition`` (moved from autocorrelation group), ``amphiphilic_pseudo_amino_acid_composition`` (moved), ``sequence_order_coupling_number_`` (single-gap variant), ``sequence_order_coupling_number_all``, ``quasi_sequence_order_all``. - ``DESCRIPTORS.md`` — comprehensive descriptor reference covering all 35 descriptors, including parameter tables, code examples, output shapes, speed/complexity ratings, and a full References section with original citations. - ``pyproject.toml`` — modern PEP 517/518 build configuration replacing ``setup.py`` and ``setup.cfg``. - ``images/protpy.jpeg`` — project logo added to repository and displayed in ``README.md``. - ``CHANGELOG.md`` — this file. Changed ~~~~~~~ - ``all_descriptors`` list in ``protpy/__init__.py`` expanded from 14 to 35 entries. - ``README.md`` — Introduction descriptor list updated to all 35 descriptors grouped by category; Usage section expanded with code examples for all 17 previously undocumented composition descriptors. - ``tests/test_protpy.py`` — ``test_valid_descriptors`` updated to assert ``len(all_descriptors) == 35`` and check all 35 descriptor names individually, grouped by category. - ``pyproject.toml`` — version floor constraints added to core dependencies (``numpy>=1.16.0``, ``pandas>=1.1.0``, ``varname>=0.12.0``); ``biopython`` moved from ``install_requires`` to ``optional-dependencies[test]``. - Python version classifiers updated to include 3.11, 3.12, and 3.13 in both ``pyproject.toml`` and ``docs/conf.py``. - ``requirements.txt`` — ``biopython`` removed (test-only dependency). - ``kmer_composition`` — added ``ValueError`` guard for ``k > 4`` to prevent accidental generation of 3.2 million+ column DataFrames. - ``docs/conf.py`` — ``release`` updated to ``1.3.0``. - Version bumped to ``1.3.0`` across ``pyproject.toml``, ``protpy/__init__.py``, ``docs/conf.py``, and ``tests/test_protpy.py``. Removed ~~~~~~~ - ``setup.py`` and ``setup.cfg`` — replaced by ``pyproject.toml``. - ``.circleci/`` directory and ``config.yml`` — CircleCI pipeline removed; GitHub Actions is the sole CI/CD provider. - CircleCI badge removed from ``README.md``. - CircleCI TODO item removed from ``TODO.md``. Fixed ~~~~~ - ``setup.cfg`` typo ``install_requies`` → ``install_requires`` (previously caused all cfg-declared dependencies to be silently ignored). ---- 1.2.1 — 2023-12-13 ------------------- Added ~~~~~ - ``.readthedocs.yml`` — ReadTheDocs configuration for hosted documentation. - Renamed distance matrix JSON files from ``physiochemical`` to ``physicochemical`` (corrected spelling). Changed ~~~~~~~ - ``README.md`` — minor copy and link updates. - ``protpy/__init__.py`` — metadata and keyword cleanup. - ``autocorrelation.py``, ``composition.py``, ``ctd.py``, ``sequence_order.py`` — comment and docstring corrections. - ``deploy_pypi.yml`` and ``deploy_test_pypi.yml`` — workflow trigger and token reference updates. - ``tests/test_protpy.py`` — assertion message updates. Fixed ~~~~~ - ``protpy/data/`` — distance matrix filenames corrected from ``physiochemical`` to ``physicochemical`` in both JSON filenames and all internal references. ---- 1.2.0 — 2023-11-14 ------------------- Added ~~~~~ - Full GitHub Actions CI/CD pipeline: - ``build_test.yml`` — test matrix across Python 3.11, 3.12, 3.13 with pytest-cov and Codecov upload. - ``deploy_test_pypi.yml`` — automated deployment to TestPyPI after successful test run. - ``deploy_pypi.yml`` — automated deployment to production PyPI after successful TestPyPI deployment. - ``.github/workflows/README.md`` — workflow documentation. - ``MANIFEST.in`` — includes ``protpy/data/`` JSON files in source distributions. - ``protpy/data/README.md`` — documentation for the bundled physicochemical distance matrices. - ``tests/README.md`` — documentation for the test suite. - ``docs/`` — Sphinx documentation structure with ``conf.py``, ``index.rst``, ``api.rst``, ``usage.rst``, ``contributing.rst``, ``Makefile``, and ``make.bat``. - ``ToDo.md`` — project task tracking file. Changed ~~~~~~~ - ``README.md`` — major expansion with full usage examples for all descriptors, requirements, installation, directory structure, and reference list. - ``setup.py`` / ``setup.cfg`` — full metadata, classifiers, and dependency declarations. - ``protpy/__init__.py`` — ``all_descriptors`` list formalised (14 entries). - All source modules — comprehensive docstrings, inline comments, and reference citations added. - ``tests/`` — unit test suites expanded and restructured across ``test_composition.py``, ``test_autocorrelation.py``, ``test_conjoint_triad.py``, ``test_ctd.py``, ``test_sequence_order.py``, and ``test_protpy.py``. Fixed ~~~~~ - Multiple descriptor calculation bugs across ``composition.py``, ``ctd.py``, ``sequence_order.py``, and ``autocorrelation.py``. - CTD column naming corrected (zero-padded singular columns, e.g. ``_01``). - ``secondary_struct`` property key name corrected (was ``sec_struct``). - SOCN/QSO column naming standardised: ``SOCNUm`` → ``SOCN``, ``QSOrder`` → ``QSO``; ``SW``/``Grant`` suffixes appended. - Sequences uppercased on input; leading/trailing whitespace stripped. - Invalid amino acid characters now raise a ``ValueError`` with informative message. - PseAAC hydrophobicity, hydrophilicity, and residue mass values hard-coded for reproducibility. - ``lag`` and ``weight`` parameter validation added to sequence order functions. ---- 1.1.0 — 2023-04-12 ------------------- Added ~~~~~ - Expanded unit test coverage across all descriptor modules. - Additional inline comments and docstring improvements throughout all source files. Fixed ~~~~~ - CTD descriptor calculation corrections. - Conjoint triad descriptor bug fixes. - Pseudo amino acid composition function corrections. - Sequence order module stability improvements. ---- 1.0.0 — 2023-02-08 ------------------- Added ~~~~~ - Initial package release. - Core descriptor modules: - ``composition.py`` — ``amino_acid_composition``, ``dipeptide_composition``, ``tripeptide_composition``, ``pseudo_amino_acid_composition``, ``amphiphilic_pseudo_amino_acid_composition``. - ``autocorrelation.py`` — ``moreaubroto_autocorrelation``, ``moran_autocorrelation``, ``geary_autocorrelation``. - ``conjoint_triad.py`` — ``conjoint_triad``. - ``ctd.py`` — ``ctd_composition``, ``ctd_transition``, ``ctd_distribution``, ``ctd_``. - ``sequence_order.py`` — ``sequence_order_coupling_number``, ``quasi_sequence_order``. - ``protpy/__init__.py`` — package entry point with metadata and ``all_descriptors`` list. - ``protpy/data/`` — bundled Grantham and Schneider-Wrede physicochemical distance matrices (JSON). - ``tests/`` — initial unit test suite with test FASTA data files. - ``requirements.txt`` — ``aaindex``, ``numpy``, ``pandas``, ``varname``. - ``setup.py`` / ``setup.cfg`` — package build and distribution configuration. - ``README.md`` — initial project documentation. - ``LICENSE`` — MIT licence. - ``.gitignore`` — Python project ignore rules. ---- Version Links ------------- - `Unreleased `_ - `1.3.0 `_ - `1.2.1 `_ - `1.2.0 `_ - `1.1.0 `_ - `1.0.0 `_