#!/usr/bin/perl -w #Markus Westphal 09.01.2006 ###################################################### # Markus Westphal auswblast4blocks.pl # ###################################################### use strict; my($pf,$j,$i,$datei,@erg,$eval); $i = 1; #globale Variabeln füllen $datei = "blockseval.eval"; $i = 0; #EINLESEN Dateinamen Blastergebnis for($j = -1; $j < $#ARGV; $j++) { if($ARGV[$j] =~ /^datei/) { ($pf, $datei) = split("=", $ARGV[$j]); } } #AUSGABEDATEI open(EP, ">evalue_percid.txt") || die ("Die Ausgabedatei 1 kann nicht erstellt werden!\n"); open(AP, ">abagyan_percid.txt") || die ("Die Ausgabedatei 2 kann nicht erstellt werden!\n"); #EINLESEN open(DT,"<$datei") || die ("$datei kann nicht geoeffnet werden!"); $/ = "Query="; while(
) { if($_ =~ /^ /) { &check($_); } } close(DT); #FUNKTIONEN sub check() { my($c) = @_; my($abag,$ind,$partn,$percid); if (!($c =~ /\* No hits found \*/i)) { $c =~ /\s+.*-(\w+) \w+-\s+.*\s+(\d+.\d+)\s+AS:(\S+\.\d+).*\(bits\) Value\n\n(.*)\n\n>/s; $ind = $1; print "$ind\n"; $percid = $2; $abag = $3; $partn = $4; #if($ind =~ /HBAA_ANGAN/m){print "$c\n";} @erg = split("\n",$partn); $eval = "0"; foreach(@erg) { #print "$_\n---\n"; if($_ =~ /^$ind/mi) { $_ =~ /.*\.\.\.\s+\d+\s+(.*)/; #ACHTUNG MÖGLICHERWEISE /n!!! $eval = $1; #print "$eval $abag\n"; } } print EP "$eval $percid\n"; print AP "$abag $percid\n"; } } close(EP); close(AP);