[−][src]Crate bam_builder
Simple wrapper over rust_htslib::bam
for building collections of BAM records for testing.
Provides an easy to use builder pattern for creating both paired end and single reads. Additionally this library provides nice wrappers and extensions on rust_htslib and intends to grow them over time.
bam_order
allows for specifying different sort orders for your BAM collection.sequence_dict
is a SequenceDictionary like object used for generatingrust_htslib::bam::Header
s.wrappers
provides some convenience types for awkward types likerust_htslib::bam::record::Aux
.
Example
use bam_builder::{bam_order::BamSortOrder, BamBuilder}; let mut builder = BamBuilder::new( 100, // default read length 30, // default base quality "Pair".to_owned(), // name of samples None, // optional read group id BamSortOrder::Unsorted, // how to sort reads when `.sort` is called None, // optional sequence_dict None, // seed used for generating random bases ); // Create a builder for read pair spec let records = builder .pair_builder() .contig(0) // reads are mapped to tid 0 .start1(0) // start pos of read1 .start2(200) // start pos of read2 .unmapped1(false) // override default of unmapped .unmapped2(false) // override default of unmapped .bases1("A".repeat(100)) // override default random bases with "A"s .bases2("C".repeat(100)) // override default random bases with "C"s .build() // inflate the underlying records and set mate info .unwrap(); // Inflate the underlying BAM bam records and add to builder builder.add_pair(records); // Write to temp file let tmp = builder.to_tmp().unwrap();
Modules
bam_order | Specification for how to sort BAM records based on |
sequence_dict | Wrapper over |
wrappers | Helper wrappers over awkward |
Structs
BamBuilder | Builder for BAM records. |
ReadFragSpec | A specification for a single read. See |
ReadFragSpecBuilder | Builder for |
ReadPairSpec | A specification for a read pair. See |
ReadPairSpecBuilder | Builder for |