Thanks.#!/usr/local/bin/perl -sl # use strict; use Getopt::Long; my $home = $ENV{'HOME'}; my($ID, $query, $off, $idi, $subject); print "ID\tposition\tvariation\n"; while(<DATA>) { next if $. <20; if(m[^>]) { ($ID) = (split '\|',$_)[1]; #!/usr/local/bin/perl -sl # use strict; use Getopt::Long; my $home = $ENV{'HOME'}; my($ID, $query, $off, $idi, $subject); print "ID\tposition\tvariation\n"; while(<DATA>) { next if $. <20; if(m[^>]) { ($ID) = (split '\|',$_)[1]; } if(/^\s+Identities/){ my($identity, undef) = split/,/ ; ($idi) = $identity =~ /\sIdentities\s\=\s\d{3}\/\d{3}\s\((\d{2,3}\% +)\)$/; } if($idi eq "95%") { if(m/^Query/) { ($query) = m[^Query\s+(\d+)]; my $top = substr $_, 15; my $pipes = substr <DATA>,15; my $bot = substr <DATA>, 15; my $p = 0 ; while ($p = 1+index $pipes,' ', $p) { printf "%20s\t%d\t%1s/%1s\n",$ID,$query+$p, substr( $top, $p-1, 1 +),substr( $bot, $p-1, 1 ); } } } } } if(/^\s+Identities/){ my($identity, undef) = split/,/ ; ($idi) = $identity =~ /\sIdentities\s\=\s\d{3}\/\d{3}\s\((\d{2,3}\% +)\)$/; } if($idi eq "95%") { if(m/^Query/) { ($query) = m[^Query\s+(\d+)]; my $top = substr $_, 15; my $pipes = substr <DATA>,15; my $bot = substr <DATA>, 15; my $p = 0 ; while ($p = 1+index $pipes,' ', $p) { printf "%20s\t%d\t%1s/%1s\n",$ID,$query+$p, substr( $top, $p-1, 1 +),substr( $bot, $p-1, 1 ); } } } }
In reply to Re^2: parsing mismatch from blast output
by Anonymous Monk
in thread parsing mismatch from blast output
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |