samtools / htsjdk

A Java API for high-throughput sequencing data (HTS) formats.
http://samtools.github.io/htsjdk/
278 stars 244 forks source link

Add RANS Nx16 codec (Update CRAM Codecs to CRAM 3.1) #1618

Open yash-puligundla opened 2 years ago

yash-puligundla commented 2 years ago

Description

This PR is part of an effort to upgrade CRAM to v3.1. It adds the RANS Nx16 implementation and adds changes to the existing RANS implementation to accommodate RANS Nx16.

List of Changes:

Test fails: CRAMCodecCorpusTest fails as they require the test files from htscodecs repo.

codecov-commenter commented 1 year ago

Codecov Report

Merging #1618 (c63a253) into master (347c0ac) will increase coverage by 0.423%. Report is 40 commits behind head on master. The diff coverage is 95.548%.

:exclamation: Current head c63a253 differs from pull request most recent head 1979264. Consider uploading reports for the commit 1979264 to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## master #1618 +/- ## =============================================== + Coverage 69.856% 70.279% +0.423% - Complexity 9695 9907 +212 =============================================== Files 703 705 +2 Lines 37772 38427 +655 Branches 6139 6275 +136 =============================================== + Hits 26386 27006 +620 - Misses 8929 8945 +16 - Partials 2457 2476 +19 ``` | [Files](https://app.codecov.io/gh/samtools/htsjdk/pull/1618?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=samtools) | Coverage Δ | | |---|---|---| | [.../samtools/cram/compression/ExternalCompressor.java](https://app.codecov.io/gh/samtools/htsjdk/pull/1618?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=samtools#diff-c3JjL21haW4vamF2YS9odHNqZGsvc2FtdG9vbHMvY3JhbS9jb21wcmVzc2lvbi9FeHRlcm5hbENvbXByZXNzb3IuamF2YQ==) | `74.074% <100.000%> (ø)` | | | [...tools/cram/compression/RANSExternalCompressor.java](https://app.codecov.io/gh/samtools/htsjdk/pull/1618?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=samtools#diff-c3JjL21haW4vamF2YS9odHNqZGsvc2FtdG9vbHMvY3JhbS9jb21wcmVzc2lvbi9SQU5TRXh0ZXJuYWxDb21wcmVzc29yLmphdmE=) | `76.000% <100.000%> (+5.167%)` | :arrow_up: | | [...tools/cram/compression/rans/ArithmeticDecoder.java](https://app.codecov.io/gh/samtools/htsjdk/pull/1618?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=samtools#diff-c3JjL21haW4vamF2YS9odHNqZGsvc2FtdG9vbHMvY3JhbS9jb21wcmVzc2lvbi9yYW5zL0FyaXRobWV0aWNEZWNvZGVyLmphdmE=) | `100.000% <100.000%> (ø)` | | | [...jdk/samtools/cram/compression/rans/RANSDecode.java](https://app.codecov.io/gh/samtools/htsjdk/pull/1618?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=samtools#diff-c3JjL21haW4vamF2YS9odHNqZGsvc2FtdG9vbHMvY3JhbS9jb21wcmVzc2lvbi9yYW5zL1JBTlNEZWNvZGUuamF2YQ==) | `100.000% <100.000%> (ø)` | | | [...ools/cram/compression/rans/RANSDecodingSymbol.java](https://app.codecov.io/gh/samtools/htsjdk/pull/1618?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=samtools#diff-c3JjL21haW4vamF2YS9odHNqZGsvc2FtdG9vbHMvY3JhbS9jb21wcmVzc2lvbi9yYW5zL1JBTlNEZWNvZGluZ1N5bWJvbC5qYXZh) | `100.000% <100.000%> (ø)` | | | [...jdk/samtools/cram/compression/rans/RANSParams.java](https://app.codecov.io/gh/samtools/htsjdk/pull/1618?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=samtools#diff-c3JjL21haW4vamF2YS9odHNqZGsvc2FtdG9vbHMvY3JhbS9jb21wcmVzc2lvbi9yYW5zL1JBTlNQYXJhbXMuamF2YQ==) | `100.000% <100.000%> (ø)` | | | [...s/cram/compression/rans/rans4x8/RANS4x8Params.java](https://app.codecov.io/gh/samtools/htsjdk/pull/1618?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=samtools#diff-c3JjL21haW4vamF2YS9odHNqZGsvc2FtdG9vbHMvY3JhbS9jb21wcmVzc2lvbi9yYW5zL3JhbnM0eDgvUkFOUzR4OFBhcmFtcy5qYXZh) | `100.000% <100.000%> (ø)` | | | [...cram/compression/rans/ransnx16/RANSNx16Params.java](https://app.codecov.io/gh/samtools/htsjdk/pull/1618?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=samtools#diff-c3JjL21haW4vamF2YS9odHNqZGsvc2FtdG9vbHMvY3JhbS9jb21wcmVzc2lvbi9yYW5zL3JhbnNueDE2L1JBTlNOeDE2UGFyYW1zLmphdmE=) | `100.000% <100.000%> (ø)` | | | [...s/cram/structure/CompressionHeaderEncodingMap.java](https://app.codecov.io/gh/samtools/htsjdk/pull/1618?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=samtools#diff-c3JjL21haW4vamF2YS9odHNqZGsvc2FtdG9vbHMvY3JhbS9zdHJ1Y3R1cmUvQ29tcHJlc3Npb25IZWFkZXJFbmNvZGluZ01hcC5qYXZh) | `85.621% <100.000%> (ø)` | | | [...tsjdk/samtools/cram/structure/CompressorCache.java](https://app.codecov.io/gh/samtools/htsjdk/pull/1618?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=samtools#diff-c3JjL21haW4vamF2YS9odHNqZGsvc2FtdG9vbHMvY3JhbS9zdHJ1Y3R1cmUvQ29tcHJlc3NvckNhY2hlLmphdmE=) | `92.000% <100.000%> (+0.696%)` | :arrow_up: | | ... and [8 more](https://app.codecov.io/gh/samtools/htsjdk/pull/1618?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=samtools) | | ... and [25 files with indirect coverage changes](https://app.codecov.io/gh/samtools/htsjdk/pull/1618/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=samtools)
yash-puligundla commented 1 year ago

Hi @cmnbroad I have addressed all the feedback so far. Please let me know if you notice anything. Thanks!

yash-puligundla commented 8 months ago

@cmnbroad Thank you for your comments. I have addressed all of them so far. Ready for the next round of review.