5 个版本

0.0.9 2020年10月21日
0.0.8 2020年10月20日
0.0.6 2020年10月19日
0.0.2 2020年10月18日
0.0.1 2020年10月17日

解析器实现 中排名 #1832


2 个包中使用

MIT 许可证

4MB
2K SLoC

nom-pdb

CI crates.io crates.io crates.io docs.rs

使用 nom 在 Rust 中实现的 PDB 解析器。

注意:此包处于早期开发阶段,API 尚未稳定,因此请勿在生产环境中使用此包。如果您有任何建议,请随时提交问题或提出 PR!

特性

  • 解析结构信息和重要元数据的一个子集。
    • 一级结构
    • 二级结构(片层和螺旋)
    • 坐标和键合
  • 能够处理非标准残基(尚不成熟)
  • 由 serde 提供的 JSON 序列化。

解析的数据存储在 Structure 中,这是一个由 protein-core 包提供的结构。

示例

读取到 JSON

cargo run --example read 1a8o
{
  "header": {
    "classification": "VIRAL PROTEIN",
    "deposition_date": "1998-03-27",
    "id_code": "1A8O"
  },
  "title": "HIV CAPSID C-TERMINAL DOMAIN",
  "authors": [
    "T.R.GAMBLE",
    "S.YOO",
    "F.F.VAJDOS",
    "U.K.VON SCHWEDLER",
    "D.K.WORTHYLAKE",
    "H.WANG",
    "J.P.MCCUTCHEON",
    "W.I.SUNDQUIST",
    "C.P.HILL"
  ],
  "experimental_techniques": [
    "XRayDiffraction"
  ],
  "cryst1": {
    "a": 41.98,
    "b": 41.98,
    "c": 88.92,
    "alpha": 90.0,
    "beta": 90.0,
    "gamma": 90.0,
    "lattice_type": "Primitive",
    "space_group": [
      [
        4,
        3
      ],
      [
        2,
        1
      ],
      [
        2,
        1
      ]
    ],
    "z": 8
  },
  "modres": {
    "MSE": {
      "standard_res": "Met",
      "description": "SELENOMETHIONINE",
      "occurence": [
        [
          "A",
          151
        ],
        [
          "A",
          185
        ],
        [
          "A",
          214
        ],
        [
          "A",
          215
        ]
      ]
    }
  },
  "seqres": [
    [
      "A",
      [
        {
          "Custom": "MSE"
        },
        "Asp",
        "Ile",
        "Arg",
        "Gln",
        "Gly",
        "Pro",
    // snip //
      ]
    ]
  ],
  "models": [
    {
      "atoms":  [
          "id": 1,
          "name": "N",
          "id1": " ",
          "residue": "Ser",
          "chain": "A",
          "sequence_number": 0,
          "insertion_code": " ",
          "x": -12.138,
          "y": 1.867,
          "z": 20.782,
          "occupancy": 1.0,
          "temperature_factor": 67.46,
          "element": "N",
          "charge": 0,
          "hetatom": false
        },
        // snip //
      ]
      "anisou": [
        // snip //
      ],
      "sheets": [
        {
          "id": "A",
          "strands": [
            {
              "start": [
                "A",
                34
              ],
              "end": [
                "A",
                38
              ],
              "sense": "Unknown"
            },
            // snip //
          ]
        },
        // snip //
      ]
      "helices": [
        // snip
      ],
      "connect": [
        // snip //
      ]
    }
  ]
}

注意

参考

路线图

注意:优先级应放在解析结构信息上,而不是元数据,因为后者基本上是无序的文本,并且通常对用户来说没有特别的意义(即使它们有,用户也可以直接检查 PDB 文件)。

标题部分

一级结构部分

异质部分

二级结构部分

连接注释部分

其他特性部分

晶体学和坐标变换部分

坐标部分

连接部分

账目部分

示例 PDB 文件

该目录下assets/中的文件是通过RSCB的FTP服务器使用我的博客文章中描述的方法检索的。以下是存储在该目录中的选定PDB文件的一些特性

  • 1a8o: 一个简单的X射线结构
  • 4f7i: 许多片层
  • 7znf: 溶液NMR;许多模型
  • 3l1p: 与DNA的复合物

依赖关系

~5MB
~101K SLoC