Skip to content

Releases: glarue/intronIC

intronIC v2.1.5

25 Mar 17:18

Choose a tag to compare

Bug fix: BED input mode crash

Fixed a crash when using BED input mode (-b / --bed) where intronIC would fail with:

AttributeError: 'NoneType' object has no attribute 'noncanonical'

Introns created from BED coordinates were not initialized with an IntronMetadata object, causing downstream scoring to fail on attribute access.

Affected use-cases: Only intronIC runs with the -b / --bed flag. Annotation mode (-g / --annotation) and sequence file mode (-q / --sequence-file) should be fine.

Files changed

  • src/intronIC/cli/main.py — Initialize IntronMetadata() for BED-derived introns
  • src/intronIC/extraction/sequences.py — Defensive None check before setting noncanonical flag
  • src/intronIC/extraction/filters.py — Guard metadata access in filter stats counting
  • pyproject.toml — Version bump to 2.1.5
  • pixi.toml — Version bump to 2.1.5

Full Changelog: v2.1.4...v2.1.5

intronIC v2.1.4

11 Mar 21:39

Choose a tag to compare

Fixed

  • Automatically detect and rebuild corrupt pyfastx index (.fxi) files
    • If a previous run was killed mid-indexing, the truncated index caused a cryptic <class 'Fasta'> returned a result with an exception set error on subsequent runs
    • IndexedGenomeReader now catches the error, deletes the stale index, and retries once to rebuild it cleanly

Full Changelog: v2.1.3...v2.1.4

intronIC v2.1.3

11 Mar 02:15

Choose a tag to compare

Added

  • New NO_SEQUENCE omission reason ([x] tag) for introns on genome regions missing from the FASTA (e.g. organellar genes referencing contigs not included in nuclear assemblies)

Fixed

  • Pipeline no longer crashes when introns reference contigs absent from the genome FASTA
    • SequenceExtractor now yields these introns marked as omitted_no_sequence instead of silently dropping them
    • SequenceWriter skips introns without sequence data instead of raising ValueError
    • Affected species include those with mitochondrial/plastid gene annotations

Dependencies

  • Bump pillow from 12.0.0 to 12.1.1

New Contributors

Full Changelog: v2.1.2...v2.1.3

v2.1.2

07 Mar 22:29

Choose a tag to compare

Fix: remove log line wrap length of 120 characters

Full Changelog: v2.1.1...v2.1.2

v2.1.1

07 Mar 07:53

Choose a tag to compare

Fix: Strip ANSI color codes from log file output

Log files (.iic.log) previously contained raw ANSI escape sequences (e.g. ESC[94m...ESC[0m), which were only readable in ANSI-aware viewers like less -R. This made log files difficult to read in standard text editors, on different operating systems, or when shared/downloaded.

Change

In setup_logging() (cli/main.py), the Rich Console used for log file writing was changed from force_terminal=True (which forced ANSI codes into the file) to no_color=True (plain text output).

What's preserved

  • Terminal output: Full Rich color rendering — unchanged
  • Log file structure: Box-drawing characters (┌─┬─┐, , └─┴─┘), table formatting, and Unicode symbols (, , ) are all retained
  • Log file content: All the same information — command, configuration, filtering summary, classification results, boundary tables, etc.

What's removed

  • Raw ANSI escape codes in .iic.log files

Files changed

  • src/intronIC/cli/main.pyforce_terminal=Trueno_color=True in log_console creation
  • pyproject.toml — version 2.1.0 → 2.1.1
  • pixi.toml — version 2.1.0 → 2.1.1

Full Changelog: v2.1.0...v2.1.1

v2.1.0

15 Dec 20:20

Choose a tag to compare

Release v2.1.0 Summary:

Model Improvements:

  • Default model switched to isotonic calibration for better cross-species performance
  • Provides more accurate results in C. elegans and other non-human species
  • Previous sigmoid-calibrated model preserved as default_pretrained.model.sigmoid.pkl

Bug Fixes:

  • intronIC test subcommand: Now displays correct intron counts from metrics file
    • Shows total_scored (12,573) and high_confidence_u12 (32)
    • Added thousand separators for readability
    • Fixed UnboundLocalError by initializing variables before loop
  • sklearn warnings: Completely suppressed
    • All joblib.load() calls replaced with load_model() wrapper
    • Fixed warning filter to catch InconsistentVersionWarning (not just UserWarning)
    • Applied across pretrained model, normalizer, and ensemble loading paths

Full Changelog: v2.0.10...v2.1.0

intronIC v2.0.5

09 Dec 18:34

Choose a tag to compare

intronIC v2.0.4

09 Dec 17:36

Choose a tag to compare

intronIC v2.0.4

A critical hotfix release that fixes data files missing from the PyPI package.

🐛 Bug Fixes

  • Fixed missing data files in PyPI package: The default pretrained model, PWMs, and reference files were not being included in the pip-installable package,
    causing ModuleNotFoundError when using default settings.
  • Added hatchling artifacts configuration: Properly configured pyproject.toml to include all .pkl, .json, .iic.gz, and .log files from the data
    directory.

🔧 Package Improvements

  • Added missing joblib dependency to pixi.toml: Ensures development environments have all required dependencies.

📦 What's Fixed

Users installing via pip install intronIC can now:

  • Use the default pretrained model without specifying --model
  • Access PWM scoring matrices automatically
  • Use reference intron datasets for training

Previous workaround (no longer needed): Users had to train their own model with --train or specify a custom --model path.

🔗 Links


Installation:

pip install --upgrade intronIC

intronIC v2.0.3

09 Dec 17:12

Choose a tag to compare

Install/upgrade command:
pip install --upgrade intronIC

Summary of v2.0.3 (Hotfix)

This hotfix release adds the missing dependencies that were causing ModuleNotFoundError when installing from PyPI:

  • Added tqdm (progress bars)
  • Added pyyaml (YAML config files)
  • Added joblib (model serialization)
  • Added pyfastx (FASTA indexing)

All dependencies are now properly declared in pyproject.toml.

Updated to include joblib dependency in pixi.toml for development environments.

Full Changelog: v2.0.2...v2.0.3

intronIC v2.0.2

09 Dec 04:20

Choose a tag to compare

intronIC v2.0.2

QoL update focused on documentation improvements and bug fixes for configuration handling.

🐛 Bug Fixes

  • Fixed CLI arguments not overriding YAML config: CLI args like -p 1 were being incorrectly overridden by YAML config values. All CLI arguments now
    properly take precedence over config files.
  • Fixed model filename typo: Renamed default_pretrained.model.plkdefault_pretrained.model.pkl

📚 Documentation

  • Condensed README (846 → 137 lines, 84% reduction): Now serves as a concise landing page with links to the comprehensive wiki
  • Accurate runtime estimates: Updated from incorrect estimates (5-15 min) to accurate ones (1-2 min for Chr19 test)
  • Clarified default model behavior: Made it clear that the pretrained model loads automatically—no --model flag needed
  • Removed unimplemented features: Deleted all references to --recursive flag (not implemented)
  • De-emphasized advanced features: Moved normalizer/adaptive mode documentation to "Advanced" sections

🔧 Code Quality

  • Single source of truth for defaults: Argparse is now the only place argument defaults are defined, eliminating the potential for defaults to get out of sync between args.py and config.py

📋 Precedence Chain

The configuration precedence now works correctly for all arguments:

CLI arguments > YAML config > argparse defaults

Example:

  • No -p flag: uses YAML config value (5)
  • -p 1 specified: uses CLI value (1), overriding YAML
  • No -p flag, no YAML: uses default (1)

Full Changelog: v2.0.1...v2.0.2