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.

A script named defineBackboneInvisibleSpt (in file scripts.js) selects residues that would otherwise be invisible in FG's initial display. These are included in the term ~backbone_invisible defined in Jmol by this script. The otherwise-invisible residues are excluded from "protein" (see definition of proteinSpt in scripts.js), and included in "ligands+" (see definition of ligandSpt in scripts.js).
An example of the use of "connected" is the following Jmol command. It selects amino acids that contain the backbone nitrogen atom, but where that nitrogen is not peptide-bonded to a backbone carbon atom. Since *.N and *.C atoms are separated, in amino acids, by *.CA alpha carbon atoms, the .N atom is never covalently bonded directly to the .C atom within one amino acid. Therefore, if the .N atom is bonded to a .C atom, the amino acid containing the .N is peptide bonded to another amino acid containing the .C atom.
`select (protein and *.n) and not connected(*.c);`

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