[MMTK] Sidechain substitution

Konrad Hinsen hinsen@cnrs-orleans.fr
24 Sep 2002 18:26:27 +0200

Kyle Krull <krullk@purdue.edu> writes:

>         I am trying to substitute sidechains for one another to model
> mutations.  To do this, I first remove all the atoms and bonds from the
> original sidechain.  Then, I copy all the atoms and bonds from the new
> sidechain to the original backbone.  Finally, I make a new bond joining

A simpler way would be to construct a Residue object with the new
sidechain and use Proteins.PeptideChain.replaceResidue() to put
it in the right place. That's what MMTK does to replace cysteine by
cystine residues for S-S bridges, you can look at that code as an

One problem with your approach is that the residue retains its identity.
MMTK will thus use the original database entry for that residue when
looking up force field parameters, PDB atom names, etc.

In general, every chemical object should be constructed from a
database template, to avoid trouble. The only exception is chain
molecules, such as peptide chains, but their elements should again be
built from database templates. If you want to construct a molecule (or
group) algorithmically, I recommend to have your code create a
database entry and then use it immediately.

> PeptideChain into a universe and evaluate its energy.  This works in most
> cases, but I get the following error sometimes:
> KeyError: No parameters for angle Atom .Pro1.sidechain.H_delta_3--Atom
> .Pro1.sidechain.C_delta--Atom .Pro1.peptide.N

This might be due to the lookup problem I have described above. Just
check the Amber atom types (residue.getAtomProperty(atom,
'amber_atom_type')) for the three atoms listed (I suspect that at
least one of them is not reasonable), and then see if a corresponding
angle term exists in the Amber parameter file. If yes, send me
a bug report!

Konrad Hinsen                            | E-Mail: hinsen@cnrs-orleans.fr
Centre de Biophysique Moleculaire (CNRS) | Tel.: +33-
Rue Charles Sadron                       | Fax:  +33-
45071 Orleans Cedex 2                    | Deutsch/Esperanto/English/
France                                   | Nederlands/Francais