Difference between revisions of "Applications Embedding Jmol"
AngelHerraez (talk | contribs) (cross-link to new section) |
AngelHerraez (talk | contribs) m (fixing wrong characters due to change in charset during migration of the wiki; text recovered from the old server) |
||
(26 intermediate revisions by 10 users not shown) | |||
Line 4: | Line 4: | ||
Jmol users, please add here your favorite Java applications that embed Jmol. | Jmol users, please add here your favorite Java applications that embed Jmol. | ||
− | (There is another [[ | + | (There is another [[Distributions Including Jmol|page]] for operating systems and software suites that include Jmol.) |
− | * [http://bioclipse.net/ BioClipse] | + | * [http://bioclipse.net/ BioClipse]. |
− | * [http://www.mathematik.uni-bielefeld.de/~CaGe/ CaGe] - the "Chemical & abstract Graph environment", | + | * [http://www.mathematik.uni-bielefeld.de/~CaGe/ CaGe] ([http://caagt.ugent.be/CaGe/ mirror]) - the "Chemical & abstract Graph environment" is a collection of graph generators for GNU Linux and Mac OS X, that uses Jmol as one of its visualizers. |
− | * [http://mw.concord.org/modeler/index.html Molecular Workbench] - A Molecular Simulation Tool | + | * [http://graphics.cs.brown.edu/research/chempad/ ChemPad] renders in Jmol 3D models calculated on-the-fly from a formula sketched by hand in a tablet PC. |
+ | * [http://ches-mapper.org CheS-Mapper] - A 3D viewer for small molecule datasets, that preprocesses the dataset. CheS-Mapper can create compound features, it clusters the dataset and embeds the compounds into 3D space. | ||
+ | * [http://homepage.mac.com/swain/Sites/Macinchem/page6/page6.html iBabel] - A GUI for cheminfomatics toolkit Openbabel, iBabel uses embeded applets to display structures. | ||
+ | * [http://j-ice.sourceforge.net/ J-ICE] - a Jmol web-'''I'''nterface for '''C'''rystallographic and '''E'''lectronic Properties. J-ICE can deal with CASTEP, CRYSTAL09 (as well as 06, 03 and 98), QUANTUM ESPRESSO, VASP, Wien2k, FHI-aim, CIF, PDB and many others formats. Watch some videos [http://www.youtube.com/view_play_list?p=E9BA884CFAB82840 here]. | ||
+ | * [http://janocchio.sourceforge.net/ Janocchio] is an applet and application; in addition to using Jmol display capabilities, it calculates both H-H and H-C 3-bond NMR coupling constants and NOEs from a three-dimensional structure. © Eli Lilly and Co. Open source and hosted af SF. | ||
+ | * [http://sourceforge.net/projects/mocalc2012/ MoCalc2012] is a Graphical User Interface for MOPAC, GAMESS(US), Firefly and ORCA that uses Jmol for displaying geometries, orbitals, surfaces, animations and vibrations using the Jmol scripting language. | ||
+ | * [http://mw.concord.org/modeler/index.html Molecular Workbench] - A Molecular Simulation Tool. | ||
+ | * [http://www.openprocessing.org/sketch/6939 PMOL] - A Processing sketch using JMOL to load Molecules, and Processing to visualize them. | ||
* [http://pfaat.sourceforge.net/ PFAAT] - Protein Family Alignment Annotation Tool. | * [http://pfaat.sourceforge.net/ PFAAT] - Protein Family Alignment Annotation Tool. | ||
+ | * [http://homepage.mac.com/eludens/proyectos/htmls/proteinglimpseen.html ProteinGlimpse] is a free widget for visualizing macromolecules retrieved from the Protein Data Bank or from local disk. It is a dashboard application for Mac OS X that uses the JmolApplet. | ||
+ | * [http://rdss.sourceforge.net/ Raman Data Search and Storage (RDSS)] A freeware and user-friendly application developed as an analytical tool for a fast and accurate identification of unknown minerals by comparison of their Raman spectra with the indexed library of data. | ||
+ | * [http://www.sagemath.org Sage] is a computational platform with the goal of providing a viable free and open-source alternative to Matlab, Maple, Mathematica and Magma. It uses Jmol for its 3D interactive plotting. | ||
* [http://www.efamily.org.uk/software/dasclients/spice/spice.shtml Spice] - Spice is a DAS client for distributed annotation of protein sequences and structures. A java webstart version can be run from online. | * [http://www.efamily.org.uk/software/dasclients/spice/spice.shtml Spice] - Spice is a DAS client for distributed annotation of protein sequences and structures. A java webstart version can be run from online. | ||
− | * [http://3d-alignment.eu STRAP] - Alignment Program for Proteins and workbench for protein structures | + | * [http://3d-alignment.eu STRAP] - Alignment Program for Proteins and workbench for protein structures. |
− | * [http://taverna.sourceforge.net/ Taverna] | + | * [http://taverna.sourceforge.net/ Taverna]. |
− | * [http:// | + | * [http://purl.org/utwente/e59199 TouchMol] - molecular visualization on a multi-touch table, allowing up to 4 users to interact with a molecular model using their fingers. Video clips: [http://www.youtube.com/watch?v=P741FEkwR50] [http://www.youtube.com/watch?v=C3Iuoj0GBHg] [http://www.youtube.com/watch?v=xZ9l-L672OI] [http://www.youtube.com/watch?v=BtNcYKVHJF4] |
− | |||
=== How to embed Jmol into an application === | === How to embed Jmol into an application === | ||
− | * | + | * A very good start is the [http://jmol.svn.sourceforge.net/viewvc/jmol/trunk/Jmol/examples/basic/org/jmol/Integration.java?revision=17001&view=markup Integration.java] out of [http://jmol.svn.sourceforge.net/viewcvs.cgi/jmol/trunk/Jmol/ Jmol SVN]. |
− | * to see how [http://www.efamily.org.uk/software/dasclients/spice/spice.shtml Spice] is integrating Jmol, please have a look [http://www.derkholm.net/svn/repos/spice/trunk/src/org/biojava/spice/jmol/ here]. | + | * [https://gist.github.com/2157922 Here] is the previous code ported to Jython |
− | * | + | * To see how [http://www.efamily.org.uk/software/dasclients/spice/spice.shtml Spice] is integrating Jmol, please have a look [http://www.derkholm.net/svn/repos/spice/trunk/src/org/biojava/spice/jmol/ here]. |
+ | * A special page is devoted to using Jmol as 3D viewer for CDK based projects: [[Jmol Cdk Integration]]. | ||
+ | * Another example: [[Programmatic Access to Jmol]] | ||
Most interaction with Jmol will happen by sending RasmolScript - like commands to Jmol. This is nicely documented by the [http://jmol.svn.sourceforge.net/viewcvs.cgi/jmol/trunk/Jmol/examples/basic/Integration.java?view=markup Integration.java] example. It is also possible to get data back out of Jmol. This can be done by accessing the JmolViewer class. This might be replaced by an Interface in the future. | Most interaction with Jmol will happen by sending RasmolScript - like commands to Jmol. This is nicely documented by the [http://jmol.svn.sourceforge.net/viewcvs.cgi/jmol/trunk/Jmol/examples/basic/Integration.java?view=markup Integration.java] example. It is also possible to get data back out of Jmol. This can be done by accessing the JmolViewer class. This might be replaced by an Interface in the future. | ||
Line 37: | Line 48: | ||
When retreiving the "seqCode" for an Atom, the [[Insertion Code]] of PDB files is appended. Note the Jmol notation of insertion codes: e.g. '''122^A''', to distinguish from the Rasmol command '''122A''', which would select residue 122 of chain A. | When retreiving the "seqCode" for an Atom, the [[Insertion Code]] of PDB files is appended. Note the Jmol notation of insertion codes: e.g. '''122^A''', to distinguish from the Rasmol command '''122A''', which would select residue 122 of chain A. | ||
+ | |||
+ | ====A Note on JmolStatusListener==== | ||
+ | |||
+ | If your application needs to be notified of Jmol events, then you must create an interface to Jmol by implementing org.jmol.api.JmolStatusListener. I stumbled for some time before discovering that the notifyFrameChanged() event handler must include updateComputedMenus() on the JmolPopup object. Without this, the menu will mostly contain ghosted items. |
Latest revision as of 19:20, 26 March 2019
- Websites Using J(S)mol
- J(S)mol in the Classroom
- Journals Using J(S)mol
- J(S)mol Literature
- Articles Using J(S)mol
- Books Using J(S)mol
- Wikis Using J(S)mol
- Blogs Using J(S)mol
- CMS Using J(S)mol (Moodle and others)
Course Management Systems, Learning Management Systems, Virtual Learning Environments, e-Learning Platforms - Applications Embedding Jmol
- Distributions Including Jmol
- Blue Obelisk
Applications using Jmol
Jmol users, please add here your favorite Java applications that embed Jmol.
(There is another page for operating systems and software suites that include Jmol.)
- BioClipse.
- CaGe (mirror) - the "Chemical & abstract Graph environment" is a collection of graph generators for GNU Linux and Mac OS X, that uses Jmol as one of its visualizers.
- ChemPad renders in Jmol 3D models calculated on-the-fly from a formula sketched by hand in a tablet PC.
- CheS-Mapper - A 3D viewer for small molecule datasets, that preprocesses the dataset. CheS-Mapper can create compound features, it clusters the dataset and embeds the compounds into 3D space.
- iBabel - A GUI for cheminfomatics toolkit Openbabel, iBabel uses embeded applets to display structures.
- J-ICE - a Jmol web-Interface for Crystallographic and Electronic Properties. J-ICE can deal with CASTEP, CRYSTAL09 (as well as 06, 03 and 98), QUANTUM ESPRESSO, VASP, Wien2k, FHI-aim, CIF, PDB and many others formats. Watch some videos here.
- Janocchio is an applet and application; in addition to using Jmol display capabilities, it calculates both H-H and H-C 3-bond NMR coupling constants and NOEs from a three-dimensional structure. © Eli Lilly and Co. Open source and hosted af SF.
- MoCalc2012 is a Graphical User Interface for MOPAC, GAMESS(US), Firefly and ORCA that uses Jmol for displaying geometries, orbitals, surfaces, animations and vibrations using the Jmol scripting language.
- Molecular Workbench - A Molecular Simulation Tool.
- PMOL - A Processing sketch using JMOL to load Molecules, and Processing to visualize them.
- PFAAT - Protein Family Alignment Annotation Tool.
- ProteinGlimpse is a free widget for visualizing macromolecules retrieved from the Protein Data Bank or from local disk. It is a dashboard application for Mac OS X that uses the JmolApplet.
- Raman Data Search and Storage (RDSS) A freeware and user-friendly application developed as an analytical tool for a fast and accurate identification of unknown minerals by comparison of their Raman spectra with the indexed library of data.
- Sage is a computational platform with the goal of providing a viable free and open-source alternative to Matlab, Maple, Mathematica and Magma. It uses Jmol for its 3D interactive plotting.
- Spice - Spice is a DAS client for distributed annotation of protein sequences and structures. A java webstart version can be run from online.
- STRAP - Alignment Program for Proteins and workbench for protein structures.
- Taverna.
- TouchMol - molecular visualization on a multi-touch table, allowing up to 4 users to interact with a molecular model using their fingers. Video clips: [1] [2] [3] [4]
How to embed Jmol into an application
- A very good start is the Integration.java out of Jmol SVN.
- Here is the previous code ported to Jython
- To see how Spice is integrating Jmol, please have a look here.
- A special page is devoted to using Jmol as 3D viewer for CDK based projects: Jmol Cdk Integration.
- Another example: Programmatic Access to Jmol
Most interaction with Jmol will happen by sending RasmolScript - like commands to Jmol. This is nicely documented by the Integration.java example. It is also possible to get data back out of Jmol. This can be done by accessing the JmolViewer class. This might be replaced by an Interface in the future.
One example of getting data out of Jmol is by adding a MouseListener to the Panel that contains the JmolViewer instance. e.g.
public void mouseMoved(MouseEvent e) { int pos = viewer.findNearestAtomIndex( e.getX(), e.getY() ); if ( pos == -1 ) { return ; } String chainId = viewer.getAtomChain( pos ) ; String seqCode = viewer.getAtomSequenceCode( pos ) ; // ... do something in your application }
When retreiving the "seqCode" for an Atom, the Insertion Code of PDB files is appended. Note the Jmol notation of insertion codes: e.g. 122^A, to distinguish from the Rasmol command 122A, which would select residue 122 of chain A.
A Note on JmolStatusListener
If your application needs to be notified of Jmol events, then you must create an interface to Jmol by implementing org.jmol.api.JmolStatusListener. I stumbled for some time before discovering that the notifyFrameChanged() event handler must include updateComputedMenus() on the JmolPopup object. Without this, the menu will mostly contain ghosted items.
Contributors
AngelHerraez, Pierocanepa, Yodah134, Ssorgatem, Mhampton, Kirby, Chris, NicolasVervelle, Pimpim, Nvcleemp, Tzontonel, Christoph.gille, Andorsch, Martin.guetlein