Handling of Standard Residues That Are Invisible in
Backbone Displays

for FirstGlance in Jmol (FG)


The Problem

An isolated standard amino acid or nucleotide, not a member of a polypeptide or polynucleotide chain, is invisible in backbone displays (Cartoon, Secondary Structure, N->C Rainbow, and Vines with sidechains hidden). This is because the backbone is drawn to connect alpha carbons or phosphorus atoms in a chain. If there is only one such atom in a "chain", there is nothing to connect it to, and no backbone is drawn.

Examples: Adenosine A351:B is bound to protein in 1BKX. This is a standard residue, unphosphorylated, appropriately named "A", and included in "RNA" by Jmol. This important residue is invisible in a backbone display. Another example is GLY1:G in 4CPA which is an isolated glycine bound to the protein.

Many non-standard residues and most ligands are not deemed protein, DNA, or RNA by Jmol. These are easily made visible by selecting "not (protein,nucleic,water)" and spacefilling. However, a ligand such as the adenosine in the above example remains invisible with this strategy (and remained invisible in FG through version 0.98).

Nucleic acid backbones are defined largely by a line connecting the phosphorus atoms. However, standard nucleotide chains begin with a 5' hydroxyl end. The 5' terminal nucleotide lacks a phosphorus. Jmol makes these terminal nucleotides visible by extending the backbone line to include the terminal O5*. Example: in 1d66, the 5' ends of the DNA chains (C1:D and C20:E) lack phosphorus atoms, but are included in the backbone displays.

The Solution

FG displays isolated standard residues (or standard residues lacking certain atoms) in spacefill in its initial view (and in all backbone views). This is possible because Jmol 10.2 introduced a new command, "connected", which enables one to select atoms that are connected covalently to other specified atoms. Examples for Testing

Some published PDB file examples are described above under The Problem.

1B07 contains a single HIS that is given a different chain name than the chain it tags by covalent linkage. Because it is covalently linked to another amino acid, this "single residue chain" is not included in Ligands+, and is visible in the initial display as a "tail" of a different chain color.

An artificial set of examples was created by editing 1d66.pdb for verification purposes. The result, bb-invis.pdb, is bundled with FirstGlance in Jmol and includes the following:

Protein
Residue(s) Description .N .C Detected as*
GLU8:A Isolated Amino Acid not bonded to .C not bonded to .N ~unchained_aas
ALA10:A Isolated Amino Acid absent not bonded to .N ~unbondable_aas (Note 1)
ASP12:A Isolated Amino Acid not bonded to .C absent ~unbondable_aas (Note 1)
CYS14:A Isolated Amino Acid, alpha carbon absent not bonded to .C not bonded to .N ~nobackbone_aas (Note 1)
LYS17-LYS18:A Dipeptide n/a n/a (backbone displayed)
Nucleic Acid
Residue(s) Description .P .O3* Detected as*
C1:D Isolated DNA residue, UNphosphorylated absent not bonded to .P ~hydroxy_unchained_nucs
G3:D Isolated DNA residue, phosphorylated not bonded to .O3* not bonded to .P ~unchained_nucs
A5:D Isolated DNA residue, phosphorylated not bonded to .O3* absent not "DNA"
G7-A8:D DNA dimer, both phosphorylated n/a n/a (backbone displayed)
G10-A11:D DNA dimer, 5' UNphosphorylated n/a n/a (backbone displayed)
* Terms beginning with tilde (~) are defined within Jmol by defineInvisibleBackboneSpt (in scripts.js).


Note 1: This amino acid is not deemed to be "protein" by Jmol. However, FG cannot rely upon Jmol's predefined atom set "protein" because it sometimes fails to include standard amino acids (see Selection Issues in Jmol Command Scripts). Therefore, a script, proteinSpt is defined in scripts.js to include protein or any of the 20 standard amino acids. Because of this, the failure of an amino acid to be deemed "protein" by Jmol cannot be used in FG. Therefore, FG requires additional tests to determine whether standard amino acids include .CA, .C, and .N. These tests are included in defineInvisibleBackboneSpt (in scripts.js).


Feedback to