Difference between revisions of "Phenylketonuria/Task3/Scripts"

From Bioinformatikpedia
Line 1: Line 1:
This script reads an input file in ReProf format or PsiPred and filters the file for the secondary structur presented with E,H and L/C.<br>
+
This script reads an input file in ReProf format or PsiPred and filters the file for the secondary structur presented with E,H and L/C. Also it can read a DSSP file. If the structure forms a loop or irregular a "-" is inserted.<br>
 
You can find the script in <code>/mnt/home/student/waldraffs/Masterpraktikum/Task3/filter_secStruc.pl</code>
 
You can find the script in <code>/mnt/home/student/waldraffs/Masterpraktikum/Task3/filter_secStruc.pl</code>
   
Usage: perl filter_secStrucpl -inp <input-file in ReProf format> -out <output-file> -reprof|-psipred
+
Usage: perl filter_secStrucpl -inp <input-file in ReProf format> -out <output-file> -reprof|-psipred|-dssp
-reprof: if the input file is result of a ReProf run
+
-reprof: if the input file is result of a ReProf run.
-psipred: if the input file is result of a PsiPred run
+
-psipred: if the input file is result of a PsiPred run.
  +
-dssp: if the input file is result of a DSSP run.
   
 
The output is the secondary structure shown with the letters E, H and L/C.
 
The output is the secondary structure shown with the letters E, H and L/C.
Line 18: Line 19:
 
my $reprof = 0;
 
my $reprof = 0;
 
my $psipred = 0;
 
my $psipred = 0;
  +
my $dssp = 0;
   
 
# Reads the command line parameters
 
# Reads the command line parameters
Line 32: Line 34:
 
if($ARGV[$i] eq "-psipred"){
 
if($ARGV[$i] eq "-psipred"){
 
$psipred = 1;
 
$psipred = 1;
  +
}
  +
if($ARGV[$i] eq "-dssp"){
  +
$dssp = 1;
 
}
 
}
 
}
 
}
   
 
if(!$inp && !$out){
 
if(!$inp && !$out){
print "Usage: filter_secStruc.pl -inp <input-file(.reprof)> -out <output-file> -reprof|-psipred"
+
print "Usage: filter_secStruc.pl -inp <input-file(.reprof)> -out <output-file> -reprof|-psipred|-dssp"
 
}
 
}
   
Line 49: Line 54:
 
if($no == 1){
 
if($no == 1){
 
@splitLine = split(/\t/,$line);
 
@splitLine = split(/\t/,$line);
$secstructure="$secstructure$splitLine[2]";
+
$secstructure=$secstructure.$splitLine[2];
 
}
 
}
   
Line 62: Line 67:
 
@splitLine = split(/ /,$line);
 
@splitLine = split(/ /,$line);
 
chomp($splitLine[1]);
 
chomp($splitLine[1]);
$secstructure = "$secstructure$splitLine[1]";
+
$secstructure = $secstructure.$splitLine[1];
  +
}
  +
}
  +
}
  +
if($dssp ==1){
  +
while (my $line = <FILE>){
  +
if($no ==1){
  +
$line =~ s/^\s+//g;
  +
@splitLine = split(/ /,$line);
  +
my $letter = "";
  +
if($splitLine[0] < 10){
  +
$letter = $splitLine[8];
  +
}
  +
elsif($splitLine[0] >9 && $splitLine[0] < 100){
  +
$letter = $splitLine[7];
  +
}
  +
else{
  +
print splitLine[0];
  +
$letter = $splitLine[6];
  +
}
  +
if($letter eq ""){
  +
$letter="-";
  +
}
  +
$secstructure = $secstructure.$letter;
  +
  +
}
  +
if($line =~ /^ #/){
  +
$no = 1;
 
}
 
}
 
}
 
}

Revision as of 18:36, 11 May 2013

This script reads an input file in ReProf format or PsiPred and filters the file for the secondary structur presented with E,H and L/C. Also it can read a DSSP file. If the structure forms a loop or irregular a "-" is inserted.
You can find the script in /mnt/home/student/waldraffs/Masterpraktikum/Task3/filter_secStruc.pl

Usage: perl filter_secStrucpl -inp <input-file in ReProf format> -out <output-file> -reprof|-psipred|-dssp 
-reprof: if the input file is result of a ReProf run.
-psipred: if the input file is result of a PsiPred run.
-dssp: if the input file is result of a DSSP run.

The output is the secondary structure shown with the letters E, H and L/C.

Code:

<source lang="perl">

  1. !/usr/bin/perl

my $inp; my $out; my $reprof = 0; my $psipred = 0; my $dssp = 0;

  1. Reads the command line parameters

for ($i=0; $i<=@ARGV;$i++){ if($ARGV[$i] eq "-inp"){ $inp=$ARGV[$i+1]; } if($ARGV[$i] eq "-out"){ $out=$ARGV[$i+1]; } if($ARGV[$i] eq "-reprof"){ $reprof = 1; } if($ARGV[$i] eq "-psipred"){ $psipred = 1; } if($ARGV[$i] eq "-dssp"){ $dssp = 1; } }

if(!$inp && !$out){ print "Usage: filter_secStruc.pl -inp <input-file(.reprof)> -out <output-file> -reprof|-psipred|-dssp" }

my $secstructure= ""; my $no = 0;

  1. reads input file and filters for the coloumn with secondary structure

open (FILE,"$inp") || die $!; if($reprof == 1){ while (my $line = <FILE>){

if($no == 1){ @splitLine = split(/\t/,$line); $secstructure=$secstructure.$splitLine[2]; }

if($line =~ /^No/){ $no = 1; } } } if($psipred == 1){ while (my $line = <FILE>){ if($line =~ /^Pred/){ @splitLine = split(/ /,$line); chomp($splitLine[1]); $secstructure = $secstructure.$splitLine[1]; } } } if($dssp ==1){ while (my $line = <FILE>){ if($no ==1){ $line =~ s/^\s+//g; @splitLine = split(/ /,$line); my $letter = ""; if($splitLine[0] < 10){ $letter = $splitLine[8]; } elsif($splitLine[0] >9 && $splitLine[0] < 100){ $letter = $splitLine[7]; } else{ print splitLine[0]; $letter = $splitLine[6]; } if($letter eq ""){ $letter="-"; } $secstructure = $secstructure.$letter;

} if($line =~ /^ #/){ $no = 1; } } } close FILE;

  1. writes output file

open(OUTFILE,">$out") || die $!; print OUTFILE $secstructure; close OUTFILE;

</source>