bioinformatics perl useful

来源:互联网 发布:医院和农合的网络系统 编辑:程序博客网 时间:2024/06/06 02:10

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);