Socket
Book a DemoInstallSign in
Socket

aa-regex

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

aa-regex

0.3.1
Source
Cargo
Version published
Maintainers
1
Created
Source

aa-regex

Lifecycle: experimental

Rust Rust Documentation Crates.io version Crates.io license

Utility macros to build regular expression matching protein sequences.

Warning: Work in progress, very experimental library, this is my very first crate.

Motivation

We can use regular expressions to match motifs on peptidic sequences, but writing them is a bit tedious. Some can become very complicated to read and understand. This crate tries to provide macros to help writing regular expressions at compile time. It uses procedural macros to generate strings that can be concatenated and used as regular expressions using the reduced alphabet of 20 amino acids. Any residue can now be limited to any valid amino acid instead of . (which would macth any valid unicode character) or manually writing the 20 amino acids and brackets. Does it make the regular expression search faster? I don't know.

Setup

Add this to your Cargo.toml:

[dependencies]
aa-regex = "0.3"

Usage

Any

use aa_regex::any;

let any = any!(); // => let any = "[ARNDCEQGHILKMFPSTWYV]";
assert_eq!(any, "[ARNDCEQGHILKMFPSTWYV]");

Any of

use aa_regex::any_of;

let any_aromatics = any_of!(W, F, Y); // => let any_aromatics = "[WFY]";
assert_eq!(any_aromatics, "[WFY]");

Except

use aa_regex::except;

let no_proline = except!(P); // => let no_proline = "[ARNDCEQGHILKMFSTWYV]";
assert_eq!(no_proline, "[ARNDCEQGHILKMFSTWYV]");

Aliases

TODO

  • any_aromatics!()
  • except_aromatics!()
  • except_proline!()
  • any_charged!()
  • ...

Concatenation

You can use the std::concat! macro to assemble the regular expression.

let motif = concat!(any_of!(R, H, K), except!(P)); // => let motif = "[RHK][ARNDCEQGHILKMFSTWYV]";
assert_eq!(motif, "[RHK][ARNDCEQGHILKMFSTWYV]")

Ideas & bugs

Please create a new issue on the project repository.

License

Aa-regex is distributed under the terms of the Apache License (Version 2.0). See LICENSE for details.

FAQs

Package last updated on 09 Sep 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.