2 个版本
0.1.1 | 2022 年 1 月 15 日 |
---|---|
0.1.0 | 2022 年 1 月 15 日 |
#6 在 #化合物
在 蛋白质生成 中使用
53KB
978 行
pubchem.rs
Rust 数据结构和 PubChem REST API 客户端。
🔌 使用方法
💊 化合物
创建一个 Compound
来查询 PubChem API 的单个化合物。它可以由化合物 ID、化合物名称、InChI 或 InChIKey 或 SMILES 字符串构造而成
extern crate pubchem;
let alanine = pubchem::Compound::new(5950);
let aspirin = pubchem::Compound::with_name("aspirin");
let acetone = pubchem::Compound::with_inchi("InChI=1S/C3H6O/c1-3(2)4/h1-2H3");
let lysine = pubchem::Compound::with_inchikey("KDXKERNSBIXSRK-YFKPBYRVSA-N");
let benzene = pubchem::Compound::with_smiles("C1=CC=CC=C1");
使用方法通过 ureq
查询 REST API。存在针对常见单个属性的方法
let alanine = pubchem::Compound::new(5950);
alanine.title().unwrap(); // "Alanine"
alanine.molecular_formula().unwrap(); // "C3H7NO2"
alanine.canonical_smiles().unwrap(); // "CC(C(=O)O)N"
alanine.isomeric_smiles().unwrap(); // "C[C@@H](C(=O)O)N"
每个方法都将对 PubChem API 执行单个查询,如果您希望一次性检索多个属性,则这种方法效率低下。在这种情况下,使用 properties
方法,并在单个查询中选择要检索的属性
use pubchem::CompoundProperty::*;
let properties = pubchem::Compound::new(5950)
.properties(&[Title, MolecularFormula, CanonicalSMILES])
.unwrap();
properties.molecular_formula; // Some("C3H7NO2")
properties.canonical_smiles; // Some("CC(C(=O)O)N")
properties.isomeric_smiles; // Some("C[C@@H](C(=O)O)N")
要一次性检索多个化合物的元数据,请使用 Compounds
结构,并使用 properties
方法将所有内容打包到单个查询中
use pubchem::CompoundProperty::*;
// retrieve metadata from the three aromatic L-amino acids at once
for prop in pubchem::Compounds::new([6140, 145742, 6305])
.properties(&[Title, IUPACName, ExactMass])
.unwrap()
{
println!(
"[{cid}] {title} {iupac} {mass}g/mol",
cid = prop.cid,
title = prop.title.unwrap(),
iupac = prop.iupac_name.unwrap(),
mass = prop.exact_mass.unwrap(),
);
}
💭 反馈
⚠️ 问题跟踪器
发现了错误?有增强请求?如果您需要报告或询问某些内容,请访问 GitHub 问题跟踪器。如果您正在报告错误,请尽可能提供有关问题的信息,并尝试在简单、易于复现的情况下重现同一错误。
📋 更新日志
此项目遵循 语义版本控制 并提供 更新日志,格式为 Keep a Changelog。
🔍 相关内容
如果您是生物信息学家且是 Rustacean,您可能对以下其他库感兴趣
uniprot.rs
: UniProtKB 数据库的 Rust 数据结构。obofoundry.rs
: OBO Foundry 的 Rust 数据结构。fastobo
: Open 生物医学本体学的 Rust 解析器和抽象语法树。
📜 许可证
此库在开源 MIT 许可证 下提供。
本项目与 PubChem 开发者没有任何关联、赞助或任何形式的认可。它是在 Martin Larralde 在欧洲分子生物学实验室(EMBL)的 Zeller 团队 的博士项目中开发的。
依赖项
~11–19MB
~371K SLoC