Skip to content

Releases: Adoni5/cnv_from_bam

v0.4.4 - Bin width fixes, bug fixes, python kwargs and more

30 Apr 15:24
1fa01c6
Compare
Choose a tag to compare

The Beta releases for 0.4.4 have more detail, but in essence, this adds bug fixes for:

  • Coordinates for returned bins based off of bin width by rounding it the nearest bin_size (default 1000), stopping us from rounding down and having a cumulative drift of the remainder
  • Low coverage read numbers return a NaN when trying to divide by 0 (empty read mapping start bins)
  • iterate_bam_file can accept None as file path now
  • The CI building for maturin action cross for linux aarch64 has gcc 4.8.5, but libdeflate just dropped support for gcc <4.9. libdeflate is a dependency of noodles-bgzf, so we had to switch to manylinux-2_28:cross, which has gcc 7. Means we won't support CentOS 7, but I'm like 70% sure it's EOL anyway and if it isn't I don't care?

And adds the feature of:

  • kwargs to the python function ( documented in README.md) which can set some of the parameters used in the calculation of the CNV.

What's Changed

  • Add kwarg for fixed bin width, ploidy, bin size, number of reads in bin by @Adoni5 in #20

Full Changelog: v0.4.3...v0.4.4

v0.4.4-beta.2 Bin width fixes

30 Apr 11:41
Compare
Choose a tag to compare
Pre-release

Fixes #21 - which helpfully contains no information about the issue.

Basically by not rounding the calculated CNV bin_width, we were duplication the difference between the nearest 1000 (rounded up) and the acual base number for each bin, resulting in contigs which were too long when plotted via

bin_width * number_of_bins

So this has been fixed by rounding the CNV bin_width to the nearest 1000 and using that throughout the calculations.

Adds documentation for the keyword arguments as well.

If confirmed working, will be ready for merging the PR and full release.

Needs the changelog updating!

Full Changelog: v0.4.4-beta.1...v0.4.4-beta.2

v0.4.4-beta.1 - Allows no BAM file to be passed

12 Mar 11:57
Compare
Choose a tag to compare

Allows the bam_path to be set to None, as long as a dictionary of previously binned mapping starts are provided.
If the bin_width kwarg is altered will return the new CNV.

Full Changelog: v0.4.4-beta.0...v0.4.4-beta.1

Version 0.4.4 beta - add fixed bin width

12 Mar 09:39
Compare
Choose a tag to compare

Closes #19

Adds kwargs to iterate_bam_file. Possible values are bin_width, bin_size, ploidy and target_reads.
Fixes these values for the CNV calculations.

This is a Beta release, for testing before being merged into main and fully released.

v0.4.3 Iterative updates and Bug fix

29 Jan 12:44
129b0d5
Compare
Choose a tag to compare
  • It is possible to iteratively add bam files to a continuing count. By passing a dictionary to iterate_bam_file, the intermediate mapping start counts are kept in this dictionary.
    This is limited to parsing files one at a time, rather than by directory.
    See example above under iterative use.

  • Catches bug where metadata (mapped and unmapped count) for a reference sequence in a BAI or CSI file would return None, and crash the calculation. As this was used to calculate the Progress bar total, just skips the offending reference sequence, returning - for both counts. May mean the progress bar can have a lower total than number of reads, but won't matter to final numbers.

  • Adds Cargo tests to CI

What's Changed

Full Changelog: v0.4.2...v0.4.3

v0.4.2 Variance and Sorting

08 Dec 12:59
4419b43
Compare
Choose a tag to compare

Highlights

  • Returns the contig names naturally sorted, rather than in random order!! For example chr1, chr2, chr3...chr22,chrM,chrX,chrY!
    Huge, will prevent some people getting repeatedly confused about expected CNV vs. Visualised and wasting an hour debugging a non existing issue.
  • Returns variance across the whole genome in the CNV result struct.

What's Changed

Full Changelog: v0.4.1...v0.4.2

v0.4.1 Supplementary filtering

01 Dec 16:15
Compare
Choose a tag to compare

Headlines

Small change - can now choose to filter out or include supplementary mappings.

Full Changelog: v0.4.0...v0.4.1

v0.4.0 The Rust Loggening

01 Dec 10:43
558346d
Compare
Choose a tag to compare

Headline

  • Remove PyO3-log for maximum speed. This means that log messages will not be handled by python loggers. Can set log level on call to iterate_bam_file
  • This fixes a regression in v0.3

What's Changed

  • Remove PyO3 log, impment rust side log level filtering by @Adoni5 in #10

Full Changelog: v0.0.3...v0.4.0

v0.0.3 The loggening

29 Nov 19:20
4fb0e0d
Compare
Choose a tag to compare

Highlights

We have added suppression of output by using PyO3-log to filter log messages on the python side
Disable the progress bar for BAM iteration by setting the CI env variable.

What's Changed

Full Changelog: v0.0.2...v0.0.3

v0.0.2 The rustening

29 Nov 14:23
Compare
Choose a tag to compare

Highlights

  1. Reimplemented in pure rust for BAM parsing (using Noodles, thanks @(zaeleus)[https://github.com/zaeleus]!).
  2. Uses a much more sensible number for threading if not provided.
  3. Allows iteration of BAMs in a directory
  4. Adds pre-commit
  5. Allows the use of either BAI or CSI indexes, or indexless BAMs.
  6. Improved progress bars

What's Changed

New Contributors

  • @Adoni5 made their first contribution in #1

Full Changelog: v0.0.1...v0.0.2