I was working on an approach to simplify an old Javascript stoichiometric routine that I have to determine the mass of model fragments in the Jmol window - i.e. click break bonds and look at the resulting masses to emulate MS fragmentation. While playing around, I noticed the Jmol is ideally suited to doing this with very little code. Specifically, with a little Regular Expression magic, Jmol’s reporting of molecular formulas IS a stoichiometric calculation - in retrospect, no surprise. Any molecular formula IS a stoichiometric calculation. Regular Expressions involve real sweat equity, at least for me, so I’ll share this snippet with any who may have an interest. Given the code length of my old (20 years) approach. I’m just shaking my head.
The Comments: 1) The element symbols are unique variables. The masses below are mono-isotopic most abundant for MS “animation" 2) Standard Jmol to get molecular formula JavaScript array of the models in the window 3) Regular Expression magic that converts each formula to a stoichiometric statement and the resulting value The JavaScript - be careful of possible Rich Text smart quotes if you copy/paste: H=1.007825;Li=7.016005;Be=9.012183;B=11.009305;C=12;N=14.003074;O=15.994915;F=18.998403;Cl=34.968853;Br=78.918336;I=126.904477;Na=22.989770;Mg=23.985045;Al=26.981541;Si=27.976928;P=30.973763;S=31.972072; var strMods = Jmol.evaluateVar(jmolApplet0, "getProperty('moleculeInfo.mf')").toString().split(","); for (var i = 0; i < strMods.length; i++) { strMods[i] = strMods[i].replace(/([a-z])\s([0-9])/ig, '$1\*$2').replace(/([0-9])\s([a-z])/ig, '$1\+$2');alert(eval(strMods[i])); } Otis ------------------------------------------------------------------------------ _______________________________________________ Jmol-users mailing list Jmol-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jmol-users