Sure, that should be easy. I'd like to have an example of that to show
people.
The WebGL widget can sketch in 3D, but not without the server. To be
clear: The primary selling point of ChemDoodle 3D is that it works under
HTML5 and WebGL, components that will soon be available on mobile devices
and most web browsers. (Right now it is limited to a few cutting-edge
browsers such as Chrome and Firefox 4, and some Mac browsers, but that is
expected to improve.) The web-based JavaScript is limited to just the basic
functionality -- rotating a model, changing its appearance some, that sort
of thing. The server is called for these services:
contactServer("optimize"...
contactServer("readSMILES"...
contactServer("writeSMILES"...
contactServer("saveFile"...
contactServer("getMoleculeFromDatabase"...
contactServer("getOptimizedPDBStructure"...
contactServer("calculate"...
contactServer("simulateNMR"...
contactServer("simulateNMR"...
contactServer("simulateMassParentPeak"...
Of those, Jmol could do optimizing, reading and writing of SMILES strings,
saving the file (if it's the signed applet), getting a molecule from the NCI
or PDB database, and at least adding hydrogens to a PDB structure. The other
features are more sophisticated and not accessible via Jmol.
For the optimization, you could go with Jmol's load with the 2D->3D
conversion, but I think a better option would be to have Jmol create the
SMILES string and just end it to NCI, where they have a better 2D to 3D
conversion. That's certainly easy enough to do.
For the Jmol 2D->3D conversion, there should be no problem using a
page-based Jmol instead of the iChemLabs server for 2D to 3D conversion. You
just write a bit of JavaScript that looks like this:
jmolScript("load DATA \"model\"\n" +
ChemDoodle.writeMolFileOrSomethingLikeThat() + "\nend \"model\" filter
'2D'")
I'm not clear on what that ChemDoodle call is to get the mol file, but it
should be easy.
For the NCI conversion, it would look something like this:
jmolScript("load DATA \"model\"\n" +
ChemDoodle.writeMolFileOrSomethingLikeThat() + "\nend \"model\" filter
'2D';load SMILES @{{*}.find('smiles')}")
This just says (1) load the ChemDoodle sketch into Jmol as a 2D structure
(doing at least a rough minimization); get it's SMILES string, and pass that
to NCI, loading that structure instead. In pure JmolScript it would look
like this:
load Data "model"
string
__Jmol-12_06161113223D 1 1.00000 0.00000 0
http://www.ichemlabs.com
5 4 0 0 0 0 999 v2000
-0.8660 -1.0000 0.0000 C 0 0 0 0 0 0
-0.0000 -0.5000 0.0000 C 0 0 0 0 0 0
0.8660 -1.0000 0.0000 C 0 0 0 0 0 0
-0.0000 0.5000 0.0000 C 0 0 0 0 0 0
0.8660 1.0000 0.0000 C 0 0 0 0 0 0
1 2 1 0 0 0
2 3 1 0 0 0
2 4 1 0 0 0
4 5 1 0 0 0
M END
end "model" filter "2D";load SMILES @{{*}.find('smiles')}
Again, for that you need the signed applet. Or, actually you don't, because
your page will have JQuery on it, and that can do cross-browser server
calls, as can (Jmol.js by itself, for that matter). But the signed applet is
better.
So adding Jmol to a page with ChemDoodle is pretty close to trivial but a
BIT TWISTED. Jmol requires Java; ChemDoodle is hoping to be the solution for
the cloud-computing "post-Java" era. It's a bit strange.
Bob
--
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
------------------------------------------------------------------------------
Magic Quadrant for Content-Aware Data Loss Prevention
Research study explores the data loss prevention market. Includes in-depth
analysis on the changes within the DLP market, and the criteria used to
evaluate the strengths and weaknesses of these DLP solutions.
http://www.accelacomm.com/jaw/sfnl/114/51385063/
_______________________________________________
Jmol-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-users