1 个不稳定版本
新增 0.2.1 | 2024 年 8 月 24 日 |
---|
#1 in #hmm
每月 156 次下载
用于 hmmsearch_rs
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
依赖项
~10MB
~165K SLoC