1个不稳定版本

0.1.0 2020年4月28日

#2351解析器实现

MIT 许可证

420KB
3K SLoC

帕托斯

蛋白质数据银行(pdb)文件解析器

Build Status License

⚠️ 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(&current_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()
    }
}

📊 状态

记录解析器状态

标题部分

主要结构部分

异构部分

二级结构部分

连接注释部分

其他特性部分

晶体学和坐标变换部分

坐标部分

连接部分

簿记部分

依赖

~2.5MB
~45K SLoC