2 个不稳定版本
0.2.0 | 2022年2月17日 |
---|---|
0.1.0 | 2022年2月16日 |
#334 in 科学
195KB
580 行
proteinogenic
将蛋白质序列生成化学结构为SMILES字符串。
🔌 使用方法
此crate基于purr
,一个提供读取和写入SMILES原语crate。
使用AminoAcid
枚举来编码序列残基,并使用proteinogenic::smiles
构建SMILES字符串。例如使用divergicin 750
extern crate proteinogenic;
let residues = "KGILGKLGVVQAGVDFVSGVWAGIKQSAKDHPNA"
.chars()
.map(proteinogenic::AminoAcid::from_char)
.map(Result::unwrap);
let s = proteinogenic::smiles(residues)
.expect("failed to generate SMILES string");
可以通过使用Peptide
结构体来配置肽的渲染来执行附加修改。目前支持二硫键、链内桥以及头尾环化。例如,我们可以生成环肽如kalata B1的SMILES字符串
extern crate proteinogenic;
let residues = "GLPVCGETCVGGTCNTPGCTCSWPVCTRN"
.chars()
.map(proteinogenic::AminoAcid::from_char)
.map(Result::unwrap);
let mut p = proteinogenic::Protein::new(residues);
p.cyclization(proteinogenic::Cyclization::HeadToTail);
p.cross_link(proteinogenic::CrossLink::Cystine(5, 19)).unwrap();
p.cross_link(proteinogenic::CrossLink::Cystine(9, 21)).unwrap();
p.cross_link(proteinogenic::CrossLink::Cystine(14, 26)).unwrap();
let s = p.smiles()
.expect("failed to generate SMILES string");
此SMILES字符串可以与其他化学信息学工具包一起使用,例如OpenBabel,它可以生成PNG图
请注意,proteinogenic
不仅限于构建SMILES字符串;它实际上可以使用任何purr::walk::Follower
实现者来生成蛋白质公式的内存表示。如果你的代码已经与purr
兼容,那么你将能够轻松地使用蛋白质序列。
extern crate proteinogenic;
extern crate purr;
let sequence = "KGILGKLGVVQAGVDFVSGVWAGIKQSAKDHPNA";
let residues = sequence.chars()
.map(proteinogenic::AminoAcid::from_char)
.map(Result::unwrap);
let mut builder = purr::graph::Builder::new();
proteinogenic::visit(residues, &mut builder);
builder.build()
.expect("failed to create a graph representation");
API尚不稳定,可能会随着purr
引入的更改或为了提高界面的人体工程学而进行更改。
💭 反馈
⚠️ 问题跟踪器
发现了bug吗?有增强请求吗?如果您需要报告或询问问题,请访问GitHub问题跟踪器。如果您正在报告一个bug,请尽可能提供关于问题的详细信息,并尝试在简单、易于复现的环境中重现相同的bug。
📋 更新日志
本项目遵循语义版本控制,并按照保持更新日志格式提供更新日志。
🔍 相关内容
如果您是生物信息学家同时也是Rust程序员,您可能会对以下其他库感兴趣
uniprot.rs
:UniProtKB数据库的Rust数据结构。obofoundry.rs
:OBO Foundry的Rust数据结构。fastobo
:Open生物医学本体论的Rust解析器和抽象语法树。pubchem.rs
:PubChem API的Rust数据结构和API客户端。
📜 许可证
此库遵循开源的MIT许可证。
该项目由Martin Larralde在欧洲分子生物学实验室的Zeller团队的博士课题中开发。