Support for Protein Explorer's Features of the Molecule and PiPEs

Netscape, Mozilla, and Firefox support Protein Explorer's (PE's) Features of the Molecule control panel and Presentations (PiPEs) automatically in all modes of use. Microsoft's Internet Explorer (IE) requires a separate data file (in addition to the PDB file), and even then displays Features of the Molecule or PiPEs only when PE and the PDB file come from the same computer (see below for details). For this reason, Netscape (or Mozilla or Firefox) is recommended for those who plan to use PE regularly.
(This recommendation derives from the histories and resulting current technical characteristics of the Chime plugin and the two web browsers. These are beyond the control of the authors of PE. We recognize that the current situation is inconvenient and are open to feasible ideas to improve it.)

  1. Supplementary file required for PE's Features of the Molecule or PiPEs to work in IE.
    1. Example.
    2. Methods.
    3. Specifications.
  2. Features of the Molecule and PiPE-Compatible Modes of Use of PE with IE.
  3. Why does IE have problems with PE's Features of the Molecule and PiPEs?

Elsewhere:

     
  1. Supplementary file required for PE's Features of the Molecule or PiPEs to work in IE.
     
    Example. PE's Features of the Molecule or Presentations (PiPEs) work in IE only if a supplementary "header" file, separate from the PDB file, is provided. For example:  
    Methods. There are two methods of providing the header file:
    1. Using a text editor, block the header of the PDB file in question. The header begins with the first line of the PDB file, and ends with the line preceding the first ATOM, HETATM, or MODEL line (whichever comes first). Copy the header into a properly named html file (see 2.b. below). Enclose the header between these html tags:
        <html><body><pre>
        [header goes here]
        </pre></body></html>
      An example of a properly constructed header file is 1d66_h.htm. Right click in the window displaying this file to view its source. If you use Microsoft Word, Wordpad, or another document editor to create the header file, be sure to save it as plain ASCII text!

    2. Save the header file from RCSB:

      1. Display the header from RCSB: At Structure Explorer, click on Download/Display File, then Header Only, TEXT. (Example: TEXT header for 1d66).

      2. Use the browser's File menu to Save As, naming the file 1aaa_h.htm (where 1aaa represents the PDB identification code). The filename is crucial because PE expects it to be the same as the name of its matching PDB file, except with the .pdb replaced with _h.htm.
     
    Technical specifications for the header file.  
  2. Features of the Molecule/PiPE -Compatible Modes of Use of PE with IE.
    (Features of the Molecule/PiPE always works in Netscape.)
    Source of PE
    Source of PDB file
    Features of the Molecule/PiPE: Operation in IE?
    (Features of the Molecule/PiPE always works in Netscape.)
    Any RCSB Protein Data Bank server or proteinexplorer.org
    The same RCSB PDB server that is providing PE (which is PE's default).
    Planned but not yet implemented: YES. PE fetches the PDB file header automatically from RCSB, separately from the PDB file.
    Any on-line server.
    The same server that is providing PE
    YES provided a supplementary file has been provided on the server for each PDB file.
    (ditto)
    Another server different from the one providing PE.
    NO.
    A downloaded copy of PE on the local PC.
    A downloaded PDB file on the same PC that is providing PE.
    YES provided a supplementary file has been provided on the server for each PDB file.
    (ditto)
    Any on-line server.
    NO.

     
  3. Why does IE have problems with PE's Features of the Molecule/PiPEs?

    The reasons why IE has problems with PE's Features of the Molecule or PiPEs arose because of the way browsers and the Chime plugin evolved. Unfortunately, this evolution has left technical obstacles that are beyond our control (see top of this page above).

    This is a technial explanation for those interested. PE's Features of the Molecule and PiPEs obtains the information it displays from the header of the PDB file.. This means that the javascript in the browser must obtain the text of the PDB file header. Beginning with version 2.6, Chime provides a special script command for this purpose, "show pdbheader", which returns the header text block with a single call to the messageCallback function (header lines are delimited by formfeeds). This mechanism works well in Netscape.

    In IE, issuing the "show pdbheader" command to Chime usually causes IE to crash, unless the PDB file has no header lines (in which case Chime returns "No pdb header available."). The crash occurs regardless of the length of the header (even a single line). It is not known to me whether this is a bug in Chime, or a problem with the plugin interface in IE that could not be fixed within Chime. I have no control over Chime -- MDL, who provides the Chime executable plugin free, controls its source code. Since IE cannot get the header text from Chime, it must get it by another means.

    Cris Necocea taught me how IE can obtain the text of a document it is displaying using javascript's innerHTML or getElementByName. IE can get the header-containing document either from RCSB's URL that displays the header, or from a specially constructed html file containing the header. To do this, PE opens a small child window that loads the header html file, and then copies the header text from the document into a javascript string variable in the parent window (PE). (See gethead_IE_win() in shared/hcquery.js.)

    However, for security reasons, IE disallows documents from different servers from communicating with each other (cross-domain security barrier). This means that the html file that supplies the header must come from the same domain as PE itself. This explains the behaviors in the different modes listed above.

    Since PE may be operated directly from an RCSB server, and the same server can also provide the PDB file, this avoids the cross-domain barrier. If PE comes from a different server than the PDB file, but in the same domain, the cross-domain security barrier can be avoided provided that each document independently asserts its root domain with a javascript statement such as

    and provided each document indeed comes from the same root domain. Since proteinexplorer.org serves PE from sdsc.edu, and one site for RCSB is also at sdsc.edu, it is possible for PE to obtain the header from RCSB (if RCSB makes the above assertion in its header display documents).