BLAST
use Bio::SearchIO;
my $searchio=Bio::SearchIO->new(-file=>$file_blast,-format=>'blast');
while( my $result = $searchio->next_result ) {
my $qid = $result->query_name();
my $qlen= $result->query_length();
my $did = $result->database_name();
while( my $hit = $result->next_hit ) {
my $hit_name = $hit->name();
my $hit_len = $hit->length;
while( my $hsp = $hit->next_hsp ) {
my $qs=$hsp->start('query');
my $qe=$hsp->end('query');
my $ds=$hsp->start('subject');
my $de=$hsp->end('subject');
}#hsp
}#hit
}#result
FASTA
use Bio::SeqIO;
my $in=Bio::SeqIO->new(-file=>$fa_add,-format=>'fasta');
while(my $s=$in->next_seq){
my $id=$s->id;
my $seq=$s->seq;
}
GFF3
my($seqid,$source,$type,$start,$end,$score,$strand,$phase,$attribute)=split /\t/;
Pfam
my($seqid,$alignment_start,$alignment_end,$envelope_start,$envelope_end,$hmm_acc,$hmm_name,$type,$hmm_start,$hmm_end,$hmm_length,$bit_score,$evalue,$significance,$clan)=split /\s+/;
mumer
my %aln;
open(F,'<',$file_nucmer) or die("$!: $file_nucmer\n");
while (<F>) {
next unless(m/^\d+/);
chomp;
my($start1,$end1,$start2,$end2,$len1,$len2,$identity,$length_reference,$length_query,$coverage_reference,$coverage_query,$id_reference,$id_query)=split /\t/;
push(@{$aln{$id_reference}},[$start1,$end1,$start2,$end2,$len1,$len2,$identity,$length_reference,$length_query,$coverage_reference,$coverage_query,$id_reference,$id_query]);
}
close(F);