User 0cd5667845
28-03-2016 15:27:43
Hi,
I am using the following snippet to calculate the counts of hydrogen bond donors and acceptors:
private ChemJEP hBondAcceptorCountEvaluator;
private ChemJEP hBondDonorCountEvaluator;
Evaluator evaluator = new Evaluator();
hBondAcceptorCountEvaluator = evaluator.compile("acceptorCount()", MolContext.class);
hBondDonorCountEvaluator = evaluator.compile("donorCount()", MolContext.class);
MolContext molContext = new MolContext(molecule);
hBondAcceptorCount = (int) hBondAcceptorCountEvaluator.evaluate_double(molContext);
hBondDonorCount = (int) hBondDonorCountEvaluator.evaluate_double(molContext);
However, I am also interested in determining the locations of the hydrogen bond donors and acceptors. Presumably there is some pattern running in the evaluator that locates these sites, before simply returning the total count. Is it possible to return the hydrogen bond donor/acceptor locations using ChemJEP and/or Evaluator, or even some other ChemAxon API?
PS. I understand that without first cleaning the molecule, there will be no coordinates assigned to the atoms, and so there would also likely be no coordinates assigned to the hydrogen bond donor/acceptor sites. I am also using the Cleaner to generate 3D coordinates, so ideally, I would like to find the 3D coordinates of the hydrogen bond donor/acceptor sites. However, if it is possible to just locate the hydrogen bond donor/acceptor sites by reference to some atom or set of atoms, that would also be a workable solution.
Thank you!
Richard
ChemAxon d51151248d
04-04-2016 13:37:37
Hi Richard,
Thank you for letting us know this issue. We are investigating it and will come back to you soon.
Daniel
User 0cd5667845
04-04-2016 15:22:49
Hi Daniel,
It is not necessarily an issue, I am just trying to establish what is the correct way to obtain the locations of the HBA and HBD sites. In the meantime, I have found this method which seems to work:
PMapper pm = null;
PMap pmap = null;
pm = new PMapper(new File(PATH_OF_XML_FILE));
PSymbols symbols = pm.getSymbols();
pmap = pm.createFeatureMap(inputMol);
String delimitedSymbols = pmap.toString(symbols);
and then find the atom indices in this semi-colon delimited String which contain the letters 'a' or 'd' (HBA and HBD respectively). These indices line up with the indices in inputMol, so I can identify the HBA and HBD atoms.
If there is a better way than this, I would certainly be interested in hearing about it, but this does seem to meet my need.
Thank you,
Richard
ChemAxon 5fc3e8d7d0
20-04-2016 12:40:14
Dear Richard,
Try to use our Hydrogen Bond Donor Acceptor (HBDA) Plugin (Documentation, API doc).
The following code example demonstrates how to identify HBDA atoms:
final Molecule mol = ...
// create and run calculation
final HBDAPlugin plugin = new HBDAPlugin();
plugin.setMolecule(mol);
plugin.run();
// HBA atoms
for (int i = 0; i < mol.getAtomCount(); i++) {
if (plugin.getAcceptorSiteCount(i) > 0) { // for HBD atoms: getDonorSiteCount(i)
final MolAtom atom = mol.getAtom(i);
// do something with the atom ...
}
Best regards,
Laszlo
User 4535fea438
26-08-2016 02:27:14
That's quite effective. I will suggest it should be tried in our research for hsp90 inhibitors design.