Subject: converting MSI pdb files to Amber

David Case wrote:
> It is very common to have to manually edit incoming pdb
> files to get everything to match.

Exactly. Below is a simple perl script that I use to take care of
mapping MSI's flavor of amino acid PDB atom names to a LEaP/all_amino94
compatible naming scheme. Also take a close look at the addPdbAtomMap
and addPdbResMap functionalities in the LEaP manual.

#!/usr/bin/perl
#
# Use this script like:
# msi2amb < my.pdb
#

while (<>){
if ( /ALA/ && /\s?HB\s/ ){
print; next;
}
elsif ( /\s1HB\s/ ){
s/1HB/2HB/;
print; next;
}
elsif ( /\s2HB\s/ ){
s/2HB/3HB/;
print; next;
}

elsif ( /\s1HG\s/ ){
s/1HG/2HG/;
print; next;
}
elsif ( /\s2HG\s/ ){
s/2HG/3HG/;
print; next;
}

elsif ( /GLY/ && /\s1HA\s/ ){
s/1HA/2HA/;
print; next;
}
elsif ( /GLY/ && /\s2HA\s/ ){
s/2HA/3HA/;
print; next;
}

elsif ( /ILE/ && /\s1HG1\s/ ){
s/1HG1/2HG1/;
print; next;
}
elsif ( /ILE/ && /\s2HG1\s/ ){
s/2HG1/3HG1/;
print; next;
}
elsif ( /\s1HD\s/ ){
s/1HD/2HD/;
print; next;
}
elsif ( /\s2HD\s/ ){
s/2HD/3HD/;
print; next;
}
elsif ( /LYS/ && /\s1HE\s/ ){
s/1HE/2HE/;
print; next;
}
elsif ( /LYS/ && /\s2HE\s/ ){
s/2HE/3HE/;
print; next;
}
elsif ( /\s1H\s/ ){
s/1H / H1/;
print; next;
}
elsif ( /\s2H\s/ ){
s/2H / H2/;
print; next;
}
else{
print;
}
}
exit;