[][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.

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, see SequenceDict.

wrappers

Helper wrappers over awkward rust_htslib types.

Structs

BamBuilder

Builder for BAM records.

ReadFragSpec

A specification for a single read. See ReadFragSpecBuilder or BamBuilder::frag_builder.

ReadFragSpecBuilder

Builder for ReadFragSpec.

ReadPairSpec

A specification for a read pair. See ReadPairSpecBuilder or BamBuilder::pair_builder. Mate tags and info will be set by default

ReadPairSpecBuilder

Builder for ReadPairSpec.