#bam #bioinformatics #genomic #htslib

bam-builder

一个用于轻松构建BAM文件以进行测试的库

5个版本 (1个稳定版)

1.0.0 2023年9月29日
0.1.3 2021年1月18日
0.1.2 2021年1月17日
0.1.1 2021年1月17日
0.1.0 2021年1月17日

#179 in 生物学

MIT 许可证

37KB
654

Rust API docs Crates.io

bam-builder

一个用于轻松构建bams以进行测试的库。

示例

use bam_builder::{bam_order::BamSortOrder, BamBuilder};

fn main() {
    // Create a builder with all defaults except the read_len is 100
    let mut builder = BamBuilder::new(
        100,                    // default read length
        30,                     // default base quality
        "Pair".to_owned(),      // name of sample
        None,                   // optional read group id
        BamSortOrder::Unsorted, // how to sort reads when `.sort` is called
        None,                   // optional sequence dictionary
        None,                   // optional 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();

    // Add the pair to bam builder
    builder.add_pair(records);

    // Write records to a file
    let tmp_file = builder.to_tmp().unwrap();
}

归属

这个库几乎是一个直接克隆自 fgbio的SamBuilder,混入了htsjdk的一些辅助方法。

依赖项

~13–24MB
~410K SLoC