Jmol

mr wong   google bookmarks   del.icio.us   yigg   digg   folkd

Jmol This demo enables you to use the Jmol-Package (v11.4.6) to represent molecules three dimensionally. This powerful Java-program with a Swing-GUI can do more than just offer this connection. According to the documentation, it supports the following formats: ABINIT, ACES II, ADF (Amsterdam Density Functional), CML, GAMESS, Gaussian 92/94/98, Ghemical MM, Jaguar, MDL molfile, PDB (only ATOM and HETATM) and XYZ. For serious work it is advisable to obtain the package via the Jmol-Homepage. All examples on this site were taken from this package.

Alternativ kann diese Demo direkt über eine SOAP-Schnittstelle angesprochen werden.
Wichtiger Hinweis: Diese Schnittstelle steht nur für nicht kommerzielle Zwecke zur Verfügung.
Bei kommerzieller Nutzung wenden Sie sich bitte an office@sciencesoft.at. Weiters bitten wir
Sie, uns auch bei nicht-kommerzieller Nutzung dieser Schnittstelle über obige E-Mail-Adresse
zu benachrichtigen, damit wir Sie bei Änderung der Schnittstelle gegebenfalls informieren zu können.
WDSL
SOAP-Request
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:def="http://DefaultNamespace">
   <soapenv:Header/>
   <soapenv:Body>
      <def:render>
         <def:data>?</def:data>
         <def:width>?</def:width>
         <def:height>?</def:height>
         <def:scaling>?</def:scaling>
         <def:rotatex>?</def:rotatex>
         <def:rotatey>?</def:rotatey>
         <def:rotatez>?</def:rotatez>
         <def:bgcolor>?</def:bgcolor>
         <def:commands>?
            <!--Zero or more repetitions:-->
            <def:string>?</def:string>
         </def:commands>  
         <def:embeddedData>?</def:embeddedData>
      </def:render>
   </soapenv:Body>
</soapenv:Envelope>
  
<def:data>
Dieses Element beinhaltet Daten - maximale Länge 131072 Bytes
<def:width> und <def:height>
Breite [40..1024] und Höhe [40..768] der Grafik in Punkten
<def:scaling>
Skalierung der Graphik in einem Wertebereich von 30 bis 300 Prozent
<def:roatex> <def:roatey> <def:roatez>
Rotation des 3D-Modells um die x/y/z Achse des Raumes in Grad
<def:bgcolor>
Hintergrundfarbe im 6-stelligen HEX-Format
<def:commands> <def:String>...</def:String> </def:commands>
Liste optionaler Jmol-Kommandos. Die unterstützen Kommandos sind indent mit den Optionen der
Auswahlliste Darstellung.
<def:embeddedData>
Dieses Element legt mit dem Wert true fest, ob die Grafaikdaten base-64 kodiert in die SOAP-Antwort
eingebettet werden. false bewirkt, dass die SOAP-Antwort einen Link auf die erzeugte Grafik beihaltet.
SOAP-Response
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <soap:Body>
      <ns1:renderResponse xmlns:ns1="http://DefaultNamespace">
         <ns1:out>
            <success xmlns="http://DefaultNamespace">?</success>
            <error xsi:nil="true" xmlns="http://DefaultNamespace">?</error>
            <embeddedData xmlns="http://DefaultNamespace">?</embeddedData>
            <data xsi:nil="true" xmlns="http://DefaultNamespace"/>?</data>
            <url xmlns="http://DefaultNamespace">?</url>
         </ns1:out>
      </ns1:renderResponse>
   </soap:Body>
</soap:Envelope>
succces
true kein Fehler, oder false im Falle eines Fehlers
error
Im Falle eines Fehlers beinhaltet dieses Element die Fehlermeldung.
embeddedData
Ist dieser Wert true, so wurden die Grafaikdaten base-64 kodiert über das Element data in die SOAP-Antwort
eingebettet. Ist der Wert hingegen false, so beinhaltet das Element url einen Link auf die berechnete Grafik.
url oder data
Diese Elemente beinhalten das Ergebnis - siehe Element embeddedData
size
Größe der Grafikdaten in Bytes.
Beispiel

Dieses Beispiel generiert über die SOAP-Schnittstelle ein PNG-Graphik, die ein ein Methanol-Molekül darstellt.
Sie können dieses Beispiel inklusive aller notwendigen Libraries über folgenden Link downloaden.

/*
 * JmolSOAPClient.java - Jmol SOAP access example
 * Author: Peter Sauer (peter.sauer@sciencesoft.at)
 * Date of last modification: 2008-10-01
 */
package at.sciencesoft.test;

import at.sciencesoft.soap.jmol.*;
import java.io.*;

public class JmolSOAPClient {
    private static String ethanol =
            "9\n" +
            "     This geometry optimized by G92;  MP2/6-31G*\n" +
            "H         -2.0801425360     0.4329727646     0.0722817289\n" +
            "C         -1.2129704155    -0.2295285634    -0.0097156258\n" +
            "H         -1.2655910941    -0.9539857247     0.8097953440\n" +
            "C          0.0849758188     0.5590385475     0.0510545434\n" +
            "O          1.2322305822    -0.2731895077    -0.1276123902\n" +
            "H          0.1506137362     1.1200249874     0.9943015309\n" +
            "H          1.2473876659    -0.8998737590     0.6150681570\n" +
            "H          0.1316093068     1.2841805400    -0.7645223601\n" +
            "H         -1.2737541560    -0.7748626513    -0.9540587845\n";

    public static void writeByteStream(String fileName, byte[] stream) throws Exception {
        File file = new File(fileName);
        FileOutputStream writer = new FileOutputStream(file);
        writer.write(stream, 0, stream.length);
        writer.close();
    }

    public static void main(String[] args) {
        try {
            Jmol_Service serv = new Jmol_Service();
            Jmol jmol = serv.getJmolHttpPort();
            SOAPjmolResult jr = jmol.render(ethanol, 400, 400, 150, 0, 0, 0, null, null, true);
            if (jr.isSuccess()) {
                System.out.println("Success!");
                writeByteStream("ethanol.png.", jr.getData().getValue());
            } else {
                System.out.println("Error:");
                System.out.println(jr.getError().getValue());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

Handling

  • The Start Jmol button starts the calculation procedure.
  • Reset clears the entire input field.
  • 3D-data of example-molecules can be copied into the input field via the button Copy the pull down menu Examples.
  • The Width and Height input fields define, in dots, the size of the graphic representation that is to be calculated. The acceptable range for width and height is between 50 and 500 dots. Furthermore, the Scaling input field can be used to reduce or enlarge the 3D-model in a range from 30 to 200 percent.
  • The Rotation input field allows a rotation of the 3D-model around the x/y/z axis in degrees. The x and y-axis correspond to the orientation of the image plane of the calculated graphic representation on the screen. The imaginary z-axis extends from the screen at an angle of 90 degrees towards the viewer.
  • The Atom labels pull down menu ascertains, if and how the atoms of the diagrammed molecule are labelled. Representation defines, in what detail the 3D-model will be rendered.
  • The input field, Background colour, permits the definition of the background colour of the calculated graphic representation in the form of an RGB (Reed/Green/Blue)-value in hexadecimal form: z.B. 000000 = black, FFFFFF = white, 00FF00 = pure green

The mouse can be used to Rotate, Move and Scale the rendered molecule. First, select the appropriate transformation. Then, determine the first reference point within the corresponding graphical representation by pressing the left mouse button. The status line will indicate that the first reference point was selected. Now, determine a second reference point by pressing the left mouse button. The vector that is formed by these two reference points determines the transformation.