Four stages in the evolution of interactive ESI as part of articles in chemistry journals.

A previous post was triggered by Peter alerting me that interactive electronic supporting information (IESI) we had submitted to a journal in 2005[cite]10.1021/ic0519988[/cite] appeared to be strangely missing from the article landing page. This set me off recollecting our journey, which had started around 1998, and to explore what the current state of these ancient IESIs were in 2022. I have now reached 2014 in this journey, which is being recorded as it happens in the comments page of the post. I discovered there were four distinct stages in that evolution of IESI which I thought it would be of interest to record here.

  1. From around 1998 to 2004, our efforts at IESI centred around a browser plugin called Chime, which was itself derived from stand-alone code called Rasmol and a collaboration between the company that implemented this (MDL) and Netscape, who happened to have offices in San Francisco close to each other. Chime came in two versions, free to use and a commercial version that added further functionality such as access to MDL databases etc. An example from 1998[cite]10.1039/A805668D[/cite] can be seen at and the code is shown below:
    <EMBED border=0 src="geom+vib/12e-dft.gau" name="12e-dft"
    align=center width=150 height=150 spiny=36 startspin=true
    display3D=sticks PLUGINSPAGE=""
    script="zoom 175;"></EMBED>

    I have to say that access to the data underpinning this IESI is still good; but the interactive component itself has long gone, along with Chime itself.

  2. By 2005, Jmol had emerged as a more general open-source browser plugin replacing Chime. This so-called Java “run time library” had to be installed by the user into their browser instance (and hence required admin rights). The interactivity in the first article where we deployed it[cite]10.1021/ja043819b[/cite] was invoked as per below.
    <applet height="300" archive="JmolApplet.jar"
    width="300" code="JmolApplet" name="TS2"
    mayscript="true" id="TS2">
    <param name="progressbar" value="true" />
    <param name="progresscolor" value="blue" />
    <param name="boxmessage"
    value="starting JmolApplet ..." />
    <param name="emulate" value="chime" />
    <param name="boxbgcolor" value="black" />
    <param name="load" value="" />

    It is this invocation where the interactivity was rescued by Angel as described in the earlier post comments page in the form of an adaptor library that converts the syntax above to modern form.

  3. By 2007, this applet syntax had gone, to be replaced by a JavaScript version invoking the same Java-based Jmol.[cite]10.1021/ic062473y[/cite]
    <script type="text/javascript" src="JSmol.min.js"></script>
    <script type="text/javascript" src="js/Jmol2.js"></script>
    <!-- The second command is modern, to convert to using  JSmol -->

    and then to invoke a molecule:

    <script type="text/javascript">
    jmolApplet(300,"load GaL3.mol; select all; spacefill 0.25; 
    wireframe 0.1; center atomno=1")</script>

    Here again an adapter library to update this syntax is available as Jmol2.js.

  4. Around 2012, the development of a Java replacement of Jmol by the script-based JSmol had started (ten years ago almost to the day!). Our first deployment was in 2014[cite]10.1039/C3SC53416B[/cite] where you can see an example in operation at DOI: You will notice that bets were being hedged and the viewer was given a choice of using either Jmol (Java) or JSmol (Javascript). The reason was that in terms of speed, Jmol was perhaps 15 times faster than JSmol and so more complex rendered objects such as orbital isosurfaces, or proteins, could be very slow in JSmol. As computers themselves have got faster, and Javascript implementations in browsers similarly so, the need for Java has largely faded other than some specialist applications. Now only
    <script type="text/javascript" src="JSmol.min.js"></script>

    is needed to set things up, whilst the molecule call is illustrated by eg

     <a href="javascript:Jmol.script(jmolApplet0, 
    'load 24880.log',%20';frame 13;spin 3;')">log</a>

Now, ten years on from the genesis of JSmol, the functionality and capability of this program have continued to increase by leaps and bounds, but the general form has remained stable.

One other change in our usage did also occur in 2014. Previously the content being viewed came from a local file installed on the web server, as per eg 24480.log above. However we were now starting to source such files directly from a data repository, being a specialist resource to host such content. All that would be needed was the DOI of the repository collection where the data was being hosted, along with the Media type of the desired file. But that comes with its own issues and this is another story that will be told elsewhere.

Leave a Reply