Difference between revisions of "Applications Embedding Jmol"

From Jmol
Jump to navigation Jump to search
(moved from distributions)
(Applications using Jmol: CaGe no longer uses the ancient version of the applet and now has two websites)
Line 7: Line 7:
  
 
* [http://bioclipse.net/ BioClipse].
 
* [http://bioclipse.net/ BioClipse].
* [http://www.mathematik.uni-bielefeld.de/~CaGe/ CaGe] - the "Chemical & abstract Graph environment", currently using an ancient version of JmolApplet (0.6.1) as one of its molecule viewers. (Old, but the developer might find time next to his regular job to extend the project. Incorporating a current Jmol version is on his wish list.)
+
* [http://www.mathematik.uni-bielefeld.de/~CaGe/ CaGe] [http://caagt.ugent.be/CaGe/ CaGe] - 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://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://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://homepage.mac.com/swain/Sites/Macinchem/page6/page6.html iBabel] - A GUI for cheminfomatics toolkit Openbabel, iBabel uses embeded applets to display structures.
 
* [http://homepage.mac.com/swain/Sites/Macinchem/page6/page6.html iBabel] - A GUI for cheminfomatics toolkit Openbabel, iBabel uses embeded applets to display structures.

Revision as of 12:31, 11 August 2009

Jmol / JSmol Applications

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 CaGe - 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.
  • iBabel - A GUI for cheminfomatics toolkit Openbabel, iBabel uses embeded applets to display structures.
  • 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.
  • Molecular Workbench - A Molecular Simulation Tool.
  • 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.
  • 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.

How to embed Jmol into an application

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.