On Sat, Apr 28, 2012 at 10:38 PM, Robert Hanson <hans...@stolaf.edu> wrote: > Thanks, Kyle. My idea is to replace that very explicit atom typer with a > SMARTS analysis, and I will check carefully to see that it agrees. > > One thing I don't understand is this: Where is the original MMFF94 code? Is > that available? My question is whether this code is an interpretation of > that or an exact duplication of that.
I have never seen the original code and I'm pretty sure that it's not publicly available. I based my implementation on the (seven?) MMFF papers and the MMFF94 validation suite which Geoff previously linked. The MMFF94_opti.log gives a lot of useful output showing atom types, charges and energies for the calculations. Based on that I created an XML file [1] with the expected values which I use to test my implementation. >So, for example, I think this is the original description of atom type 82: > > N5AX 82 N-OXIDE NITROGEN IN 5-RING ALPHA POSITION > N5BX 82 N-OXIDE NITROGEN IN 5-RING BETA POSITION > N5OX 82 N-OXIDE NITROGEN IN GENERAL 5-RING POSITION > > For which I am clueless as to what N5AX and N5BX could possibly mean. > > I think your code describes N5OX as $([nD3r5] -- an SP2 N-oxide with > aromatic N in a 5-membered ring. But that doesn't fit the description. First > of all, I don't think you can have an N-oxide in an aromatic 5-membered > ring. you could in a 6-membered ring, but not in a five. What am I missing > there. > > Not that I trust the description. Surely the REAL description is the > original MMFF94 code. So rather than look at an interpretation of that, I'd > like to see the original. As would have I when I was writing chemkit's implementation :-). > Maybe you can just point me to a molecule that does have an atom type of 82. There are seven molecules containing an atom with type #82 in the validation suite file. Their names are: DICPUA, DICRAI, FENCOQ, FUPJUV, FUPKOQ, GAVKOD and KEPKIZ. > Charges: I think what you are saying is that I should totally ignore what a > MOL file has for formal charges and first create a set of starting point > charges. Yes. However, some of the types for metal atoms (e.g Copper and Iron) require their partial charges which are read from the file. > I think I should be able to do that with SMARTS instead -- applying > the charge model as necessary on the fly. Certainly looks like everything is > there that I'll need. So thanks for that. Can you give me a hint where the > value of a formal charge is coming from in this? > > > chemkit::Real q0 = typer->formalCharge(atom); It is coming from the formal charge assigned during atom typing. In the MmffAtomTyper class the setType() method has an optional third parameter for formal charge which gets stored when the atom type is assigned. The formalCharge() method just returns the formal charge that was assigned. Hope this helps. Cheers, Kyle [1] https://github.com/OpenChemistry/chemkit/blob/master/tests/auto/plugins/mmff/mmff94.expected ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Blueobelisk-discuss mailing list Blueobelisk-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/blueobelisk-discuss