2 个不稳定版本
0.2.0 | 2023 年 2 月 3 日 |
---|---|
0.1.0 | 2023 年 1 月 27 日 |
#5 in #hit
66KB
524 行
Rust 接口到 HMMER C 代码。该库提供基于由 libhmmer-sys 生成的绑定的 Rust 接口,旨在提供更符合 Rust 习惯的接口。
它相对较新,HMMER 的所有功能尚未全部公开。如果您需要尚未公开的功能,请提交一个问题或拉取请求,或者最好是亲自尝试实现它。
由于目前还处于早期阶段,API 可能会发生变化。如果您正在使用此库,请将您的依赖项固定到特定版本。
示例用法,运行 HMMSEARCH
let hmms = Hmm::read_hmms_from_path(std::path::Path::new(
"tests/data/DNGNGWU00010_mingle_output_good_seqs.hmm",
))
.unwrap();
let hmm = &hmms[0];
println!("HMM name: {}", hmm.name());
let mut hmmsearch = HmmerPipeline::new(hmm);
let mut query_seq = EaselSequence::new(Alphabet::Protein);
let seq: &[u8] =
b"MVYSGPNAPIEVGNSLPLSEIPLATEIHNIELTPGKGGQLVRSAGSSAQLLAKEGNYVTLRLPSGEMRFVRKECYATIGQ";
query_seq.replace_sequence(seq).unwrap();
debug!("Query seq replaced;");
hmmsearch.query(&query_seq);
let hmmsearch_result = hmmsearch.get_results();
println!(
"Total number of reported hits: {}",
hmmsearch_result.nreported()
);
for hit in hmmsearch_result.hits() {
println!("New hit:");
println!("Hit name: {}", hit.name());
println!("Hit score: {}", hit.score());
for domain in hit {
println!("New domain:");
println!("Domain score: {}", domain.bitscore());
println!("Domain evalue: {:?}", domain.evalue());
}
}
程序输出
HMM name: S2.1.ribosomal_protein_L2_rplB
Total number of reported hits: 1
New hit:
Hit name:
Hit score: 150.01991
current domain counter 0
New domain:
Domain score: 149.90887
Domain evalue: 1.4970530541655288e-48
依赖项
~9.5MB
~154K SLoC