在 C 中解析蛋白质结构数据

计算科学 计算生物学 数据库 C
2021-12-01 22:32:41

我的背景是基因组学,但我最近一直在研究与蛋白质结构相关的问题。我用 C 语言编写了一些相关程序,在此过程中从头开始构建我自己的 PDB 文件解析器。我并不担心制作一个真正强大的解析器,我只知道自己构建一个将是强迫自己真正理解 PDB 格式的最佳方式。

现在我已经完成了这个过程,我正在寻找更强大和成熟的东西。是否有任何用 C 语言实现的开源蛋白质结构库?我可以在谷歌上找到一些,但我以前从未听说过它们,它们似乎不是很成熟或稳定。一个稍微相关的问题:每个人真的都在使用 Python 进行所有这些类型的计算吗?或自制代码?

PS。我本质上是在寻找一个包含 PDB 文件解析器、用于计算键角、键长、扭转角、表面可及表面积等的函数的库。

4个回答

有一个相当成熟的C++ 库。这可能与您将接近 C。我自己还没有找到任何可用的 C 库。您可以使用 C++ 库,并且仍然在 C++ 代码中使用 C 语言编写大部分extern C { }代码。

OpenBabel是 C++,但它通常用于一般结构的东西——它的主要重点是在各种格式之间的转换和读取的能力。不过,据我所知,它无法计算 SAS 面积。

从您的“相关问题”开始:我在 Python 中进行 PDB 解析,即使后续处理需要以某种编译语言完成以提高速度。C 根本不是一种很好的解析语言,尤其是对于像 PDB 这样的混乱格式。这可能就是为什么 C 语言中没有任何稳定和成熟的 PDB 解析器的原因。

假设您的目标是使用 PDB 中的结构,您可以考虑的其他事情是使用 mmCIF 格式而不是 PDB 格式。mmCIF 更加规则,因此更容易解析。您还可以从 PDB 条目的 mmCIF 版本获得比 PDB 版本更多的可解析信息。您可以在 PDB 网站上找到用于 mmCIF 的 C 解析器(称为 CIFPARSE),尽管您会注意到它的开发已被放弃,取而代之的是称为 CIFPARSE-OBJ 的 C++ 重写。

我知道这是关于 C 的,但是有一个很好的方法可以使用 GLGRAPHICS 库来做到这一点,它在处理中实现了 OPENGL(一个基于 java 的框架,具有类似 c++ 的语法)。无论您使用哪种语言,OpenGL 基本相同,因此 Java 不应该对性能造成太大影响。无论如何,GLGRAPHICS 库带有一个开箱即用的 pdb 查看器。它超级容易调整,处理论坛有一个非常敏感的追随者。这可能是一个很好的起点。

GLGRAPHICS 库 http://sourceforge.net/projects/glgraphics/files/glgraphics/1.0/ 参见 GLGRAPHICS/examples/PDBview

处理 http://processing.org/

最后,你可能想看看这个(更少的 3d 但仍然很酷的例子)http://www.mydisk.se/tgn380/webpage/RECEPTOR/