Releases: Adoni5/cnv_from_bam
v0.4.4 - Bin width fixes, bug fixes, python kwargs and more
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 acceptNone
as file path now- The CI building for maturin action cross for linux
aarch64
hasgcc 4.8.5
, butlibdeflate
just dropped support forgcc <4.9
.libdeflate
is a dependency ofnoodles-bgzf
, so we had to switch tomanylinux-2_28:cross
, which hasgcc 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
Full Changelog: v0.4.3...v0.4.4
v0.4.4-beta.2 Bin width fixes
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
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
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
-
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
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
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
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 toiterate_bam_file
- This fixes a regression in v0.3
What's Changed
Full Changelog: v0.0.3...v0.4.0
v0.0.3 The loggening
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
Highlights
- Reimplemented in pure rust for BAM parsing (using Noodles, thanks @(zaeleus)[https://github.com/zaeleus]!).
- Uses a much more sensible number for threading if not provided.
- Allows iteration of BAMs in a directory
- Adds pre-commit
- Allows the use of either
BAI
orCSI
indexes, or indexless BAMs. - Improved progress bars
What's Changed
- Rewrite in pure rust using noodles by @Adoni5 in #1
- Issue2/add-pre-commit by @Adoni5 in #5
- Fix the readme by @Adoni5 in #6
- Issue4/read bams from directory by @Adoni5 in #7
New Contributors
Full Changelog: v0.0.1...v0.0.2