Difference between revisions of "Phenylketonuria/Task3/Scripts"
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=$secstructure.$splitLine[2]; |
} |
} |
||
Line 62: | Line 67: | ||
@splitLine = split(/ /,$line); |
@splitLine = split(/ /,$line); |
||
chomp($splitLine[1]); |
chomp($splitLine[1]); |
||
− | $secstructure = |
+ | $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 17: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">
- !/usr/bin/perl
my $inp; my $out; my $reprof = 0; my $psipred = 0; my $dssp = 0;
- 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;
- 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;
- writes output file
open(OUTFILE,">$out") || die $!; print OUTFILE $secstructure; close OUTFILE;
</source>