Expand description
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_orderallows for specifying different sort orders for your BAM collection.sequence_dictis a SequenceDictionary like object used for generatingrust_htslib::bam::Headers.wrappersprovides 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
BamSortOrder. - sequence_
dict - Wrapper over
rust_htslib::bam::header, seeSequenceDict. - wrappers
- Helper wrappers over awkward
rust_htslibtypes.
Structs§
- BamBuilder
- Builder for BAM records.
- Read
Frag Spec - A specification for a single read. See
ReadFragSpecBuilderorBamBuilder::frag_builder. - Read
Frag Spec Builder - Builder for
ReadFragSpec. - Read
Pair Spec - A specification for a read pair. See
ReadPairSpecBuilderorBamBuilder::pair_builder. Mate tags and info will be set by default - Read
Pair Spec Builder - Builder for
ReadPairSpec.
Enums§
- Read
Frag Spec Builder Error - Error type for ReadFragSpecBuilder
- Read
Pair Spec Builder Error - Error type for ReadPairSpecBuilder