Thursday, September 25, 2008

mutate protein in VMD

(From VMD mail list : http://www.ks.uiuc.edu/Research/vmd/mailing_list/vmd-l/2018.html)

This is a frequently requested feature. Here's the current solution.

If you're building a psf file using psfgen there is a mutate command that
can by applied during segment generation, for example:

segment BPTI {
pdb output/6PTI_protein.pdb
mutate 23 ALA ; # mutate residue 23 to ALA
}

When you try to load coordinates using coordpdb you'll get correct mapping
for the backbone atoms, but the sidechain may have some unfortunate name
conflicts. If this happens you can rename the atom names for that one
residue in the source pdb file (pdbalias won't help since it works on all
residues of a type). While you're at it, you can rename the residue so
you won't need the mutate command either. Here's a full example:

mol pdbload 6PTI
set res29 [atomselect top "resid 29"]
$res29 set resname ARG
set good [atomselect top "protein and not (resid 29 and not backbone)"]
$good writepdb /tmp/bpti.pdb
package require psfgen
topology /Projects/namd2/toppar/top_all22_prot.inp
segment BPTI {
pdb /tmp/bpti.pdb
}
coordpdb /tmp/bpti.pdb BPTI
guesscoord
writepsf bpti.psf
writepdb bpti.pdb
mol load psf bpti.psf pdb bpti.pdb

In this case we threw out all of the sidechain coordinates for the mutated
residue to be absolutely safe. This results in a different rotamer for
the side chain. If we use all of the coordinates (i.e., just "protein"
instead of "protein and not (resid 29 and not backbone)" we get a closer
match to the original structure since there is some uniformity in atom
names between different residue types. In a more complex case you could
use VMD's atom selections to rename individual atoms in the mutated
residue to match the corresponding atoms in the topology file.

No comments: