Difference between revisions of "Applications Embedding Jmol"

From Jmol
Jump to navigation Jump to search
(update rotten links)
Line 16: Line 16:
 
=== How to embed Jmol into an application ===
 
=== How to embed Jmol into an application ===
  
* a very good start is the [http://svn.sourceforge.net/viewcvs.cgi/jmol/trunk/Jmol/examples/basic/Integration.java?view=markup Integration.java] out of [http://svn.sourceforge.net/viewcvs.cgi/jmol/trunk/Jmol/ Jmol SVN].
+
* a very good start is the [http://jmol.svn.sourceforge.net/viewcvs.cgi/jmol/trunk/Jmol/examples/basic/Integration.java?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].
 
* 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]].
 
* a special page is devoted to using Jmol as 3D viewer for CDK based projects: [[Jmol Cdk Integration]].
  
Most interaction with Jmol will happen by sending RasmolScript - like commands to Jmol. This is nicely documented by the [http://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.
  
 
One example of getting data out of Jmol is by adding a MouseListener to the Panel that contains the JmolViewer instance. e.g.
 
One example of getting data out of Jmol is by adding a MouseListener to the Panel that contains the JmolViewer instance. e.g.

Revision as of 21:08, 28 November 2007

Jmol / JSmol Applications

Applications using Jmol

Jmol users, please add here your favorite Java applications that embed Jmol.

  • BioClipse
  • 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.)
  • Molecular Workbench - A Molecular Simulation Tool
  • PFAAT - Protein Family Alignment Annotation Tool.
  • 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
  • iBabel - A GUI for cheminfomatics toolkit Openbabel, iBabel uses embeded applets to display structures


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.