From: David van der Spoel Date: Fri, 7 Sep 2012 19:13:22 +0000 (+0200) Subject: Adapted NMR related data to new pdb format. X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?a=commitdiff_plain;h=1a875eb33ffbbf2da126ad63c0f6528b8a047e04;p=alexxy%2Fgromacs.git Adapted NMR related data to new pdb format. Since gromacs had adopted the pdb output format to some standard, the script to convert xplor files with NMR restratints, such as can be downloaded from the pdb do not work anymore. The script and accompanying table have been updated to work with the new pdb format and simultaneously the extra argument for a residue offset has been removed. Now the script can be run like xplor2gmx.pl conf.pdb < restraints.md > disre.itp Change-Id: I7c3c8bd49b002e2bf0760f4226c913aa36d64611 --- diff --git a/scripts/xplor2gmx.pl b/scripts/xplor2gmx.pl index 7769e03044..7422551d40 100755 --- a/scripts/xplor2gmx.pl +++ b/scripts/xplor2gmx.pl @@ -18,30 +18,31 @@ $debug = 1; # Turn atom name translation on and off $trans = 1; -$res0 = shift;# || die "I need the residue offset\n"; +#$res0 = shift;# || die "I need the residue offset\n"; $pdb = shift || die "I need the name of the pdb file with correct atom numbers\n"; $core = shift || "core.ndx"; -$tbl = "/home/spoel/gmxdev/share/top/atom_nom.tbl"; +$tbl = "$ENV{GMXDATA}/gromacs/top/atom_nom.tbl"; printf "[ distance_restraints ]\n"; printf "; Read an xplor distance restraint file, and output GROMACS distance restraints.\n"; printf "; This also needs a pdb file with correct GROMACS atom numbering.\n"; printf "; I used $pdb for the atom numbers\n"; printf "; This also needs the offset in residues.\n"; -printf "; I used $res0 for the residue offset\n"; +#printf "; I used $res0 for the residue offset\n"; # Read the pdb file # If things go wrong, check whether your pdb file is read correctly. $natom = 0; $nres = 0; +@resname = (); open(PDB,$pdb) || die "Can not open file $pdb\n"; while ($line = ) { if (index($line,"ATOM") >= 0) { @tmp = split(' ',$line); $aname[$natom] = $tmp[2]; $resnr[$natom] = $tmp[4]; - if ($resnr[$natom] > $nres) { - $rname[$nres] = $tmp[3]; + if (!defined $resname[$tmp[4]]) { + $resname[$tmp[4]] = $tmp[3]; $nres++; } $natom++; @@ -53,7 +54,7 @@ printf "; I found $nres residues in the pdb file $pdb\n"; if ($debug > 1) { for ($i = 0; ($i < $natom); $i ++) { printf("; %5d %5s %5s %5d\n",$i+1,$aname[$i], - $rname[$resnr[$i]-1],$resnr[$i]); + $resname[$resnr[$i]],$resnr[$i]); } } @@ -68,11 +69,11 @@ $ntbl=0; while ($line = ) { @ttt = split('#',$line); @tmp = split(' ',$ttt[0]); - if ($#tmp == 2) { + if ($#tmp == 3) { # New table entry $tblres[$ntbl] = $tmp[0]; $tblxplor[$ntbl] = $tmp[1]; - $tblgmx[$ntbl] = $tmp[2]; + $tblgmx[$ntbl] = $tmp[3]; $ntbl++; } } @@ -108,12 +109,12 @@ printf "; Read $ntbl entries from $tbl\n"; $ntranslated = 0; $nuntransltd = 0; sub transl_aname { - my $atom = shift(@_); - my $resnr = shift(@_); + my $resnm = shift; + my $atom = shift; if ( $trans == 1 ) { for(my $i = 0; ($i < $ntbl); $i ++) { - if ($tblres[$i] eq $rname[$resnr]) { + if ($tblres[$i] eq $resnm) { if ($tblxplor[$i] eq $atom) { $ntranslated++; return $tblgmx[$i]; @@ -123,33 +124,34 @@ sub transl_aname { } $nuntransltd++; if ($debug > 1) { - printf "; No name change for $rname[$resnr] $atom\n"; + printf "; No name change for $resname[$resnr] $atom\n"; } return $atom; } sub expand_template { my $atom = shift(@_); - my $rnum = shift(@_)-1; + my $rnum = shift(@_); my $bdone = 0; my @atoms; my $jj = 0; + die("No residue name for residue $rnum") if (!defined ($resname[$rnum])); for (my $tt=0; (($tt <= $#templates) && ($bdone == 0)); $tt++) { $templ = $templates[$tt]; if ($atom eq $templ->[0]) { for ($jj = 1; ($jj <= $#{$templ}); $jj++) { - push @atoms, transl_aname($templ->[$jj],$rnum); + push @atoms, transl_aname($resname[$rnum],$templ->[$jj]); } $bdone = 1; } } if ($bdone == 0) { - push @atoms, transl_aname($atom,$rnum); + push @atoms, transl_aname($resname[$rnum],$atom); } if ($debug > 0) { my $natom = $#atoms+1; - printf("; Found $natom elements for atom $rname[$rnum] %d $atom:", + printf("; Found $natom elements for atom $resname[$rnum] %d $atom:", $rnum+1); for $aa ( @atoms ) { printf " $aa"; @@ -203,12 +205,12 @@ while ($line = ) { $bCore = 1; foreach $a1 ( @at1 ) { @info1 = split(' ',$a1); - $r1 = $info1[1] - $res0; + $r1 = $info1[1]; @atoms1 = expand_template($info1[4],$r1); foreach $a2 ( @at2 ) { @info2 = split(' ',$a2); - $r2 = $info2[1] - $res0; + $r2 = $info2[1]; @atoms2 = expand_template($info2[4],$r2); for ($i = 0; ($i < $natom) && ($resnr[$i] < $r1); $i++) { ; } diff --git a/share/top/atom_nom.tbl b/share/top/atom_nom.tbl index 7b0ffb5376..34739164eb 100644 --- a/share/top/atom_nom.tbl +++ b/share/top/atom_nom.tbl @@ -54,354 +54,354 @@ # Note-6: Please report errors, updates, or extensions to Eldon Ulrich # (elu@nmrfam.wisc.edu) -# A.A. XPLOR MSI -# ---- ----- ---- - -ALA HN HN -ALA HA HA -ALA HB1 HB1 -ALA HB2 HB2 -ALA HB3 HB3 -ALA C C -ALA CA CA -ALA CB CB -ALA N N -ALA O O - -ARG HN HN -ARG HA HA -ARG HB2 HB1 -ARG HB1 HB2 -ARG HG2 HG1 -ARG HG1 HG2 -ARG HD2 HD1 -ARG HD1 HD2 -ARG HE HE -ARG HH11 HH11 -ARG HH12 HH12 -ARG HH21 HH22 -ARG HH22 HH21 -ARG C C -ARG CA CA -ARG CB CB -ARG CG CG -ARG CD CD -ARG CZ CZ -ARG N N -ARG NE NE -ARG NH1 NH1 -ARG NH2 NH2 -ARG O O - -ASP HN HN -ASP HA HA -ASP HB2 HB1 -ASP HB1 HB2 -ASP HD2 -ASP C C -ASP CA CA -ASP CB CB -ASP CG CG -ASP N N -ASP O O -ASP OD1 OD1 -ASP OD2 OD2 - -ASN HN HN -ASN HA HA -ASN HB2 HB1 -ASN HB1 HB2 -ASN HD21 HD21 -ASN HD22 HD22 -ASN C C -ASN CA CA -ASN CB CB -ASN CG CG -ASN N N -ASN ND2 ND2 -ASN O O -ASN OD1 OD1 - -CYS HN HN -CYS HA HA -CYS HB2 HB1 -CYS HB1 HB2 -CYS HG HG -CYS C C -CYS CA CA -CYS CB CB -CYS N N -CYS O O -CYS SG SG - -GLU HN HN -GLU HA HA -GLU HB2 HB1 -GLU HB1 HB2 -GLU HG2 HG1 -GLU HG1 HG2 -GLU HE2 -GLU C C -GLU CA CA -GLU CB CB -GLU CG CG -GLU CD CD -GLU N N -GLU O O -GLU OE1 OE1 -GLU OE2 OE2 - -GLN HN HN -GLN HA HA -GLN HB2 HB1 -GLN HB1 HB2 -GLN HG2 HG1 -GLN HG1 HG2 -GLN HE21 HE21 -GLN HE22 HE22 -GLN C C -GLN CA CA -GLN CB CB -GLN CG CG -GLN CD CD -GLN N N -GLN NE2 NE2 -GLN O O -GLN OE1 OE1 - -GLY HN HN -GLY HA2 HA1 -GLY HA1 HA2 -GLY C C -GLY CA CA -GLY N N -GLY O O - -HIS HN HN -HIS HA HA -HIS HB2 HB1 -HIS HB1 HB2 -HIS HD1 HD1 -HIS HD2 HD2 -HIS HE1 HE1 -HIS HE2 HE2 -HIS C C -HIS CA CA -HIS CB CB -HIS CG CG -HIS CD2 CD2 -HIS CE1 CE1 -HIS N N -HIS ND1 ND1 -HIS NE2 NE2 -HIS O O - -ILE HN HN -ILE HA HA -ILE HB HB -ILE HG12 HG11 -ILE HG11 HG12 -ILE HG21 HG21 -ILE HG22 HG22 -ILE HG23 HG23 -ILE HD11 HD11 -ILE HD12 HD12 -ILE HD13 HD13 -ILE C C -ILE CA CA -ILE CB CB -ILE CG1 CG1 -ILE CG2 CG2 -ILE CD1 CD1 -ILE N N -ILE O O - -LEU HN HN -LEU HA HA -LEU HB2 HB1 -LEU HB1 HB2 -LEU HG HG -LEU HD11 HD11 -LEU HD12 HD12 -LEU HD13 HD13 -LEU HD21 HD21 -LEU HD22 HD22 -LEU HD23 HD23 -LEU C C -LEU CA CA -LEU CB CB -LEU CG CG -LEU CD1 CD1 -LEU CD2 CD2 -LEU N N -LEU O O - -LYS HN HN -LYS HA HA -LYS HB2 HB1 -LYS HB1 HB2 -LYS HG2 HG1 -LYS HG1 HG2 -LYS HD2 HD1 -LYS HD1 HD2 -LYS HE2 HE1 -LYS HE1 HE2 -LYS HZ1 HZ1 -LYS HZ2 HZ2 -LYS HZ3 HZ3 -LYS C C -LYS CA CA -LYS CB CB -LYS CG CG -LYS CD CD -LYS CE CE -LYS N N -LYS NZ NZ -LYS O O - -MET HN HN -MET HA HA -MET HB2 HB1 -MET HB1 HB2 -MET HG2 HG1 -MET HG1 HG2 -MET HE1 HE1 -MET HE2 HE2 -MET HE3 HE3 -MET C C -MET CA CA -MET CB CB -MET CG CG -MET CE CE -MET N N -MET O O -MET SD SD - -PHE HN HN -PHE HA HA -PHE HB2 HB1 -PHE HB1 HB2 -PHE HD1 HD1 -PHE HD2 HD2 -PHE HE1 HE1 -PHE HE2 HE2 -PHE HZ HZ -PHE C C -PHE CA CA -PHE CB CB -PHE CG CG -PHE CD1 CD1 -PHE CD2 CD2 -PHE CE1 CE1 -PHE CE2 CE2 -PHE CZ CZ -PHE N N -PHE O O - -PRO HT2 HN2 -PRO HT1 HN1 -PRO HA HA -PRO HB2 HB1 -PRO HB1 HB2 -PRO HG2 HG1 -PRO HG1 HG2 -PRO HD2 HD1 -PRO HD1 HD2 -PRO C C -PRO CA CA -PRO CB CB -PRO CG CG -PRO CD CD -PRO N N -PRO O O - -SER HN HN -SER HA HA -SER HB2 HB1 -SER HB1 HB2 -SER HG HG -SER C C -SER CA CA -SER CB CB -SER N N -SER O O -SER OG OG - -THR HN HN -THR HA HA -THR HB HB -THR HG1 HG1 -THR HG21 HG21 -THR HG22 HG22 -THR HG23 HG23 -THR C C -THR CA CA -THR CB CB -THR CG2 CG2 -THR N N -THR O O -THR OG1 OG1 - -TRP HN HN -TRP HA HA -TRP HB2 HB1 -TRP HB1 HB2 -TRP HD1 HD1 -TRP HE1 HE1 -TRP HE3 HE3 -TRP HZ2 HZ2 -TRP HZ3 HZ3 -TRP HH2 HH2 -TRP C C -TRP CA CA -TRP CB CB -TRP CG CG -TRP CD1 CD1 -TRP CD2 CD2 -TRP CE2 CE2 -TRP CE3 CE3 -TRP CZ2 CZ2 -TRP CZ3 CZ3 -TRP CH2 CH2 -TRP N N -TRP NE1 NE1 -TRP O O - -TYR HN HN -TYR HA HA -TYR HB2 HB1 -TYR HB1 HB2 -TYR HD1 HD1 -TYR HD2 HD2 -TYR HE1 HE1 -TYR HE2 HE2 -TYR HH HH -TYR C C -TYR CA CA -TYR CB CB -TYR CG CG -TYR CD1 CD1 -TYR CD2 CD2 -TYR CE1 CE1 -TYR CE2 CE2 -TYR CZ CZ -TYR N N -TYR O O -TYR OH OH - -VAL HN HN -VAL HA HA -VAL HB HB -VAL HG11 HG21 -VAL HG12 HG22 -VAL HG13 HG23 -VAL HG21 HG11 -VAL HG22 HG12 -VAL HG23 HG13 -VAL C C -VAL CA CA -VAL CB CB -VAL CG1 CG2 -VAL CG2 CG1 -VAL N N -VAL O O +# A.A. XPLOR MSI GROMACS +# ---- ----- ---- ---- + +ALA HN HN HN +ALA HA HA HA +ALA HB1 HB1 HB1 +ALA HB2 HB2 HB2 +ALA HB3 HB3 HB3 +ALA C C C +ALA CA CA CA +ALA CB CB CB +ALA N N N +ALA O O O + +ARG HN HN HN +ARG HA HA HA +ARG HB2 HB1 HB1 +ARG HB1 HB2 HB2 +ARG HG2 HG1 HG1 +ARG HG1 HG2 HG2 +ARG HD2 HD1 HD1 +ARG HD1 HD2 HD2 +ARG HE HE HE +ARG HH11 HH11 1HH1 +ARG HH12 HH12 2HH1 +ARG HH21 HH22 2HH2 +ARG HH22 HH21 1HH2 +ARG C C C +ARG CA CA CA +ARG CB CB CB +ARG CG CG CG +ARG CD CD CD +ARG CZ CZ CZ +ARG N N N +ARG NE NE NE +ARG NH1 NH1 NH1 +ARG NH2 NH2 NH2 +ARG O O O + +ASP HN HN HN +ASP HA HA HA +ASP HB2 HB1 HB1 +ASP HB1 HB2 HB2 +ASP HD2 HD2 +ASP C C C +ASP CA CA CA +ASP CB CB CB +ASP CG CG CG +ASP N N N +ASP O O O +ASP OD1 OD1 OD1 +ASP OD2 OD2 OD2 + +ASN HN HN HN +ASN HA HA HA +ASN HB2 HB1 HB1 +ASN HB1 HB2 HB2 +ASN HD21 HD21 1HD2 +ASN HD22 HD22 2HD2 +ASN C C C +ASN CA CA CA +ASN CB CB CB +ASN CG CG CG +ASN N N N +ASN ND2 ND2 ND2 +ASN O O O +ASN OD1 OD1 OD1 + +CYS HN HN HN +CYS HA HA HA +CYS HB2 HB1 HB1 +CYS HB1 HB2 HB2 +CYS HG HG HG +CYS C C C +CYS CA CA CA +CYS CB CB CB +CYS N N N +CYS O O O +CYS SG SG SG + +GLU HN HN HN +GLU HA HA HA +GLU HB2 HB1 HB1 +GLU HB1 HB2 HB2 +GLU HG2 HG1 HG1 +GLU HG1 HG2 HG2 +GLU HE2 HE2 +GLU C C C +GLU CA CA CA +GLU CB CB CB +GLU CG CG CG +GLU CD CD CD +GLU N N N +GLU O O O +GLU OE1 OE1 OE1 +GLU OE2 OE2 OE2 + +GLN HN HN HN +GLN HA HA HA +GLN HB2 HB1 HB1 +GLN HB1 HB2 HB2 +GLN HG2 HG1 HG1 +GLN HG1 HG2 HG2 +GLN HE21 HE21 1HE2 +GLN HE22 HE22 2HE2 +GLN C C C +GLN CA CA CA +GLN CB CB CB +GLN CG CG CG +GLN CD CD CD +GLN N N N +GLN NE2 NE2 NE2 +GLN O O O +GLN OE1 OE1 OE1 + +GLY HN HN HN +GLY HA2 HA1 HA1 +GLY HA1 HA2 HA2 +GLY C C C +GLY CA CA CA +GLY N N N +GLY O O O + +HIS HN HN HN +HIS HA HA HA +HIS HB2 HB1 HB1 +HIS HB1 HB2 HB2 +HIS HD1 HD1 HD1 +HIS HD2 HD2 HD2 +HIS HE1 HE1 HE1 +HIS HE2 HE2 HE2 +HIS C C C +HIS CA CA CA +HIS CB CB CB +HIS CG CG CG +HIS CD2 CD2 CD2 +HIS CE1 CE1 CE1 +HIS N N N +HIS ND1 ND1 ND1 +HIS NE2 NE2 NE2 +HIS O O O + +ILE HN HN HN +ILE HA HA HA +ILE HB HB HB +ILE HG12 HG11 1HG1 +ILE HG11 HG12 2HG1 +ILE HG21 HG21 1HG2 +ILE HG22 HG22 2HG2 +ILE HG23 HG23 3HG2 +ILE HD11 HD11 1HD1 +ILE HD12 HD12 2HD1 +ILE HD13 HD13 3HD1 +ILE C C C +ILE CA CA CA +ILE CB CB CB +ILE CG1 CG1 CG1 +ILE CG2 CG2 CG2 +ILE CD1 CD1 CD1 +ILE N N N +ILE O O O + +LEU HN HN HN +LEU HA HA HA +LEU HB2 HB1 HB1 +LEU HB1 HB2 HB2 +LEU HG HG HG +LEU HD11 HD11 1HD1 +LEU HD12 HD12 2HD1 +LEU HD13 HD13 3HD1 +LEU HD21 HD21 1HD2 +LEU HD22 HD22 2HD2 +LEU HD23 HD23 3HD2 +LEU C C C +LEU CA CA CA +LEU CB CB CB +LEU CG CG CG +LEU CD1 CD1 CD1 +LEU CD2 CD2 CD2 +LEU N N N +LEU O O O + +LYS HN HN HN +LYS HA HA HA +LYS HB2 HB1 HB1 +LYS HB1 HB2 HB2 +LYS HG2 HG1 HG1 +LYS HG1 HG2 HG2 +LYS HD2 HD1 HD1 +LYS HD1 HD2 HD2 +LYS HE2 HE1 HE1 +LYS HE1 HE2 HE2 +LYS HZ1 HZ1 HZ1 +LYS HZ2 HZ2 HZ2 +LYS HZ3 HZ3 HZ3 +LYS C C C +LYS CA CA CA +LYS CB CB CB +LYS CG CG CG +LYS CD CD CD +LYS CE CE CE +LYS N N N +LYS NZ NZ NZ +LYS O O O + +MET HN HN HN +MET HA HA HA +MET HB2 HB1 HB1 +MET HB1 HB2 HB2 +MET HG2 HG1 HG1 +MET HG1 HG2 HG2 +MET HE1 HE1 HE1 +MET HE2 HE2 HE2 +MET HE3 HE3 HE3 +MET C C C +MET CA CA CA +MET CB CB CB +MET CG CG CG +MET CE CE CE +MET N N N +MET O O O +MET SD SD SD + +PHE HN HN HN +PHE HA HA HA +PHE HB2 HB1 HB1 +PHE HB1 HB2 HB2 +PHE HD1 HD1 HD1 +PHE HD2 HD2 HD2 +PHE HE1 HE1 HE1 +PHE HE2 HE2 HE2 +PHE HZ HZ HZ +PHE C C C +PHE CA CA CA +PHE CB CB CB +PHE CG CG CG +PHE CD1 CD1 CD1 +PHE CD2 CD2 CD2 +PHE CE1 CE1 CE1 +PHE CE2 CE2 CE2 +PHE CZ CZ CZ +PHE N N N +PHE O O O + +PRO HT2 HN2 HN2 +PRO HT1 HN1 HN1 +PRO HA HA HA +PRO HB2 HB1 HB1 +PRO HB1 HB2 HB2 +PRO HG2 HG1 HG1 +PRO HG1 HG2 HG2 +PRO HD2 HD1 HD1 +PRO HD1 HD2 HD2 +PRO C C C +PRO CA CA CA +PRO CB CB CB +PRO CG CG CG +PRO CD CD CD +PRO N N N +PRO O O O + +SER HN HN HN +SER HA HA HA +SER HB2 HB1 HB1 +SER HB1 HB2 HB2 +SER HG HG HG +SER C C C +SER CA CA CA +SER CB CB CB +SER N N N +SER O O O +SER OG OG OG + +THR HN HN HN +THR HA HA HA +THR HB HB HB +THR HG1 HG1 HG1 +THR HG21 HG21 1HG2 +THR HG22 HG22 2HG2 +THR HG23 HG23 3HG2 +THR C C C +THR CA CA CA +THR CB CB CB +THR CG2 CG2 CG2 +THR N N N +THR O O O +THR OG1 OG1 OG1 + +TRP HN HN HN +TRP HA HA HA +TRP HB2 HB1 HB1 +TRP HB1 HB2 HB2 +TRP HD1 HD1 HD1 +TRP HE1 HE1 HE1 +TRP HE3 HE3 HE3 +TRP HZ2 HZ2 HZ2 +TRP HZ3 HZ3 HZ3 +TRP HH2 HH2 HH2 +TRP C C C +TRP CA CA CA +TRP CB CB CB +TRP CG CG CG +TRP CD1 CD1 CD1 +TRP CD2 CD2 CD2 +TRP CE2 CE2 CE2 +TRP CE3 CE3 CE3 +TRP CZ2 CZ2 CZ2 +TRP CZ3 CZ3 CZ3 +TRP CH2 CH2 CH2 +TRP N N N +TRP NE1 NE1 NE1 +TRP O O O + +TYR HN HN HN +TYR HA HA HA +TYR HB2 HB1 HB1 +TYR HB1 HB2 HB2 +TYR HD1 HD1 HD1 +TYR HD2 HD2 HD2 +TYR HE1 HE1 HE1 +TYR HE2 HE2 HE2 +TYR HH HH HH +TYR C C C +TYR CA CA CA +TYR CB CB CB +TYR CG CG CG +TYR CD1 CD1 CD1 +TYR CD2 CD2 CD2 +TYR CE1 CE1 CE1 +TYR CE2 CE2 CE2 +TYR CZ CZ CZ +TYR N N N +TYR O O O +TYR OH OH OH + +VAL HN HN HN +VAL HA HA HA +VAL HB HB HB +VAL HG11 HG21 1HG2 +VAL HG12 HG22 2HG2 +VAL HG13 HG23 3HG2 +VAL HG21 HG11 1HG1 +VAL HG22 HG12 2HG1 +VAL HG23 HG13 3HG1 +VAL C C C +VAL CA CA CA +VAL CB CB CB +VAL CG1 CG2 CG2 +VAL CG2 CG1 CG1 +VAL N N N +VAL O O O