[Bioperl-l] error message: can't call method "next_hit" on and undefined value

Mgavi Brathwaite lsbrath at gmail.com
Tue Jun 16 15:42:37 UTC 2009


Hello,
My method produces an error message stating that it can't call a "next_hit"
method on an undefined value.

Hello,
My method produces an error message stating that it can't call a "next_hit"
method on an undefined value.

sub hu_bl2seq_parser{
	my ($maid, $maid_dir) = @_;
	# Get the report
	my $in = new Bio::SearchIO(-format => 'blast',
                           -file   => ">".$maid_dir."\\".$maid."aln_hu.aln",
						   -report_type => 'blastn');
	#open(my $out, ">$maid_dir/".$maid."aln_hu_parsed.out");					
	#my $out = Bio::AlignIO->newFh(-format => 'clustalw' );
	my $result=$in->next_result;
	my($hu_aln,$hu_mismatches);
	# Get info about the first hit
	my $hit = $result->next_hit;
	my $name = $hit->name;
	# get info about the first hsp of the first hit
	my $hsp = $hit->next_hsp;
	# get the alignment object
	my $aln = $hsp->get_aln;
	#my $percent_id = $hsp->percent_identity;
	#my $aln_length = $hsp->length('total');
	my @mismatches = $hsp->seq_inds('query','nomatch');
	my $aln_str="";
	# access the alignment string
	my $strIO=IO::String->new($aln_str);
	#  write the string alignio in clustalw format
	my $alnio = Bio::AlignIO->new(-format => 'clustalw', -fh=>$strIO);
	# now the actual alignment string is accessable for printing or in
this case moving to a db table
	$alnio->write_aln($aln);
	$hu_aln=$aln_str;
	$hu_mismatches = scalar @mismatches;
	return($hu_aln, $hu_mismatches);
}

The problem is at "my $hit = $result->next_hit;"
Any help will be appreciated.
LomSpace



More information about the Bioperl-l mailing list