twitcher 0.1.9

Find template switch mutations in genomic data
# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.1.9]https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.8...v0.1.9 - 2026-04-23

### Added

- *(viz)* Add id selector
- *(vcf)* enable csv output, some small buxfixes to make that happen
- *(viz)* add svg visualization subcommand
- *(csv)* output MI-string and alignment details

### Fixed

- clippy
- *(build)* update rust to 1.88 (needed by lib_tsshow)
- *(deps)* use crates.io version of tsalign libs

### Other

- update reads and vcf pipelines to use new alignment types
- extract alignment operations into dedicated module

## [0.1.8]https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.7...v0.1.8 - 2026-03-25

### Added

- use new cluster density also in \'reads\' mode
- *(vcf)* expose clustering settings, add density parameter

### Fixed

- apply custom costs to tsalign (lost during refactor)

### Other

- write up some basic functionality

## [0.1.7]https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.6...v0.1.7 - 2026-03-19

### Fixed

- test (again...)
- use characters M and X in vcf output cigar strings
- fix a test failure that expected M instead of = in cigar string

### Other

- update lib_tsalign to version 1

## [0.1.6]https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.5...v0.1.6 - 2026-03-10

### Added

- add cram support
- add database feature to store known alignment cases
- in-memory deduplication of alignments
- show running alignments in progress bar

### Fixed

- buffer db writes, refactor counters
- Handle matches (eq or diff) properly in reads mode
- simplify dependencies
- some test coverage
- reduce tokio features

## [0.1.5]https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.4...v0.1.5 - 2026-02-27

### Added

- parameter for buffer size, smaller tweaks
- rewrite many methods to async
- basic setup for tokio
- implement timeout for worker
- properly limit memory usage per alignment
- more info in log messages
- describe subcommands
- update to latest lib_tsalign with serde support

### Fixed

- lots of clippy fixes about number conversions, some of which have caused issues crashed
- differentiate between non-zero exit and signal termination
- Use subprocesses for the aligner to fail gracefully

## [0.1.4]https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.3...v0.1.4 - 2026-02-18

### Added

- Refactor plumbing code to allow a selection of the aligner
- implement DP-based Four-Point-Aligner
- add --min-quality to require minimum quality for cluster bases
- *(vcf)* add command to output header
- some progress bars and less memory usage

### Fixed

- indexing bug in record creation, allow for full-range TSes in FPA
- clippy
- small changes to --help
- update test method to use new `augment_header` method
- make memory limit arg global so that it can be used at any point
- don't exclude reference parts with lowercase, even with --soft-mask
- use capped allocator for memory limit

## [0.1.3]https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.2...v0.1.3 - 2026-02-02

### Added

- Add counters for alignments to reads mode
- add counters and runtime to reads mode (and refactor)

### Fixed

- use bounded channels to avoid uncontrolled memory growth

## [0.1.2]https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.1...v0.1.2 - 2026-01-30

### Added

- unify the alignment tpool stuff, report alignment cost without TS for reads mode

### Fixed

- coordinate fix in soft mask feature
- update readme to use published twitcher version

## [0.1.1]https://version.helsinki.fi/kraujasp/twitcher/compare/v0.1.0...v0.1.1 - 2026-01-30

### Other

- Add some metadata to Cargo.toml