All notable changes to protpy are documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
descriptors.pdf— PDF version ofDESCRIPTORS.md, providing a printable/downloadable reference for all 36 descriptors.
aaindexdependency version floor raised to>=1.2.0to pick up the newaaindex2andaaindex3modules,pyproject.tomlmigration, and all associated bug fixes in that release.
protpy/utils.py— new utility module with three public functions:get_descriptor_info(name)— returns a metadata dict for any registered descriptor (description, module, category, abbreviation, parameters, output shape, speed rating, reference). Case-insensitive; includes close-match suggestions on unknown names.list_descriptors(category=None)— returns a sorted list of all 36 descriptor names, optionally filtered by category.print_descriptor_info(name)— pretty-prints descriptor metadata to stdout with speed symbols (✅ / 🟡 / 🔴)._DESCRIPTOR_REGISTRY— internal dict containing structured metadata for all 36 descriptors.
examples/protpy_tutorial.ipynb— interactive Jupyter notebook tutorial covering all 13 descriptor families with visualisations, performance benchmarks, and a multi-panel dashboard.tests/test_utils.py— unit tests for all three public utils functions and the_DESCRIPTOR_REGISTRYintegrity (completeness, schema, controlled-vocabulary checks).get_descriptor_info,list_descriptors, andprint_descriptor_infoexported from top-levelprotpypackage.
- Type hints — all five descriptor modules (
autocorrelation.py,composition.py,ctd.py,sequence_order.py,_constants.py) upgraded from barelist/dictannotations to subscripted generics (list[str],list[float],dict[str, float],dict[str, str],tuple[float, float]). Compatible with Python 3.9+ viafrom __future__ import annotations. - F-strings — all
.format()calls across all modules replaced with f-string equivalents (20 call sites updated). - Version bumped to
1.4.0acrosspyproject.toml,protpy/__init__.py,docs/conf.py, andtests/test_protpy.py.
1.3.0 - 2026-03-31
- 22 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,shannon_entropy,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 (✅ Fast / 🟡 Moderate / 🔴 Slow), and a full References section with original citations.pyproject.toml— modern PEP 517/518 build configuration replacingsetup.pyandsetup.cfg.images/protpy.png— project logo added to repository and displayed inREADME.md.CHANGELOG.md— this file.
all_descriptorslist inprotpy/__init__.pyexpanded from 14 to 36 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_descriptorsupdated to assertlen(all_descriptors) == 36and check all 36 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);biopythonmoved frominstall_requirestooptional-dependencies[test].- Python version classifiers updated to include 3.11, 3.12, and 3.13 in both
pyproject.tomlanddocs/conf.py. requirements.txt—biopythonremoved (test-only dependency)..circleci/config.ymlCircleCI coverage job now actually runscoverage run -m pytest tests/andcoverage report(previously installed tools without executing them).kmer_composition— addedValueErrorguard fork > 4to prevent accidental generation of 3.2 million+ column DataFrames.docs/conf.py—releaseupdated to1.3.0.- Version bumped to
1.3.0acrosspyproject.toml,protpy/__init__.py,docs/conf.py, andtests/test_protpy.py.
setup.pyandsetup.cfg— replaced bypyproject.toml..circleci/directory andconfig.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.
setup.cfgtypoinstall_requies→install_requires(previously caused all cfg-declared dependencies to be silently ignored).
1.2.1 - 2023-12-13
.readthedocs.yml— ReadTheDocs configuration for hosted documentation.- Renamed distance matrix JSON files from
physiochemicaltophysicochemical(corrected spelling).
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.ymlanddeploy_test_pypi.yml— workflow trigger and token reference updates.tests/test_protpy.py— assertion message updates.
protpy/data/— distance matrix filenames corrected fromphysiochemicaltophysicochemicalin both JSON filenames and all internal references.
1.2.0 - 2023-11-14
- 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— includesprotpy/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 withconf.py,index.rst,api.rst,usage.rst,contributing.rst,Makefile, andmake.bat.ToDo.md— project task tracking file.
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_descriptorslist formalised (14 entries).- All source modules — comprehensive docstrings, inline comments, and reference citations added.
tests/— unit test suites expanded and restructured acrosstest_composition.py,test_autocorrelation.py,test_conjoint_triad.py,test_ctd.py,test_sequence_order.py, andtest_protpy.py.
- Multiple descriptor calculation bugs across
composition.py,ctd.py,sequence_order.py, andautocorrelation.py. - CTD column naming corrected (zero-padded singular columns, e.g.
_01). secondary_structproperty key name corrected (wassec_struct).- SOCN/QSO column naming standardised:
SOCNUm→SOCN,QSOrder→QSO;SW/Grantsuffixes appended. - Sequences uppercased on input; leading/trailing whitespace stripped.
- Invalid amino acid characters now raise a
ValueErrorwith informative message. - PseAAC hydrophobicity, hydrophilicity, and residue mass values hard-coded for reproducibility.
lagandweightparameter validation added to sequence order functions.
1.1.0 - 2023-04-12
- Expanded unit test coverage across all descriptor modules.
- Additional inline comments and docstring improvements throughout all source files.
- 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
- 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 andall_descriptorslist.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.