Nah, real vacation is next week. OK, this should be fixed at http://chemapps.stolaf.edu/jmol/docs/examples-12/Jmol-12.zip
Bob On Sat, Aug 7, 2010 at 4:38 PM, Otis Rothenberger <osrot...@chemagic.com>wrote: > Bob, > > I thought maybe you were taking a well deserved vacation. It sounds like it > was a working vacation. > > The apology is mine. In my usual verbose style, the guts of the problem is > in my third email. The square planar notation in the alkene SMILES is > throwing a monkey wrench into compare and find. All of this worked so well > in the examples we looked at that I missed the point that alkenes were > presenting this problem. > > FYI, NIH translate recognizes these @SP# alkene SMILES, at least it returns > a molfile. Daylight Depict throws errors, but still renders a structure. > > > Otis > > Otis Rothenbergerchemagic.com > > > On 8/7/2010 5:19 PM, Robert Hanson wrote: > > sorry -- was at the BCCE conference.... > > var i = {*}.atomIndex.max + 1; > select within(branch, {atomIndex = i}, {atomIndex=0}); > > > What is the intent of that, Otis? I'm pretty sure that's the same as > > select molecule=1 > > right? > > Bob > > On Wed, Aug 4, 2010 at 10:16 AM, Otis Rothenberger > <osrot...@chemagic.com>wrote: > >> The following Jmol script works flawlessly with two small (C6 ish) >> molecules as they undergo model kit editing in the same frame: >> >> var sm = {*}.find('SMILES');var i = {*}.atomIndex.max + 1;select >> within(branch, {atomIndex = i}, {atomIndex=0});var x = >> {selected}.size;var y={*}.size;var z = y - x;var w = 'The models are >> identical.';if (z != 0){var i = compare({selected},{not >> selected},'SMILES',sm,'stddev');if (i == 'NAN'){w = 'The models are NOT >> identical.'};echo @w;} >> >> I mean flawlessly, including stereochemistry. >> >> With large models (e.g. some monoterpenes), the behavior of the script >> is erratic - works once and stops; does not work at all, throwing a >> script error after if (i == 'NAN'), or reporting incorrect comparison >> results. To make sure that the assumption that I was making with the >> opening var sm = {*}.find('SMILES') was correct, I rearranged the script >> to place this fragment in a more certain position: >> >> var i = {*}.atomIndex.max + 1;select within(branch, {atomIndex = i}, >> {atomIndex=0});var sm = {selected}.find('SMILES');var x = >> {selected}.size;var y={*}.size;var z = y - x;var w = 'The models are >> identical.';if (z != 0){var i = compare({selected},{not >> selected},'SMILES',sm,'stddev');if (i == 'NAN'){w = 'The models are NOT >> identical.'};echo @w;} >> >> Same result. >> >> Is this a matter of the compare function inherently "stressing out" >> with model size, or is there a logic error in my script code. Things >> seem to go erratic at about 20-30 total atoms. >> > > definitely not. I've compared the entire ribosomal large subunit. > >> >> By way of example with two pulegone models, the first run of the script >> produces the models identical echo. After the edit of one model (H to Cl >> back to H, just to do an edit back to identical), I get the following >> history: >> >> > sounds like a good test. > > >> var sm = {*}.find('SMILES'); >> > > ..SMILES for both models as though one... > > >> var i = {*}.atomIndex.max + 1; >> select within(branch, {atomIndex = i}, {atomIndex=0}); >> > > ...same as select molecule=1, I think > > >> 27 atoms selected >> var x = {selected}.size; >> var y={*}.size; >> var z = y - x; >> var w = 'The models are identical.'; >> if (z != 0); >> > > ... true if there is more than one molecule, I think... > > >> var i = compare({selected},{not selected},'SMILES',sm,'stddev'); >> script ERROR: >> >> Otis >> >> > > OK, one thing is that Jmol isn't numbering molecules correctly after atoms > are deleted. But that's not the problem here. What you seem to be doing is > using the compare command with SMILES -- meaning a conformational search. A > value of 0.0 for i would mean the two models have the same configuration AND > conformation. "NAN" would mean they failed the SMILES match and so are > nonidentical. > > The way I was thinking to categorize two models is this: > > var m1 = {molecule=1} # or whatever > var m2 = {molecule=2} # or whatever > > # check molecular formulas > > var sameMF = (m1.find("MF") == m2.find("MF")) > > # get SMILES string for molecule 1 > > var smiles = m1.find("SMILES") > var smiles_enantiomer = > sm.replace("@@","!@").replace("@","@@").replace("!@@","@") > var smiles_nostereo = smiles.replace("@","") > > # note: we can't just compare SMILES strings like we can molecular formulas > # because SMILES strings here are not "cannonical" - but that is no problem > at all > # instead, we "find" the SMILES string for one model in the other. Using > "SMILES" > # here instead of "SMARTS" guarantees an exact search and not a > substructure search > > var identical = sameMF && (m2.find("SMILES",smiles)> 0) > var configurationalIsomers = sameMF && !identical && > (m2.find("SMILES",sm_nostereo) > 0) > var enantiomers = configurationalIsomers && > (m2.find("SMILES",smiles_enantiomer) > 0) > var diastereomers = configurationalIsomers && !enantiomers > var constitutionalIsomers = sameMF && !identical && !configurationalIsomers > > > ...but "molecule=2" won't work right now after you delete atoms. It's fixed > for Jmol 12.1.2 and Jmol 12.0.4 > > Bob > > > > > >> -- >> Otis Rothenberger >> chemagic.com >> >> >> >> >> >> ------------------------------------------------------------------------------ >> The Palm PDK Hot Apps Program offers developers who use the >> Plug-In Development Kit to bring their C/C++ apps to Palm for a share >> of $1 Million in cash or HP Products. Visit us here for more details: >> http://p.sf.net/sfu/dev2dev-palm >> _______________________________________________ >> Jmol-users mailing list >> Jmol-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/jmol-users >> > > > > -- > Robert M. Hanson > Professor of Chemistry > St. Olaf College > 1520 St. Olaf Ave. > Northfield, MN 55057 > http://www.stolaf.edu/people/hansonr > phone: 507-786-3107 > > > If nature does not answer first what we want, > it is better to take what answer we get. > > -- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900 > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by > > Make an app they can't live without > Enter the BlackBerry Developer Challengehttp://p.sf.net/sfu/RIM-dev2dev > > > _______________________________________________ > Jmol-users mailing > listjmol-us...@lists.sourceforge.nethttps://lists.sourceforge.net/lists/listinfo/jmol-users > > > > ------------------------------------------------------------------------------ > This SF.net email is sponsored by > > Make an app they can't live without > Enter the BlackBerry Developer Challenge > http://p.sf.net/sfu/RIM-dev2dev > _______________________________________________ > Jmol-users mailing list > Jmol-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jmol-users > > -- Robert M. Hanson Professor of Chemistry St. Olaf College 1520 St. Olaf Ave. Northfield, MN 55057 http://www.stolaf.edu/people/hansonr phone: 507-786-3107 If nature does not answer first what we want, it is better to take what answer we get. -- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900
------------------------------------------------------------------------------ This SF.net email is sponsored by Make an app they can't live without Enter the BlackBerry Developer Challenge http://p.sf.net/sfu/RIM-dev2dev
_______________________________________________ Jmol-users mailing list Jmol-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jmol-users