#生物信息学 #sasa #rust

rust-sasa

RustSASA 是一个 Rust 库,使用 Shrake-Rupley 算法计算给定蛋白质结构中每个原子的绝对溶剂可及表面积(ASA/SASA)

4 个版本

0.2.2 2024年4月30日
0.2.1 2024年4月12日
0.2.0 2024年4月12日
0.1.1 2024年2月11日
0.1.0 2024年2月11日

#100生物学

42 每月下载

MIT 许可证

82KB
660

RustSASA

GitHub Actions Workflow Status Crates.io Downloads (recent) Crates.io License

RustSASA 是一个 Rust 库,使用 Shrake-Rupley 算法计算给定蛋白质结构中每个原子的绝对溶剂可及表面积(ASA/SASA)[1]。它可以在 Rust 和 Python 中使用!

功能

  • 🦀 使用纯 Rust 编写
  • ⚡️ 比 Biopython 快 3 倍,比 Freesasa 快 ~120%
  • 🧪 完整测试覆盖率

在 Python 中使用 🐍

现在您可以在 Python 中使用 RustSasa 来加速您的脚本!请查看 rust-sasa-python

安装

pip install rust-sasa-python

示例

from rust_sasa_python import calculate_sasa_at_residue_level
residue_sasa_values = calculate_sasa_at_residue_level("path_to_pdb_file.pdb") # Also supports mmCIF files!

查看完整文档 这里

在 Rust 中使用 🦀

use pdbtbx::StrictnessLevel;
use rust_sasa::{Atom, calculate_sasa, calculate_sasa_internal, SASALevel};
let (mut pdb, _errors) = pdbtbx::open(
             "./example.cif",
             StrictnessLevel::Medium
).unwrap();
let result = calculate_sasa(&pdb,None,None,SASALevel::Residue);

完整文档可以在 这里 找到

基准测试

基准测试是在配备 8GB 内存和 8 个核心的 M2 苹果 Mac 上使用蛋白质 AF-A0A2K5XT84-F1(AlphaFold)进行的。

  • Biopython: ~150ms

  • Freesasa: ~90ms

  • RustSASA: ~40ms

引用

1: Shrake A, Rupley JA. 蛋白质原子的溶剂环境和暴露。溶菌酶和胰岛素。J Mol Biol. 1973 Sep 15;79(2):351-71. doi: 10.1016/0022-2836(73)90011-9. PMID: 4760134.

依赖项

~8MB
~163K SLoC