Skip to content

Releases: PopovIILab/KrakenParser

v.1.1.2

Choose a tag to compare

@ilypopv ilypopv released this 04 Jun 08:53
6b479be

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

Choose a tag to compare

@ilypopv ilypopv released this 02 Jun 12:22
b4f1bab

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

Choose a tag to compare

@ilypopv ilypopv released this 01 Jun 19:04
7ecc5bb

What's Changed

Core CLI & Architecture Overhaul

  • Typer Migration: Fully replaced legacy argparse with typer for modern parsing and beautiful --help layouts powered by rich.
  • 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.argv interception and subprocess.run hacks 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.Path type annotations.
  • Graceful Exits: Handled KeyboardInterrupt globally and standardized terminating logic using typer.Exit and clean routing to sys.stderr.

Package & Quality Assurance

  • Metadata & Dependencies: Bumped package version to 1.1.0 and declared typer>=0.12.0,<1 as a core runtime dependency in pyproject.toml.
  • Binary Registry: Introduced a lowercase krakenparser alias script hook for user convenience alongside the original camel-case KrakenParser.
  • 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

Choose a tag to compare

@ilypopv ilypopv released this 01 Jun 11:49
286e86f

What's Changed

Full Changelog: v.1.0...v.1.0.1

KrakenParser v.1.0

Choose a tag to compare

@ilypopv ilypopv released this 12 May 14:25
12295dd

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/kreports

Custom output directory

KrakenParser -i data/kreports -o results/

Overwrite protection

KrakenParser -i data/kreports -o results/ --overwrite

Without --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 42

Rarefaction 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-bio removed — replaced with scipy for Bray-Curtis & Jaccard;
    eliminates the biom-format build-time dependency
  • logging instead of print() in library functions
  • raise FileNotFoundError instead of sys.exit() in importable functions
  • importlib.metadata for version — no more version.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