PDBファイルは、オープンソース(BSDライセンス)のchemkitライブラリを使用して、C ++で簡単に読み取りおよび操作できます。
例として、ヘモグロビンのPDBファイル(PDB ID:2DHB)を読み取り、原子の総数、鎖の数、および溶媒にアクセス可能な表面積を出力するコードをいくつか示します。
#include <iostream>
#include <chemkit/polymer.h>
#include <chemkit/polymerfile.h>
#include <chemkit/molecularsurface.h>
using namespace chemkit;
int main()
{
PolymerFile file("2DHB.pdb");
bool ok = file.read();
if(!ok){
std::cerr << "Failed to read file: " << file.errorString() << std::endl;
return -1;
}
Polymer *protein = file.polymer();
if(!protein){
std::cerr << "File is empty." << std::endl;
return -1;
}
std::cout << "Number of Atoms: " << protein->atomCount() << std::endl;
std::cout << "Number of Chains: " << protein->chainCount() << std::endl;
MolecularSurface surface(protein);
surface.setSurfaceType(MolecularSurface::SolventAccessible);
std::cout << "Surface Area: " << surface.surfaceArea() << " A^2" << std::endl;
return 0;
}
出力:
Number of Atoms: 2201
Number of Chains: 2
Surface Area: 14791 A^2
詳細については、上記のクラスのドキュメントを参照してください。