Difference between revisions of "Task4 Hemochromatosis Protocol"
Bernhoferm (talk | contribs) (→SwissModel) |
Bernhoferm (talk | contribs) (→Model creation) |
||
(6 intermediate revisions by the same user not shown) | |||
Line 42: | Line 42: | ||
=== I-Tasser === |
=== I-Tasser === |
||
+ | |||
+ | For I-Tasser we also used the [http://zhanglab.ccmb.med.umich.edu/I-TASSER/ Webserver], but with Option I to specify our template (without alignment). |
||
+ | |||
+ | === 3D-Jigsaw === |
||
+ | |||
+ | [http://bmm.cancerresearchuk.org/~populus/populus_submit.html Webserver]... love the web :P |
||
== Evaluation == |
== Evaluation == |
||
+ | |||
+ | |||
+ | For the native structure we used [http://www.ebi.ac.uk/pdbe-srv/view/entry/1a6z/summary.html 1a6z] and [http://www.ebi.ac.uk/pdbe-srv/view/entry/1de4/summary.html 1de4] for the complex structure. |
||
+ | |||
+ | A bash script was used to run TM-Score, TM-Align, and SAP for our models: |
||
+ | |||
+ | <source lang="bash"> |
||
+ | #!/bin/bash |
||
+ | |||
+ | TMSCORE="/mnt/project/pracstrucfunc12/bin/TMscore" |
||
+ | TMALIGN="/mnt/project/pracstrucfunc12/bin/TMalign" |
||
+ | RMSD="/mnt/project/pracstrucfunc12/bin/sap" |
||
+ | |||
+ | for model in `ls | grep .pdb` |
||
+ | do |
||
+ | MODELNAME=${model%.[^.]*} |
||
+ | echo "Processing model: "$MODELNAME |
||
+ | mkdir -p $MODELNAME |
||
+ | cd $MODELNAME |
||
+ | $TMSCORE ../$model ../1a6z.ent -o $MODELNAME"_native_tm.sup" > $MODELNAME"_native.tmscore" |
||
+ | $TMSCORE ../$model ../1de4.ent -o $MODELNAME"_complex_tm.sup" > $MODELNAME"_complex.tmscore" |
||
+ | $TMALIGN ../$model ../1a6z.ent -o $MODELNAME"_native_align.sup" > $MODELNAME"_native.tmalign" |
||
+ | $TMALIGN ../$model ../1de4.ent -o $MODELNAME"_complex_align.sup" > $MODELNAME"_complex.tmalign" |
||
+ | $RMSD ../$model ../1a6z.ent > $MODELNAME"_native.rmsd" |
||
+ | mv super.pdb $MODELNAME"_native_super.pdb" |
||
+ | $RMSD ../$model ../1de4.ent > $MODELNAME"_complex.rmsd" |
||
+ | mv super.pdb $MODELNAME"_complex_super.pdb" |
||
+ | cd .. |
||
+ | done |
||
+ | </source> |
||
+ | |||
+ | |||
+ | These scores were then extracted with a perl script: |
||
+ | |||
+ | <source lang="perl"> |
||
+ | #!/usr/local/bin/perl |
||
+ | use strict; |
||
+ | use warnings; |
||
+ | use diagnostics; |
||
+ | use sigtrap; |
||
+ | use autodie; |
||
+ | |||
+ | my $targetdir = "./"; |
||
+ | my $outFileNative = "native.txt"; |
||
+ | my $outFileComplex = "complex.txt"; |
||
+ | |||
+ | opendir (DIR, $targetdir) or die ("Could not open directory!"); |
||
+ | |||
+ | my @content= readdir(DIR); |
||
+ | |||
+ | closedir(DIR); |
||
+ | |||
+ | open (NATIVE, ">", $outFileNative) or die ("Could not open file!"); |
||
+ | open (COMPLEX, ">", $outFileComplex) or die ("Could not open file!"); |
||
+ | |||
+ | #print headers |
||
+ | print NATIVE "<figtable id=\"scores_native\">\n"; |
||
+ | print NATIVE "{| class=\"wikitable\" style=\"width: 65%; margin: 1em 1em 1em 0; border-collapse: collapse; border-style: solid; border-width:0px; border-color: #000\"\n"; |
||
+ | print NATIVE "|-\n"; |
||
+ | print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |Model\n"; |
||
+ | print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |Common residues\n"; |
||
+ | print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |TM-Score\n"; |
||
+ | print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |GDT-TS\n"; |
||
+ | print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |GDT-HA\n"; |
||
+ | print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |TM-Align\n"; |
||
+ | print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |Weighted RMSD\n"; |
||
+ | print NATIVE "|-\n"; |
||
+ | |||
+ | print COMPLEX "<figtable id=\"scores_complex\">\n"; |
||
+ | print COMPLEX "{| class=\"wikitable\" style=\"width: 65%; margin: 1em 1em 1em 0; border-collapse: collapse; border-style: solid; border-width:0px; border-color: #000\"\n"; |
||
+ | print COMPLEX "|-\n"; |
||
+ | print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |Model\n"; |
||
+ | print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |Common residues\n"; |
||
+ | print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |TM-Score\n"; |
||
+ | print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |GDT-TS\n"; |
||
+ | print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |GDT-HA\n"; |
||
+ | print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |TM-Align\n"; |
||
+ | print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |Weighted RMSD\n"; |
||
+ | print COMPLEX "|-\n"; |
||
+ | |||
+ | |||
+ | foreach my $dir (@content) |
||
+ | { |
||
+ | if (not $dir=~m/\./gi) |
||
+ | { |
||
+ | print "Extracting scores for $dir...\n"; |
||
+ | my @nativeTM = extractTM("$dir/$dir\_native.tmscore"); |
||
+ | my @complexTM = extractTM("$dir/$dir\_complex.tmscore"); |
||
+ | my @nativeTMA = extractTMA("$dir/$dir\_native.tmalign"); |
||
+ | my @complexTMA = extractTMA("$dir/$dir\_complex.tmalign"); |
||
+ | my @nativeRMSD = extractRMSD("$dir/$dir\_native.rmsd"); |
||
+ | my @complexRMSD = extractRMSD("$dir/$dir\_complex.rmsd"); |
||
+ | |||
+ | print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$dir\n"; |
||
+ | print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$nativeTM[0]\n"; |
||
+ | print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$nativeTM[1]\n"; |
||
+ | print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$nativeTM[2]\n"; |
||
+ | print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$nativeTM[3]\n"; |
||
+ | print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$nativeTMA[0]\n"; |
||
+ | print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$nativeRMSD[1] (over $nativeRMSD[0] atoms)\n"; |
||
+ | print NATIVE "|-\n"; |
||
+ | |||
+ | print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$dir\n"; |
||
+ | print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$complexTM[0]\n"; |
||
+ | print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$complexTM[1]\n"; |
||
+ | print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$complexTM[2]\n"; |
||
+ | print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$complexTM[3]\n"; |
||
+ | print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$complexTMA[0]\n"; |
||
+ | print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$complexRMSD[1] (over $complexRMSD[0] atoms)\n"; |
||
+ | print COMPLEX "|-\n"; |
||
+ | } |
||
+ | } |
||
+ | |||
+ | print NATIVE "|+ style=\"caption-side: bottom; text-align: left\" | <font size=1>'''TODO''': NATIVE.\n"; |
||
+ | print NATIVE "|}\n"; |
||
+ | print NATIVE "</figtable>\n"; |
||
+ | |||
+ | print COMPLEX "|+ style=\"caption-side: bottom; text-align: left\" | <font size=1>'''TODO''': COMPLEX.\n"; |
||
+ | print COMPLEX "|}\n"; |
||
+ | print COMPLEX "</figtable>\n"; |
||
+ | |||
+ | close COMPLEX; |
||
+ | close NATIVE; |
||
+ | |||
+ | |||
+ | sub extractTM |
||
+ | { |
||
+ | my $filename = $_[0]; |
||
+ | |||
+ | open (FILE, "<", $filename) or die "Could not open file!"; |
||
+ | |||
+ | my $commonResidues = ""; |
||
+ | my $tmScore = ""; |
||
+ | my $gdttsScore = ""; |
||
+ | my $gdthaScore = ""; |
||
+ | |||
+ | while (<FILE>) |
||
+ | { |
||
+ | my $line = $_; |
||
+ | |||
+ | if ($line=~m/^Number\sof\sresidues\sin\scommon\s*?=\s*?(\S+?)\s+?/gi) |
||
+ | { |
||
+ | $commonResidues = $1; |
||
+ | } |
||
+ | elsif ($line=~m/^TM-score\s*?=\s*?(\S+?)\s+?/gi) |
||
+ | { |
||
+ | $tmScore = $1; |
||
+ | } |
||
+ | elsif ($line=~m/^GDT-TS-score\s*?=\s*?(\S+?)\s+?/gi) |
||
+ | { |
||
+ | $gdttsScore = $1; |
||
+ | } |
||
+ | elsif ($line=~m/^GDT-HA-score\s*?=\s*?(\S+?)\s+?/gi) |
||
+ | { |
||
+ | $gdthaScore = $1; |
||
+ | } |
||
+ | } |
||
+ | |||
+ | print $commonResidues."\t"; |
||
+ | print $tmScore."\t"; |
||
+ | print $gdttsScore."\t"; |
||
+ | print $gdthaScore."\n"; |
||
+ | |||
+ | close FILE; |
||
+ | |||
+ | return ($commonResidues, $tmScore, $gdttsScore, $gdthaScore); |
||
+ | } |
||
+ | |||
+ | |||
+ | sub extractTMA |
||
+ | { |
||
+ | my $filename = $_[0]; |
||
+ | |||
+ | open (FILE, "<", $filename) or die "Could not open file!"; |
||
+ | |||
+ | my $tmScore = ""; |
||
+ | |||
+ | while (<FILE>) |
||
+ | { |
||
+ | my $line = $_; |
||
+ | |||
+ | if ($line=~m/TM-score\s*?=\s*?(\S+?)\s*?,/gi) |
||
+ | { |
||
+ | $tmScore = $1; |
||
+ | } |
||
+ | } |
||
+ | |||
+ | print $tmScore."\n"; |
||
+ | |||
+ | close FILE; |
||
+ | |||
+ | return ($tmScore); |
||
+ | } |
||
+ | |||
+ | |||
+ | sub extractRMSD |
||
+ | { |
||
+ | my $filename = $_[0]; |
||
+ | |||
+ | open (FILE, "<", $filename) or die "Could not open file!"; |
||
+ | |||
+ | my $commonResidues = ""; |
||
+ | my $rmsdScore = ""; |
||
+ | |||
+ | while (<FILE>) |
||
+ | { |
||
+ | my $line = $_; |
||
+ | |||
+ | if ($line=~m/^Weighted\sRMSd\s*?=\s*?(\S+?)\s*?\(over\s*?(\S+?)\s+?/gi) |
||
+ | { |
||
+ | $rmsdScore = $1; |
||
+ | $commonResidues = $2; |
||
+ | } |
||
+ | } |
||
+ | |||
+ | print $commonResidues."\t"; |
||
+ | print $rmsdScore."\n"; |
||
+ | |||
+ | close FILE; |
||
+ | |||
+ | return ($commonResidues, $rmsdScore); |
||
+ | } |
||
+ | </source> |
||
== Other == |
== Other == |
Latest revision as of 00:13, 4 June 2012
Contents
Template search
Query sequence used: Q30201
HHPred
We used HHPred (Webserver) to search for homologs. Standard parameters were used (DB: pdb70_15May12).
Weblink to results (as long as they are online): results
COMA
Another search was performed using COMA (Webserver). Again standard parameters were kept (DB: pdb40_2012-03-22).
Weblink to results (as long as they are online): results
Model creation
Modeller
SwissModel
We used the Webserver to produce our models.
I-Tasser
For I-Tasser we also used the Webserver, but with Option I to specify our template (without alignment).
3D-Jigsaw
Webserver... love the web :P
Evaluation
For the native structure we used 1a6z and 1de4 for the complex structure.
A bash script was used to run TM-Score, TM-Align, and SAP for our models:
<source lang="bash">
- !/bin/bash
TMSCORE="/mnt/project/pracstrucfunc12/bin/TMscore" TMALIGN="/mnt/project/pracstrucfunc12/bin/TMalign" RMSD="/mnt/project/pracstrucfunc12/bin/sap"
for model in `ls | grep .pdb` do MODELNAME=${model%.[^.]*} echo "Processing model: "$MODELNAME mkdir -p $MODELNAME cd $MODELNAME $TMSCORE ../$model ../1a6z.ent -o $MODELNAME"_native_tm.sup" > $MODELNAME"_native.tmscore" $TMSCORE ../$model ../1de4.ent -o $MODELNAME"_complex_tm.sup" > $MODELNAME"_complex.tmscore" $TMALIGN ../$model ../1a6z.ent -o $MODELNAME"_native_align.sup" > $MODELNAME"_native.tmalign" $TMALIGN ../$model ../1de4.ent -o $MODELNAME"_complex_align.sup" > $MODELNAME"_complex.tmalign" $RMSD ../$model ../1a6z.ent > $MODELNAME"_native.rmsd" mv super.pdb $MODELNAME"_native_super.pdb" $RMSD ../$model ../1de4.ent > $MODELNAME"_complex.rmsd" mv super.pdb $MODELNAME"_complex_super.pdb" cd .. done </source>
These scores were then extracted with a perl script:
<source lang="perl">
- !/usr/local/bin/perl
use strict; use warnings; use diagnostics; use sigtrap; use autodie;
my $targetdir = "./"; my $outFileNative = "native.txt"; my $outFileComplex = "complex.txt";
opendir (DIR, $targetdir) or die ("Could not open directory!");
my @content= readdir(DIR);
closedir(DIR);
open (NATIVE, ">", $outFileNative) or die ("Could not open file!"); open (COMPLEX, ">", $outFileComplex) or die ("Could not open file!");
- print headers
print NATIVE "<figtable id=\"scores_native\">\n"; print NATIVE "{| class=\"wikitable\" style=\"width: 65%; margin: 1em 1em 1em 0; border-collapse: collapse; border-style: solid; border-width:0px; border-color: #000\"\n"; print NATIVE "|-\n"; print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |Model\n"; print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |Common residues\n"; print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |TM-Score\n"; print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |GDT-TS\n"; print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |GDT-HA\n"; print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |TM-Align\n"; print NATIVE "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |Weighted RMSD\n"; print NATIVE "|-\n";
print COMPLEX "<figtable id=\"scores_complex\">\n"; print COMPLEX "{| class=\"wikitable\" style=\"width: 65%; margin: 1em 1em 1em 0; border-collapse: collapse; border-style: solid; border-width:0px; border-color: #000\"\n"; print COMPLEX "|-\n"; print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |Model\n"; print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |Common residues\n"; print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |TM-Score\n"; print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |GDT-TS\n"; print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |GDT-HA\n"; print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |TM-Align\n"; print COMPLEX "! style=\"text-align:left; border-style: solid; border-width: 0 0 2px 0\" |Weighted RMSD\n"; print COMPLEX "|-\n";
foreach my $dir (@content)
{
if (not $dir=~m/\./gi)
{
print "Extracting scores for $dir...\n";
my @nativeTM = extractTM("$dir/$dir\_native.tmscore");
my @complexTM = extractTM("$dir/$dir\_complex.tmscore");
my @nativeTMA = extractTMA("$dir/$dir\_native.tmalign");
my @complexTMA = extractTMA("$dir/$dir\_complex.tmalign");
my @nativeRMSD = extractRMSD("$dir/$dir\_native.rmsd");
my @complexRMSD = extractRMSD("$dir/$dir\_complex.rmsd");
print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$dir\n"; print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$nativeTM[0]\n"; print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$nativeTM[1]\n"; print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$nativeTM[2]\n"; print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$nativeTM[3]\n"; print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$nativeTMA[0]\n"; print NATIVE "| style=\"border-style: solid; border-width: 0 0 0 0\" |$nativeRMSD[1] (over $nativeRMSD[0] atoms)\n"; print NATIVE "|-\n";
print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$dir\n"; print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$complexTM[0]\n"; print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$complexTM[1]\n"; print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$complexTM[2]\n"; print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$complexTM[3]\n"; print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$complexTMA[0]\n"; print COMPLEX "| style=\"border-style: solid; border-width: 0 0 0 0\" |$complexRMSD[1] (over $complexRMSD[0] atoms)\n"; print COMPLEX "|-\n"; } }
print NATIVE "|+ style=\"caption-side: bottom; text-align: left\" | TODO: NATIVE.\n"; print NATIVE "|}\n"; print NATIVE "</figtable>\n";
print COMPLEX "|+ style=\"caption-side: bottom; text-align: left\" | TODO: COMPLEX.\n"; print COMPLEX "|}\n"; print COMPLEX "</figtable>\n";
close COMPLEX; close NATIVE;
sub extractTM
{
my $filename = $_[0];
open (FILE, "<", $filename) or die "Could not open file!";
my $commonResidues = ""; my $tmScore = ""; my $gdttsScore = ""; my $gdthaScore = "";
while (<FILE>) { my $line = $_;
if ($line=~m/^Number\sof\sresidues\sin\scommon\s*?=\s*?(\S+?)\s+?/gi) { $commonResidues = $1; } elsif ($line=~m/^TM-score\s*?=\s*?(\S+?)\s+?/gi) { $tmScore = $1; } elsif ($line=~m/^GDT-TS-score\s*?=\s*?(\S+?)\s+?/gi) { $gdttsScore = $1; } elsif ($line=~m/^GDT-HA-score\s*?=\s*?(\S+?)\s+?/gi) { $gdthaScore = $1; } }
print $commonResidues."\t"; print $tmScore."\t"; print $gdttsScore."\t"; print $gdthaScore."\n";
close FILE;
return ($commonResidues, $tmScore, $gdttsScore, $gdthaScore); }
sub extractTMA
{
my $filename = $_[0];
open (FILE, "<", $filename) or die "Could not open file!";
my $tmScore = "";
while (<FILE>) { my $line = $_;
if ($line=~m/TM-score\s*?=\s*?(\S+?)\s*?,/gi) { $tmScore = $1; } }
print $tmScore."\n";
close FILE;
return ($tmScore); }
sub extractRMSD
{
my $filename = $_[0];
open (FILE, "<", $filename) or die "Could not open file!";
my $commonResidues = ""; my $rmsdScore = "";
while (<FILE>) { my $line = $_;
if ($line=~m/^Weighted\sRMSd\s*?=\s*?(\S+?)\s*?\(over\s*?(\S+?)\s+?/gi) { $rmsdScore = $1; $commonResidues = $2; } }
print $commonResidues."\t"; print $rmsdScore."\n";
close FILE;
return ($commonResidues, $rmsdScore); } </source>
Other