2 个版本
0.1.1 | 2023 年 9 月 27 日 |
---|---|
0.1.0 | 2023 年 9 月 27 日 |
#201 in 生物学
31KB
620 代码行
KGST
库
包含使用 Ukkonen 算法实现的 K-Truncated Generalized Suffix Tree 的库,以及一个 CLI 工具,用于快速构建和序列化 KGST。
用法
CLI 工具用于构建和序列化 K-Truncated Generalized Suffix trees
用法: gst [命令]
命令: build 从参考 fasta 文件构建后缀树索引 help 打印此消息或给定子命令的帮助信息
选项: -h, --help 打印帮助信息 -V, --version 打印版本信息
lib.rs
:
K-Truncated Generalized Suffix Tree
实现线性时间构建的截断后缀树
示例
use generalized_suffix_tree::suffix_tree::KGST;
// Initalize empty tree
let mut tree: KGST<char, String> = KGST::new('$');
// insert item with corresponding item id
let item_string:Vec<char> = "MKAILVVLLYTFTTADADTLCIGYHANNSTDTVDTVLEKNVTVTHSVNLLENRHNGKLCKLRGVAPLHLGKCNIAGWILGNPECESLSTAGSWSYIVETSNPDNGTCYPGDFINYEELREQLSSVSSFEKFEIFPKTSSWPNHDTNRGVTAACPHDGAKSFYRNLLWLVKKEKENSYPMINKSYTNNKGKEVLVLWAIHHPATSADQQSLYQNANAYVFVGSSKYSKKFEPEIAARPKVRDQAGRMKYYWTLVEPGDKITFEATGNLVVPIYAFALKRNSGSGIIISDTSVHDCDTTCQTPNGAINTSLPFQNIHPVTIGECPKYVKSTKLRMATGLRNIPSIQSRGLFGAIAGFIEGGWTGMIDGWYGYHHQNEQGSGYAADLKSTQNAIDGITNKVNSVIEKMNTQFTAVGKEFNHLERRIENLNKKVDDGFLDIWTYNAELLVLLENERTLDYHDSNVKNLYEKVRSQLKNNAKEIGNGCFEFYHKCDDTCMESVKNGTYDYPKYSEEAKLNREEIDGVKLESTRIYQILAIYSTVASSLVLVVSLGAISFWMCSNGSLQCRICI".chars().collect();
let item_id:String = "World".to_string();
tree.insert(item_id.clone(), item_string.clone(),&0);
// Query if some string is a substring in the tree
let substring_match = tree.substring_match(&item_string[i..i+max_depth+1]);
// Query if some string is a suffix in the tree
let suffix_match = tree.suffix_match(&item_string[i..i+max_depth+1]);
// Clear tree
tree.clear();
依赖关系
~19–30MB
~451K SLoC