Releases: PopovIILab/KrakenParser
Releases · PopovIILab/KrakenParser
Release list
v.1.1.2
What's Changed
- refactor(tests,docs): polish docstrings, type annotations, and linting rules by @iliapopov17 in #23
Full Changelog: v.1.1.1...v.1.1.2
v.1.1.1
What's Changed
- feat(cli): add short single-dash aliases for options and bump to v1.1.1 by @iliapopov17 in #20
Full Changelog: v.1.1.0...v.1.1.1
v.1.1.0
What's Changed
Core CLI & Architecture Overhaul
- Typer Migration: Fully replaced legacy
argparsewithtyperfor modern parsing and beautiful--helplayouts powered byrich. - Native Subcommands: Registered all granular steps (
mpa,combine,split,process,csv,relabund,diversity) as clean, standalone Typer sub-apps organized within an advanced step-by-step pipeline control panel. - Subprocess Elimination: Removed custom
sys.argvinterception andsubprocess.runhacks that managed isolated sub-module calls, refactoring the workflow into direct functional imports.
Pipeline Features & Refactoring
- Taxonomic Domain Filters: Expanded core pipeline orchestration by introducing domain-specific filtering options (
--bacteria,--fungi, and--archaea) alongside the existing viruses domain. - Strict Path Handling: Replaced legacy string-based path operations across function signatures with native
pathlib.Pathtype annotations. - Graceful Exits: Handled
KeyboardInterruptglobally and standardized terminating logic usingtyper.Exitand clean routing tosys.stderr.
Package & Quality Assurance
- Metadata & Dependencies: Bumped package version to
1.1.0and declaredtyper>=0.12.0,<1as a core runtime dependency inpyproject.toml. - Binary Registry: Introduced a lowercase
krakenparseralias script hook for user convenience alongside the original camel-caseKrakenParser. - Documentation & Testing: Updated documentation examples in README.md and completely refactored core test suites to match the updated subcommand parsing engine and exit verification parameters.
Full Changelog: v.1.0.1...v.1.1.0
v.1.0.1
What's Changed
- v1.0.1 by @iliapopov17 in #16
- feat: modernize KrakenParser by @iliapopov17 in #17
- Refactor: modernize CLI routing, optimize MPA pipeline and taxonomic sorting by @iliapopov17 in #18
Full Changelog: v.1.0...v.1.0.1
KrakenParser v.1.0
This is the first major release — a complete modernisation of the codebase.
KrakenParser is now a proper Python package: no shell scripts, full test
coverage, and available on PyPI.
⚠️ Breaking Changes
New output structure
Intermediate files are now grouped under intermediate/:
These are internal — if you called them directly via CLI flags, the flags
(--kreport2mpa, --combine_mpa) are unchanged.
🚀 New Features
Simpler default syntax
# Before
KrakenParser --complete -i data/kreports
# After — --complete is now the default when -i is given
KrakenParser -i data/kreportsCustom output directory
KrakenParser -i data/kreports -o results/Overwrite protection
KrakenParser -i data/kreports -o results/ --overwriteWithout --overwrite, the pipeline exits with an error if output already
exists — protecting against accidental reruns.
Reproducible β-diversity
KrakenParser -i data/kreports -s 42
KrakenParser --diversity -i counts_species.csv -o diversity/ -s 42Rarefaction is stochastic by default. Fix a seed to get the same
Bray-Curtis / Jaccard matrix every run.
Keep human taxa
KrakenParser -i data/kreports --keep-human--kreport2mpa batch mode
KrakenParser --kreport2mpa -i kreports/ -o mpa/ # directory
KrakenParser --kreport2mpa -r sample.kreport -o out/ # single file🔧 Improvements
- Pure Python — all Bash scripts replaced; works on Windows, macOS, Linux
scikit-bioremoved — replaced withscipyfor Bray-Curtis & Jaccard;
eliminates thebiom-formatbuild-time dependencylogginginstead ofprint()in library functionsraise FileNotFoundErrorinstead ofsys.exit()in importable functionsimportlib.metadatafor version — no moreversion.py
🧪 Testing
- 70 tests, 83 % coverage
- Unit tests:
_parse_line, Shannon / Pielou / Chao1,modify_taxa_names - Integration tests with SHA-256 reproducibility checks
- kpplot smoke tests + parameter validation
- Full end-to-end pipeline test using
demo_data.zip