Difference between revisions of "Journal Task4 PKU"

From Bioinformatikpedia
(single template)
 
(5 intermediate revisions by one other user not shown)
Line 109: Line 109:
 
close OUT20;
 
close OUT20;
 
</source>
 
</source>
  +
=== PDBe ===
  +
<source lang="perl">
  +
my $id;
  +
my $Evalue;
  +
my $Identities;
  +
my $bool = "F";
  +
  +
open(IN,"<". $ARGV[0]);
  +
open(OUT80, ">dataset_80.txt");
  +
open(OUT40, ">dataset_40.txt");
  +
open(OUT20, ">dataset_20.txt");
  +
  +
mkdir("output");
  +
  +
while(<IN>) {
  +
chomp;
  +
  +
if( ($_ =~ /^\d+/ )) {
  +
@linesplit = split( /\t/,$_);
  +
  +
$id = $linesplit[0];
  +
$Evalue = $linesplit[8];
  +
$Identities = $linesplit[7];
  +
if($Evalue <= $ARGV[1] && $Identities > 80){
  +
print OUT80 "$id\t$Evalue\t$Identities\n";
  +
@args = ("wget", "http://pdb.rcsb.org/pdb/files/". $id . ".pdb", "--output-document=output/$id.pdb");
  +
system(@args) == 0 or die "system @args failed: $?"
  +
}
  +
elsif($Evalue <= $ARGV[1] && $Identities < 30){
  +
print OUT20 "$id\t$Evalue\t$Identities\n";
  +
@args = ("wget", "http://pdb.rcsb.org/pdb/files/". $id . ".pdb", "--output-document=output/$id.pdb");
  +
system(@args) == 0 or die "system @args failed: $?"
  +
}
  +
elsif($Evalue <= $ARGV[1] && $Identities > 40)
  +
{
  +
print OUT40 "$id\t$Evalue\t$Identities\n";
  +
@args = ("wget", "http://pdb.rcsb.org/pdb/files/". $id . ".pdb", "--output-document=output/$id.pdb");
  +
system(@args) == 0 or die "system @args failed: $?"
  +
}
  +
}
  +
  +
}
  +
close OUT80;
  +
close OUT40;
  +
close OUT20;
  +
</source>
  +
  +
== Modeller ==
  +
Modeller needs the target as a .pir-file which we provided as mentioned above
  +
>P1;2pah
  +
sequence:2pah:::::::0.00: 0.00
  +
MSTAVLENPGLGRKLSDFGQETSYIEDNCNQNGAISLIFSLKEEVGALAKVLRLFEENDV
  +
NLTHIESRPSRLKKDEYEFFTHLDKRSLPALTNIIKILRHDIGATVHELSRDKKKDTVPW
  +
FPRTIQELDRFANQILSYGAELDADHPGFKDPVYRARRKQFADIAYNYRHGQPIPRVEYM
  +
EEEKKTWGTVFKTLKSLYKTHACYEYNHIFPLLEKYCGFHEDNIPQLEDVSQFLQTCTGF
  +
RLRPVAGLLSSRDFLGGLAFRVFHCTQYIRHGSKPMYTPEPDICHELLGHVPLFSDRSFA
  +
QFSQEIGLASLGAPDEYIEKLATIYWFTVEFGLCKQGDSIKAYGAGLLSSFGELQYCLSE
  +
KPKLLPLELEKTAIQNYTVTEFQPLYYVAESFNDAKEKVRNFAATIPRPFSVRYDPYTQR
  +
IEVLDNTQQLKILADSINSEIGILCSALQKIK*
  +
  +
=== single template ===
  +
For a single template we used the two scripts as mentioned in the [[Using_Modeller_for_TASK_4|tutorial]] created last year. In the following we only show one example of our scripts.
  +
----
  +
'''Alignment step'''
  +
<source lang="python">
  +
from modeller import *
  +
  +
log.verbose()
  +
env = environ()
  +
aln = alignment(env)
  +
mdl = model(env, file='input/1phz', model_segment=('FIRST:@', 'END:'))
  +
aln.append_model(mdl, align_codes='1phz', atom_files='1phz')
  +
aln.append(file='input/2pah.pir', align_codes='2pah')
  +
aln.align2d()
  +
aln.check()
  +
aln.write(file='output/1phz-1pah-2d.ali', alignment_format='PIR')
  +
