Comments (2)
noodles 0.20.0 / noodles-cram 0.13.0 fixes the main issue of building the substitution matrix and using the new substitution codes (plus a slew of CRAM I/O fixes). It passes your sample input, but do tell if there are any other issues. Some additional notes:
-
If you're not using
Reader::records
but decoding raw records directly from the slice (Slice::records
), you must resolve the CRAM records (Slice::resolve_records
) before sending them to the writer. (This concept will likely be removed in the future.) -
The CRAM reader and writer now use
fasta::Repository
, a concurrent sequence cache that uses a storage adapter to look up and load sequence data. With an indexed FASTA file, you no longer have to load all the reference sequences beforehand, e.g.,let reader = File::open(fasta_src).map(BufReader::new).map(fasta::Reader::new)?; let index = fai::read(fasta_index_src)?; let adapter = IndexedReader::new(reader, index); let repository = fasta::Repository::new(adapter);
from noodles.
Thanks for the sample input; it's very useful!
The major issue here is that the writer builds and uses the new substitution matrix too late in the write process and is actually producing incorrect counts. Furthermore, new substitution codes are never replaced in the input record.
I'll work on this this week.
from noodles.
Related Issues (20)
- Documentation is opaque on 0 vs 1 indexing, and whether regions are right-inclusive or not. HOT 1
- Seamless parsing of BAM/SAM HOT 4
- noodles sam successfully read the recording but failed to write it HOT 2
- noodles bam failled to write record with large mapping position. HOT 1
- Alignment span calculation (bug or misunderstanding) HOT 4
- Installation error HOT 2
- question: how to convert cigar from bytes. HOT 4
- `Send`-able `Repository`? HOT 2
- Fixed-length `Character` fields HOT 2
- Why `Flags::PROPERLY_ALIGNED` instead of `Flags::PROPERLY_PAIRED` as name? HOT 2
- BGZF invalid header really strict HOT 6
- bgzf/multithreaded_writer: Add builder HOT 1
- Parsing VCF fails for ID in header HOT 1
- Async BGZF readers eagerly evaluate blocks HOT 2
- migrating from 0.49 to 0.65: generating invalid BAM files HOT 2
- bgzf MultiThreadedReader Missing Error Message HOT 2
- sam/io/writer/record: Increase visibility of SAM record CIGAR string serializer HOT 2
- util feature HOT 4
- record_buf object to sam::Record object? HOT 2
- Getting raw record lines with lazy records HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from noodles.