Difference between revisions of "Task4 Hemochromatosis Protocol"

From Bioinformatikpedia
(Model creation)
(Model creation)
 
(7 intermediate revisions by the same user not shown)
Line 38: Line 38:
   
 
=== SwissModel ===
 
=== SwissModel ===
  +
  +
We used the [http://swissmodel.expasy.org/workspace/index.php?func=modelling_simple1 Webserver] to produce our models.
   
 
=== 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 01:13, 4 June 2012

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">

  1. !/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">

  1. !/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!");

  1. 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