4个版本
0.3.1 | 2020年9月9日 |
---|---|
0.3.0 | 2020年9月9日 |
0.2.5 | 2020年8月23日 |
#225 in 生物学
每月下载量:31
11KB
102 行
aa-regex
构建蛋白质序列正则表达式匹配的实用宏。
警告:正在进行中,非常实验性的库,这是我的第一个crate。
动机
我们可以使用正则表达式在肽序列上匹配基序,但编写它们有点繁琐。一些可能变得非常复杂,难以阅读和理解。这个crate试图提供宏,以帮助在编译时编写正则表达式。它使用过程宏生成字符串,可以使用20种氨基酸的简写字母表进行连接和作为正则表达式使用。现在任何残基都可以限制为任何有效的氨基酸,而不是 .
(它会匹配任何有效的Unicode字符)或手动编写20种氨基酸和大括号。这会使正则表达式搜索更快吗?我不知道。
设置
将以下内容添加到您的 Cargo.toml
[dependencies]
aa-regex = "0.3"
用法
任何
use aa_regex::any;
let any = any!(); // => let any = "[ARNDCEQGHILKMFPSTWYV]";
assert_eq!(any, "[ARNDCEQGHILKMFPSTWYV]");
任何
use aa_regex::any_of;
let any_aromatics = any_of!(W, F, Y); // => let any_aromatics = "[WFY]";
assert_eq!(any_aromatics, "[WFY]");
除了
use aa_regex::except;
let no_proline = except!(P); // => let no_proline = "[ARNDCEQGHILKMFSTWYV]";
assert_eq!(no_proline, "[ARNDCEQGHILKMFSTWYV]");
别名
待办事项
any_aromatics!()
except_aromatics!()
except_proline!()
any_charged!()
- ...
连接
您可以使用 std::concat!
宏来组装正则表达式。
let motif = concat!(any_of!(R, H, K), except!(P)); // => let motif = "[RHK][ARNDCEQGHILKMFSTWYV]";
assert_eq!(motif, "[RHK][ARNDCEQGHILKMFSTWYV]")
想法 & 错误
请在项目仓库上创建一个新的问题。
许可证
Aa-regex在Apache许可证(版本2.0)的条款下分发。有关详细信息,请参阅LICENSE。
依赖关系
~1.5MB
~36K SLoC