\n\
CAUTION: This model has missing charged amino acids and/or incomplete sidechains \n\
on charged amino acids. Salt bridges involving the missing atoms are NOT shown. ';
misinc = true;
}
if (showCatPi &&
(incompleteCatPiSidechainsProteinCount > 0 || missingCount > 0))
{
hh +=
'| \n\
CAUTION: This model has missing amino acids and/or incomplete sidechains \n\
on some Arg, Lys, Phe, Tyr or Trp. \n\
Cation-Pi interactions involving the missing atoms are NOT shown. ';
misinc = true;
}
if (misinc)
hh +=
'Locations of missing amino acids are marked with empty baskets (unless you unchecked the \n\
default), and residues with incomplete sidechains are labeled S- (unless you \n\
unchecked Labels: Show) and are shown in light colors in the Charge view. \n\
| ';
else hh += ' ';
hh +=
' Balls are atoms likely to be engaged in ' + cpsb +
'. Sticks are shown only for context. ';
if (!showCatPi) hh +=
' Salt Bridge Examples \n\
\n\
- \n\
4dnw \n\
is a homodimer with an unusual density of salt \n\
bridges and cation-pi interactions in the protein-protein interface. UV irradiation \n\
dissociates the dimer into monomers. Trp233 and Trp285 are believed to be the \n\
chromophore. \n\
- 1zms \n\
has a long protruding alpha helix with cations on one side and anions on the other. \n\
In the trimeric \n\
biological unit, \n\
these interlock via salt bridges. \n\
- Glutamate dehydrogenase from a thermophile (Pyrococcus furiosus), \n\
1gtm, \n\
has 1.7-fold more atoms engaged in salt bridges than does the same enzyme from a mesophile \n\
(Clostridium symbiosum), \n\
1hrd. \n\
Salt bridges are believed to be important in stabilizing proteins of thermophiles. \n\
(More...) \n\
\n\
\n\
Salt Briges at Chain Termini \n\
\n\
- The C-terminus is salt-bridged to the sidechains of lysine or arginine in \n\
1zms, \n\
1hho, \n\
within chain, and \n\
6ef8, \n\
2vaa (chain P), \n\
between chains. \n\
\n\
- The N-terminus is salt-bridged to the sidechains of aspartic or glutamic acid in \n\
2bbn (chain A), \n\
and \n\
9ins (chain A), \n\
both within chain.\n \
\n\
- The terminal charges of each chain in the homodimeric HIV protease \n\
1hxw \n\
are salt-bridged to each other (within each chain). \n\
\n\
- The N-terminal NH3+ of Asp1 in the light chains of immunoglobulin G2a \n\
1igt \n\
forms an internal salt bridge with the sidechain of the same N-terminal residue. \n\
In contrast, here, the N-terminal Glu1\'s of the heavy chains \n\
do not form internal salt bridges, \n\
at least as modeled (with high temperature factors). \n\
However, Glu1 does form an internal salt bridge in heavy chain H in \n\
4dgv. \n\
The C-terminus of chain B in \n\
2nm1, \n\
Lys60, forms an internal salt bridge with the sidechain of the same residue. \n\
- \n\
9ins \n\
has only a few salt bridges, but they involve both N and C termini, an end-to-end bridge, \n\
within and between-chain bridges, and alternate locations for salt-bridged residues. \n\
- 1mkx \n\
contains salt-bridged residues with sequence number \n\
insertion codes. \n\
\n\
\n\
C-termini missing one oxygen \n\
- It is fairly common for the authors to omit one oxygen on the C-terminus of a protein chain \n\
structured by crystallography. \n\
In such cases, FirstGlance reports a salt bridge by showing the carboxy carbon \n\
as a ball less than 5.2 Å from the cationic nitrogen \n\
(more about this). \n\
Examples: \n\
3sok, \n\
5j0z. \n\
After displaying salt bridges \n\
(Tools tab), in the lower left (help) panel, just below \n\
List All, \n\
click Show halos on All Protein Chain Termini to easily \n\
locate the C-terminal salt bridges. \n\
\n\
\n\
Salt bridges to amino acid and dipeptide ligands \n\
\n\
- 4cpa \n\
has two monomer glycines bound as ligands. The C-termini of chains I and J form salt \n\
bridges with the ligand glycine amino groups. \n\
\n\
- 4ffL \n\
has a monomer lysine bound as a ligand. Both the backbone amino and the sidechain amino \n\
of this lysine form salt bridges with two different glutamic acids, as well as phosphates. \n\
To see the phosphates, click LYS under Ligands+ and Non-Standard Residues \n\
(Molecule Information Tab) and then use Contacts & Non-Covalent Bonds (Tools tab) \n\
targeting Atoms With Halos. \n\
\n\
- 4d2c \n\
has an Ala-Phe \n\
dipeptide ligand, both ends of which form salt bridges. \n\
\n\
\n\
D-amino acids \n\
- 5i1n has dozens of salt bridges \n\
between D-amino acids (as well as L-amino acids), and one between a D- and L-amino acid. \n\
';
else hh += // catpi examples
' Cation-Pi Examples: \n\
\n\
\n\
- 4mdh \n\
has two inter-chain (between chain) cation-pi interactions \n\
(deemed energetically significant by CaPTURE). \n\
Use the Color by Chain option above to make \n\
these easy to see. \n\
\n\
- In \n\
3if7, \n\
FirstGlance displays two putative cation-pi interactions. \n\
CaPTURE \n\
deems Tyr128:Arg86 to be \n\
energetically significant, but not Phe65:Lys13. \n\
\n\
- In \n\
4enl, \n\
FirstGlance shows Trp303:Lys336 and Trp272:Lys254,Lys269, all deemed energetically significant \n\
by CaPTURE. CaPTURE also deems Trp56:Lys55 to be energetically significant but FirstGlance \n\
fails to show this pair. FirstGlance shows Phe262:Lys263 and Tyr289:Arg288 which \n\
CaPTURE deems not energetically significant. \n\
\n\
Amino-terminal NH3+ \n\
\n\
- 6mt3 \n\
appears to have a cation-pi interaction between \n\
the Phe1 amino terminal N+ of peptide chain B and Trp167 in chain A. Note that also the \n\
opposite face of Trp167:A interacts with Arg170:A (deemed energetically significant by \n\
\n\
CaPTURE). Do not be confused by the interaction of the aromatic ring of Phe1:B with \n\
Arg62:A (also deemed energetically significant). Note that the CaPTURE server does not \n\
report the energetics of cation-pi interactions involving amino terminal cations. \n\
\n\
- 7ahl \n\ \n\
appears to have a cation-pi interaction between Ala1 and Tyr102 in adjacent chains. \n\
\n\
\n\
D-amino acids \n\
\n\
- 5hhc \n\
has cation-pi interactions between D-amino acids (and between L-amino acids), and also \n\
a pair of between-chain interactions between Lys41 and Dpn38 (D-phenylalanine) \n\
that look energetically significant. \n\
CaPTURE does not report on D-amino acids. \n\
\n\
- 5i1n \n\
has a between-chain cation-pi interaction between Phe35:D and Dar14:H (D-arginine). \n\
as well as many between D-amino acids (and between L-amino acids). \n\
CaPTURE does not report on D-amino acids. \n\
\n';
hh += "";
return hh;
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function showSBAtomCounts() // atom counts - called in consurf/msgcall.js when catpisb_displayed
{
if (showCatPi)
{
showCatPiResidueCounts();
return;
}
var vis = "";
if (hiddenTot > 0 || isolatedDescription != "") vis = " visible ";
var sbn = jmolAtomCount("~targ_sb");
var sbo = jmolAtomCount("~cont_sb");
var sbnaa = jmolAtomCount("*.ca and within(group, ~targ_sb)");
var sboaa = jmolAtomCount("*.ca and within(group, ~cont_sb)");
var sbac =
"" +
"Salt-bridge counts for " + vis + " amino acids and (atoms):" +
" NHx+: " +
sbnaa +
" (" +
sbn +
"); " +
"O−: " +
sboaa +
" (" +
sbo +
"); " +
"Total: " + (sbnaa + sboaa) +
" (" +
(sbn + sbo) +
")";
//alert(jmolAtomCount("*.ca and !~hidden_jdef"));
// FOR SOME BIZARRE REASON "VISIBLE" SEEMS TO BE IGNORED HERE
var vaa = jmolAtomCount("*.ca and protein and !~hidden_jdef"); // *.ca includes Ca++!
var sbapaa = 100 * ((sbn + sbo) / vaa);
var sbrpaa = 100 * ((sbnaa + sboaa) / vaa);
sbac +=
" Salt-bridged " + vis + " amino acids: " + sbrpaa.toPrecision(3) +
"% of " + vaa + (vis.length?" ":".") + vis + (vis.length?".":"");
// List All. Margin does not work here. ?
if (sbn)
{
sbac += '';
}
document.getElementById("sbatoms").innerHTML = sbac;
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function showCatPiResidueCounts()
{
var vis = "";
if (hiddenTot > 0 || isolatedDescription != "") vis = " visible ";
var cpcaa = jmolAtomCount("visible and *.ca and within(group, ~catpi_cations)");
var cpraa = jmolAtomCount("visible and *.ca and within(group, ~catpi_rings)");
var sbac =
"" +
cpcaa +
" cationic " + vis + " amino acids and " +
cpraa +
"" + vis + " aromatic amino acids are shown engaged in " +
"putative cation-pi interactions.";
if (allAtomNonHM1C1Count > catPiLimitNewAlgorithm && !detectCatPiPerResidueOnce)
{
sbac +=
' Re-detect ' +
'with slower, more accurate method ' +
'(?).';
}
sbac +=
' CaPTURE ' +
"provides an authoritative list of energetically significant cation-pi interactions.";
var ntcount = jmolAtomCount("visible and ~catpi_nterm");
if (ntcount)
{
if (ntcount > 1)
sbac +=
" " + ntcount + " " + vis +
"amino termini are shown in putative cation-pi interactions ";
else
sbac +=
" " + ntcount + " " + vis +
"amino terminus is shown in a putative cation-pi interaction ";
sbac += "(not reported by CaPTURE).";
}
sbac +=
"";
document.getElementById("sbatoms").innerHTML = sbac;
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function reDetectCatPiInfo()
{
if (confirm(
"To save time, cation-pi interactions were detected\n\
with a fast but somewhat inaccurate method, used\n\
only for large models. OK for more information,\n\
or Cancel to skip more information."))
window.open("notes.htm#catpi");
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function showHalosCatPiSB(showCatPi)
{
var sho = "";
sho += "Show halos on: ";
// Can't do this b/c ~targ_sb is not yet defined! Cf. gray box that waits till ready.
// if (!showCatPi && jmolAtomCount("~targ_sb"))
if (!showCatPi)
{
sho += ' Salt-bridged: ' +
'Cations' +
' or ' +
'Anions' +
' or ' +
'Amino Acids ';
}
else // catPi
{
sho += ' Cation-Pi: ' +
'Cations' +
' or ' +
'N-Termini' +
' or ' +
'Aromatic Rings' +
' or ' +
'Amino Acids ';
}
sho +=
' All: ' +
'Protein Chain Termini' +
' (Remove All Halos)';
sho += " ";
return sho;
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function findNoHelpCatPiSB(tofind)
{
if (match(tofind, "allchainends") && !showCatPiSBBackbones)
alert('Please check "Show Backbones"\n' +
'to make the ends of chains visible.');
if (tofind.length)
findNoHelp(tofind);
else
clearFindNoHelp();
showHelp("makeCatPiSBHelp()"); // refresh CatPiSB help to show "Halos around:"
jmolScript("\nmessage catpisb_displayed;\n");
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function makeSSBondsHelp()
{
var hiddenTot = getHiddenTot();
// (hiddenTot == 1 && hideHydrogen) means only hydrogen is hidden.
if (
(
((hiddenTot > 0 && preferenceDetails) || (hiddenTot > 1 && !preferenceDetails)) &&
!(hiddenTot == 1 && hideHydrogen)
) || (isolatedDescription != "")
)
alert("CAUTION: Portions of this model are not visible\n" +
"due to Hide or Isolate operations.\n" +
"Disulfide bonds involving invisible portions\n" +
"will NOT be shown.");
cancelCenteringHidingPreContacts("ssbonds stayBusy"); // in makeSSBondsHelp()
var ckbb, cklabels, ckconbb, ckcysnot, ckcolchain;
ckbb = cklabels = ckconbb = ckhidecysnot = ckcolchain = "";
if (showSSBondsBackbones)
{
ckbb = " checked ";
}
if (showSSBondsLabels)
{
cklabels = " checked ";
}
if (connectSSBondsBackbones)
{
ckconbb = " checked ";
}
if (hideCysNotSSBonded)
{
ckhidecysnot = " checked ";
}
if (colorSSBondsChain)
{
ckcolchain = " checked ";
}
var hh =
"";
return hh;
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function makeSulfursReport(hiddenTot)
{
// getSulfurCounts(); now done in moltab.js
var see_lnsr = "See Ligands and Non-Standard Residues in the " +
"Molecule Information Tab.";
var dsr = "";
if (hiddenTot > 0 || isolatedDescription != "")
{
if (modelCount > 1)
dsr +=
"These counts are for all of model 1, including portions not visible:";
else
dsr +=
"These counts are for the entire model, including portions not visible:";
}
else
{
if (modelCount > 1)
dsr += "In model 1, there are:";
else
dsr += 'There are:';
}
dsr += "- " + sulfurCount + ' sulfur atoms,';
var w = (sulfurCount == proteinSulfurCount)? "all": proteinSulfurCount;
dsr += " " + w + ' of which are in protein';
if (nonProteinSulfurCount > 0)
dsr += " (" + nonProteinSulfurCount + " not in protein: " +
see_lnsr + ")";
dsr += ".
";
dsr += "- " + (cysCount + dcyCount) + ' cysteines';
if (dcyCount) dsr += ' (' + dcyCount + ' of which are ' +
'D-cysteine, DCY)';
dsr += ', ';
if (cysCount + dcyCount)
{
if (disulfideCount == 0)
dsr += "but 0 disulfide bonds.
";
else
{
if ((cysCount + dcyCount) == (2 * disulfideCount))
w = "all";
else
w = (2 * disulfideCount);
dsr += " " + w + ' of which are in';
dsr += " " + disulfideCount + " disulfide bonds.";
}
}
else
dsr += "so 0 disulfide bonds."
if (nonStdProteinSulfurCount > 0)
dsr += "- " + nonStdProteinSulfurCount +
" sulfur atoms are in non-standard residues in protein. (" +
see_lnsr +
")
";
if (seleniumCount == 0)
dsr += "- No selenium.
";
else
{
dsr += "- " + seleniumCount + " selenium(s), ";
if (seleniumCount == proteinSeleniumCount)
dsr += "all in protein.
";
else
dsr += proteinSeleniumCount + " of which are in protein.";
}
if (cseCount == 0)
dsr += "- No " + cseLink + "selenocysteines.
";
else
dsr += "- " + cseCount + " " + cseLink + "selenocysteine(s).
";
dsr += "- " + metCount + " methionines";
if (mseCount == 0)
dsr += " (no " + mseLink + "selenomethionine)";
else
dsr += " plus " + mseCount + " " + mseLink +
"selenomethionine(s)";
if (metCount > 0 && mseCount > 0)
dsr += " (" + (metCount + mseCount) + " total)";
if (metCount > 0 || mseCount > 0)
dsr += ". To locate them, see Note 1 below.
";
else
dsr += ".";
dsr += " ";
return dsr;
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
var fixedTemperatureColorScheme =
' \
\
\
| 0 | \
25 | \
45 | \
50 | \
55 | \
75 | \
≥100 | \
';
var relativeTemperatureColorScheme =
' \
\
\
| min temp | \
| \
| \
| \
| \
| \
max temp | \
';
// for searching: makeLocalUncertaintyHelp makeTemperatureHelp
function makeUncertaintyHelp(forceAbs)
{
cancelCenteringHidingPreContacts("uncertainty stayBusy"); // in makeUncertaintyHelp()
if (forceAbs)
uncertaintyRelative = false;
var ckrel;
ckrel = ""
if (uncertaintyRelative)
{
ckrel = " checked ";
}
var hh =
"";
return hh;
}
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
function makeTempRow(thisC, oneChain, boldAv)
{
var boldon = boldoff = "";
if (boldAv)
{
boldon = "";
boldoff = "*";
}
var rowtxt =
' |