1个不稳定版本
0.1.0 | 2020年4月28日 |
---|
#2351 在 解析器实现
420KB
3K SLoC
帕托斯
蛋白质数据银行(pdb)文件解析器
⚠️ WIP 这是一个正在进行中的项目。预期会频繁出现破坏性变更。目前请自行承担风险使用
📦 Cargo.toml
patoz = {git = "https//github.com/orhanbalci/patoz"}
🔧 示例
use std::{
fs::File,
io::{BufReader, Read},
path::PathBuf,
};
use patoz::parse;
fn main() {
let mut current_file_path = PathBuf::from(file!());
current_file_path.pop();
current_file_path.pop();
current_file_path.push("1BYI.pdb");
let content = read_file(¤t_file_path);
if let Ok((_, mut res)) = parse(&content) {
println!(
"Classification : {:?}",
res.header().header().unwrap().classification
);
println!("Id Code : {:?}", res.header().header().unwrap().id_code);
println!("Keywords : {:?}", res.header().keywds().unwrap().keywords);
}
}
fn read_file(path: &PathBuf) -> String {
let file = File::open(path).unwrap();
let mut buf_reader = BufReader::new(file);
let mut contents = String::new();
if let Ok(_read_res) = buf_reader.read_to_string(&mut contents) {
contents
} else {
"".to_owned()
}
}
📊 状态
记录解析器状态
标题部分
- 头部
- Obslte
- 标题
- Splt
- Caveat
- Compnd
- Source
- Keywds
- Expdta
- Nummdl
- Mdltyp
- Author
- Sprsde
- Revdat
- Jrnl
- Auth
- Titl
- Edit
- Ref
- Publ
- Refn
- Pmid
- Doi
- Remarks
主要结构部分
异构部分
二级结构部分
连接注释部分
其他特性部分
晶体学和坐标变换部分
坐标部分
连接部分
簿记部分
依赖
~2.5MB
~45K SLoC