1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
#include <BALL/FORMAT/PDBFile.h>
#include <BALL/STRUCTURE/structureMapper.h>
using namespace std;
using namespace BALL;
int main(int argc, char** argv)
{
if (argc != 3)
{
cerr << "Need two PDB file names. Aborting." << endl;
return(0);
}
PDBFile file1(argv[1]);
System system1;
file1 >> system1;
file1.close();
PDBFile file2(argv[2]);
System system2;
file2 >> system2;
file2.close();
if (system1.countAtoms() != system2.countAtoms())
{
cerr << "Different atom counts: " << system1.countAtoms()
<< " : " << system2.countAtoms() << endl;
return(0);
}
StructureMapper mapper(system1, system2);
mapper.calculateDefaultBijection();
if (mapper.getBijection().size() != system1.countAtoms())
{
cout << "WARNING: only " << mapper.getBijection().size()
<< " of " << system1.countAtoms() << " atoms mapped!"
<< endl;
}
cout << "RMSD is " << mapper.calculateRMSD() << endl;
return(0);
}
|