I came across another problem in converting PDB-files to MOL2 files concerning proper protonation states.
I used the following command (version 2.2.1) for the conversion
babel -p7 1apt.pdb 1apt.mol2
The problem is, that some hydroxy groups are not protonated at all (see manose "MAN" and ligand "LTA" residue identifier).
I'm new to the openbabel source, but decided to have a look at the source code and think I identified the "problem" in being
in (called from PDBFormat::ReadMolecule(....) ) :
data.cpp : bool OBResidueData::AssignBonds(OBMol &mol,OBBitVec &bv)
where the oxygen (sp3 hybridization) is assigned per default the formal charge "-1"
726 else if (bond->GetBO() == 1)
727 {
728 a1->SetType("O-");
729 a1->SetHyb(3);
730 a1->SetFormalCharge(-1);
731 }
732 continue;
733 }
wouldn't it make sense to change the source code into ::
728 a1->SetType("O3");
729 a1->SetHyb(3);
730 a1->SetFormalCharge(0);
and leave the de-protonation of carboxyl groups to the ph-model dependent functions (with phmodel.txt) ?
Comments are greatly appreciated,
F
ps> I tried also to protonate all groups by running "babel -p1 1apt.pdb 1apt.mol2", which surprisingly left the carboxylic acids
unprotonated (as well as the mannose hydroxy groups), although there is a transformation rule defined in "phmodel.txt" for the
acids. Do these transformation rules only work "from left to right" ?
example protein PDB file
This looks OK to me, so I'm going to commit it (r3102) for 2.2.2.
The ph-model dependent functions are new in version 2.2, so this code was not written assuming such behavior would occur.
This Tracker item was closed automatically by the system. It was
previously set to a Pending status, and the original submitter
did not respond within 14 days (the time period specified by
the administrator of this Tracker).