aln.malign()
  +
aln.check()
  +
aln.write(file='output/1phz-1pah.ali', alignment_format='PIR')
  +
</source>
  +
  +
----
  +
'''Modelling step'''
  +
<source lang="python">
  +
from modeller import *
  +
from modeller.automodel import *
  +
  +
log.verbose()
  +
env = environ()
  +
a = automodel(env,
  +
alnfile = 'output/1phz-2pah.ali',
  +
knowns = '1phz',
  +
sequence = '2pah',
  +
assess_methods=(assess.DOPE, assess.GA341))
  +
a.starting_model= 1
  +
a.ending_model = 1
  +
a.make()
  +
</source>
  +
  +
  +
[[Category: Phenylketonuria 2012]]

Latest revision as of 11:56, 29 August 2012

Phenylketonuria » Homology based structure predictions » Journal


Datasets

To get homologous structures we performed three different searches with three different web-services and compared them to our findings from Task2. We got three outputfiles which were parsed and the related files got downloaded from the PDB by using these scripts

HHPred

<source lang="perl"> my $id; my $Evalue; my $Identities; my $bool = "F";

open(IN,"<". $ARGV[0]); open(OUT80, ">dataset_80.txt"); open(OUT40, ">dataset_40.txt"); open(OUT20, ">dataset_20.txt");

mkdir("output");

while(<IN>) { chomp; if( ($_ =~ /^>\d+/ )) { $_ =~ />(.{4}).+/; $id = $1; $bool ="T"; } if($bool eq "T" && $_ =~ /^.*Probab/) { $_ =~ /^.*Probab=.+E-value=(.+)\s+Score=.+Aligned_cols=.+Identities=(.+)%\s+Similarity=.+/; $bool ="F"; $Evalue = $1; $Identities = $2; if($Evalue <= $ARGV[1] && $Identities > 80){ print OUT80 "$id\t$Evalue\t$Identities\n"; @args = ("wget", "http://pdb.rcsb.org/pdb/files/". $id . ".pdb", "--output-document=output/$id.pdb"); system(@args) == 0 or die "system @args failed: $?" } elsif($Evalue <= $ARGV[1] && $Identities < 30){ print OUT20 "$id\t$Evalue\t$Identities\n"; @args = ("wget", "http://pdb.rcsb.org/pdb/files/". $id . ".pdb", "--output-document=output/$id.pdb"); system(@args) == 0 or die "system @args failed: $?" } elsif($Evalue <= $ARGV[1] && $Identities > 40) { print OUT40 "$id\t$Evalue\t$Identities\n"; @args = ("wget", "http://pdb.rcsb.org/pdb/files/". $id . ".pdb", "--output-document=output/$id.pdb"); system(@args) == 0 or die "system @args failed: $?" } } } close OUT80; close OUT40; close OUT20; </source>

Coma

<source lang="perl"> my $id; my $Evalue; my $Identities; my $Positives; my $bool = "F";

open(IN,"<". $ARGV[0]); open(OUT80, ">dataset_coma_80.txt"); open(OUT40, ">dataset_coma_40.txt"); open(OUT20, ">dataset_coma_20.txt");

mkdir("outputcoma");

while(<IN>) { chomp; if( ($_ =~ /^>\d+/ )) { $_ =~ />(.{4}).+/; $id = $1; $bool ="T"; } elsif($bool eq "T" && $_ =~ /^Score/){ $_ =~ /.+Expect\s+=\s+(.+)\s+P-value.+/; $Evalue = $1; } elsif($bool eq "T" && $_ =~ /^Identities/) { $_ =~ /Identities.+\((\d+)%\)\s+Positives.+\((\d+)%\)\s+Gaps.+/; $bool ="F"; $Identities = $1; $Positives = $2; if($Evalue <= $ARGV[1] && $Identities > 80){ print OUT80 "$id\t$Evalue\t$Identities\t$Positives\n"; @args = ("wget", "http://pdb.rcsb.org/pdb/files/". $id . ".pdb", "--output-document=outputcoma/$id.pdb"); system(@args) == 0 or die "system @args failed: $?" } elsif($Evalue <= $ARGV[1] && $Identities < 30){ print OUT20 "$id\t$Evalue\t$Identities\t$Positives\n"; @args = ("wget", "http://pdb.rcsb.org/pdb/files/". $id . ".pdb", "--output-document=outputcoma/$id.pdb"); system(@args) == 0 or die "system @args failed: $?" } elsif($Evalue <= $ARGV[1] && $Identities > 40) { print OUT40 "$id\t$Evalue\t$Identities\t$Positives\n"; @args = ("wget", "http://pdb.rcsb.org/pdb/files/". $id . ".pdb", "--output-document=outputcoma/$id.pdb"); system(@args) == 0 or die "system @args failed: $?" } } }

