2个版本
0.0.5 | 2020年10月20日 |
---|---|
0.0.2 | 2020年10月18日 |
#254 in 生物学
2MB
7.5K SLoC
protein
Rust中的结构生物学
示例
让我们从一个PDB文件中读取蛋白质结构并绘制拉马钱丹图!
use csv::Writer; // the crate `csv` is required if you want to output csv
use protein::{
io::pdb::Parser, // the PDB parser that parses PDB file into a `Structure`
analysis::ModelAnalysis // `Structure` alone only stores data.
// Functions for analysing the `Structure` are provided by separate traits
};
use std::fs;
fn main() {
let data = fs::read("assets/4f7i.pdb").unwrap();
let (_, structure) = Parser::parse(&data).unwrap();
let (phis, psis) = structure.models[0].ramachandran();
// the `.ramachandran()` function is provided by the `ModelAnalysis` trait
let mut wtr = Writer::from_path("examples/ramachandran.csv").unwrap();
wtr.write_record(&["phi", "psi"]).unwrap();
for (&phi, &psi) in phis.iter().zip(psis.iter()) {
wtr.write_record(&[phi.to_string(), psi.to_string()])
.unwrap()
}
wtr.flush().unwrap();
}
这将生成一个包含两个列表示phi和psi角度的csv文件。然后我们可以在R中读取这个csv文件并绘制它(不幸的是,我在Rust中没有图表库)
您可以直接使用以下示例:cargo run
cargo run --example ramachandran
依赖项
~8.5MB
~96K SLoC