Bob,

I tacked your compare suggestions on to the end of our two model (same 
frame) identity check. After a 1 second delay, your isomer type 
comparison is displayed. In case users interested in this type of thing 
missed your code in my previous verbose email chain re SMILES problems, 
I'll post it in this separate note. All I can say is great and useful 
toy. I've been playing with variations  (2R,3R)-2-bromo-3-chlorobutane 
and others way past bed time.

Otis

Bob Hanson Wrote:

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

-- 
Otis Rothenberger
chemagic.com




------------------------------------------------------------------------------
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
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to