close OUT80; close OUT40; close OUT20; </source>

PDBe

<source lang="perl"> my $id; my $Evalue; my $Identities; my $bool = "F";

open(IN,"<". $ARGV[0]); open(OUT80, ">dataset_80.txt"); open(OUT40, ">dataset_40.txt"); open(OUT20, ">dataset_20.txt");

mkdir("output");

while(<IN>) { chomp;

if( ($_ =~ /^\d+/ )) { @linesplit = split( /\t/,$_);

$id = $linesplit[0]; $Evalue = $linesplit[8]; $Identities = $linesplit[7]; if($Evalue <= $ARGV[1] && $Identities > 80){ print OUT80 "$id\t$Evalue\t$Identities\n"; @args = ("wget", "http://pdb.rcsb.org/pdb/files/". $id . ".pdb", "--output-document=output/$id.pdb"); system(@args) == 0 or die "system @args failed: $?" } elsif($Evalue <= $ARGV[1] && $Identities < 30){ print OUT20 "$id\t$Evalue\t$Identities\n"; @args = ("wget", "http://pdb.rcsb.org/pdb/files/". $id . ".pdb", "--output-document=output/$id.pdb"); system(@args) == 0 or die "system @args failed: $?" } elsif($Evalue <= $ARGV[1] && $Identities > 40) { print OUT40 "$id\t$Evalue\t$Identities\n"; @args = ("wget", "http://pdb.rcsb.org/pdb/files/". $id . ".pdb", "--output-document=output/$id.pdb"); system(@args) == 0 or die "system @args failed: $?" } }

} close OUT80; close OUT40; close OUT20; </source>

Modeller

Modeller needs the target as a .pir-file which we provided as mentioned above

>P1;2pah
sequence:2pah:::::::0.00: 0.00
MSTAVLENPGLGRKLSDFGQETSYIEDNCNQNGAISLIFSLKEEVGALAKVLRLFEENDV
NLTHIESRPSRLKKDEYEFFTHLDKRSLPALTNIIKILRHDIGATVHELSRDKKKDTVPW
FPRTIQELDRFANQILSYGAELDADHPGFKDPVYRARRKQFADIAYNYRHGQPIPRVEYM
EEEKKTWGTVFKTLKSLYKTHACYEYNHIFPLLEKYCGFHEDNIPQLEDVSQFLQTCTGF
RLRPVAGLLSSRDFLGGLAFRVFHCTQYIRHGSKPMYTPEPDICHELLGHVPLFSDRSFA
QFSQEIGLASLGAPDEYIEKLATIYWFTVEFGLCKQGDSIKAYGAGLLSSFGELQYCLSE
KPKLLPLELEKTAIQNYTVTEFQPLYYVAESFNDAKEKVRNFAATIPRPFSVRYDPYTQR
IEVLDNTQQLKILADSINSEIGILCSALQKIK*

single template

For a single template we used the two scripts as mentioned in the tutorial created last year. In the following we only show one example of our scripts.


Alignment step <source lang="python"> from modeller import *

log.verbose() env = environ() aln = alignment(env) mdl = model(env, file='input/1phz', model_segment=('FIRST:@', 'END:')) aln.append_model(mdl, align_codes='1phz', atom_files='1phz') aln.append(file='input/2pah.pir', align_codes='2pah') aln.align2d() aln.check() aln.write(file='output/1phz-1pah-2d.ali', alignment_format='PIR') aln.malign() aln.check() aln.write(file='output/1phz-1pah.ali', alignment_format='PIR') </source>


Modelling step <source lang="python"> from modeller import * from modeller.automodel import *

log.verbose() env = environ() a = automodel(env,

            alnfile  = 'output/1phz-2pah.ali',   
            knowns   = '1phz',              
            sequence = '2pah',
            assess_methods=(assess.DOPE, assess.GA341))

a.starting_model= 1 a.ending_model = 1 a.make() </source>