#regex #macro #bioinformatics

aa-regex

构建蛋白质序列正则表达式匹配的实用宏

4个版本

0.3.1 2020年9月9日
0.3.0 2020年9月9日
0.2.5 2020年8月23日

#225 in 生物学

每月下载量:31

Apache-2.0

11KB
102

aa-regex

Lifecycle: experimental

Rust Rust Documentation Crates.io version Crates.io license

构建蛋白质序列正则表达式匹配的实用宏。

警告:正在进行中,非常实验性的库,这是我的第一个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