Mercurial > repos > willmclaren > ensembl_vep
diff variant_effect_predictor/Bio/Search/Result/HMMERResult.pm @ 0:21066c0abaf5 draft
Uploaded
author | willmclaren |
---|---|
date | Fri, 03 Aug 2012 10:04:48 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/variant_effect_predictor/Bio/Search/Result/HMMERResult.pm Fri Aug 03 10:04:48 2012 -0400 @@ -0,0 +1,445 @@ +# $Id: HMMERResult.pm,v 1.3 2002/10/22 07:45:18 lapp Exp $ +# +# BioPerl module for Bio::Search::Result::HMMERResult +# +# Cared for by Jason Stajich <jason@bioperl.org> +# +# Copyright Jason Stajich +# +# You may distribute this module under the same terms as perl itself + +# POD documentation - main docs before the code + +=head1 NAME + +Bio::Search::Result::HMMERResult - A Result object for HMMER results + +=head1 SYNOPSIS + + use Bio::Search::Result::HMMERResult; + my $result = new Bio::Search::Result::HMMERResult + ( -hmm_name => 'pfam', + -sequence_file => 'roa1.pep', + -hits => \@hits); + + # generally we use Bio::SearchIO to build these objects + use Bio::SearchIO; + my $in = new Bio::SearchIO(-format => 'hmmer', + -file => 'result.hmmer'); + while( my $result = $in->next_result ) { + print $result->query_name, " ", $result->algorithm, " ", $result->num_hits(), " hits\n"; + } + +=head1 DESCRIPTION + +This is a specialization of L<Bio::Search::Result::GenericResult>. +There are a few extra methods, specifically L<sequence_file>, +L<hmm_name>, L<next_models>, and L<models>. + +=head1 FEEDBACK + +=head2 Mailing Lists + +User feedback is an integral part of the evolution of this and other +Bioperl modules. Send your comments and suggestions preferably to +the Bioperl mailing list. Your participation is much appreciated. + + bioperl-l@bioperl.org - General discussion + http://bioperl.org/MailList.shtml - About the mailing lists + +=head2 Reporting Bugs + +Report bugs to the Bioperl bug tracking system to help us keep track +of the bugs and their resolution. Bug reports can be submitted via +email or the web: + + bioperl-bugs@bioperl.org + http://bugzilla.bioperl.org/ + +=head1 AUTHOR - Jason Stajich + +Email jason@bioperl.org + +Describe contact details here + +=head1 CONTRIBUTORS + +Additional contributors names and emails here + +=head1 APPENDIX + +The rest of the documentation details each of the object methods. +Internal methods are usually preceded with a _ + +=cut + + +# Let the code begin... + + +package Bio::Search::Result::HMMERResult; +use vars qw(@ISA); +use strict; + +use Bio::Search::Result::GenericResult; + + +@ISA = qw(Bio::Search::Result::GenericResult ); + +=head2 new + + Title : new + Usage : my $obj = new Bio::Search::Result::HMMERResult(); + Function: Builds a new Bio::Search::Result::HMMERResult object + Returns : Bio::Search::Result::HMMERResult + Args : -hmm_name => string, name of hmm file + -sequence_file => name of the sequence file + +plus Bio::Search::Result::GenericResult parameters + + -query_name => Name of query Sequence + -query_accession => Query accession number (if available) + -query_description => Description of query sequence + -query_length => Length of query sequence + -database_name => Name of database + -database_letters => Number of residues in database + -database_entries => Number of entries in database + -parameters => hash ref of search parameters (key => value) + -statistics => hash ref of search statistics (key => value) + -algorithm => program name (blastx) + -algorithm_version => version of the algorithm (2.1.2) + -program_reference => literature reference string for this algorithm + +=cut + +sub new { + my($class,@args) = @_; + my $self = $class->SUPER::new(@args); + + my ($hmm,$seqfile) = $self->_rearrange([qw(HMM_NAME SEQUENCE_FILE)], + @args); + + defined( $seqfile) && $self->sequence_file($seqfile); + defined( $hmm) && $self->hmm_name($hmm); + + return $self; +} + + +=head2 hmm_name + + Title : hmm_name + Usage : $obj->hmm_name($newval) + Function: Get/Set the value of hmm_name + Returns : value of hmm_name + Args : newvalue (optional) + + +=cut + +sub hmm_name{ + my ($self,$value) = @_; + if( defined $value) { + $self->{'_hmm_name'} = $value; + } + return $self->{'_hmm_name'}; +} + + +=head2 sequence_file + + Title : sequence_file + Usage : $obj->sequence_file($newval) + Function: Get/Set the value of sequence_file + Returns : value of sequence_file + Args : newvalue (optional) + + +=cut + +sub sequence_file{ + my ($self,$value) = @_; + if( defined $value) { + $self->{'_sequence_file'} = $value; + } + return $self->{'_sequence_file'}; + +} + + +=head2 next_model + + Title : next_model + Usage : my $domain = $result->next_model + Function: Returns the next domain - this + is an alias for next_hit + Returns : L<Bio::Search::Hit::HitI> object + Args : none + + +=cut + +sub next_model{ shift->next_hit } + +=head2 models + + Title : models + Usage : my @domains = $result->models; + Function: Returns the list of HMM models seen - this + is an alias for hits() + Returns : Array of L<Bio::Search::Hit::HitI> objects + Args : none + + +=cut + +sub models{ shift->hits } + +=head2 Bio::Search::Result::GenericResult inherited methods + +=cut + +=head2 algorithm + + Title : algorithm + Usage : my $r_type = $hsp->algorithm + Function: Obtain the name of the algorithm used to obtain the Result + Returns : string (e.g., BLASTP) + Args : [optional] scalar string to set value + +=cut + +=head2 algorithm_version + + Title : algorithm_version + Usage : my $r_version = $hsp->algorithm_version + Function: Obtain the version of the algorithm used to obtain the Result + Returns : string (e.g., 2.1.2) + Args : [optional] scalar string to set algorithm version value + +=cut + +=head2 Bio::Search::Result::ResultI interface methods + +Bio::Search::Result::ResultI implementation + +=head2 next_hit + + Title : next_hit + Usage : while( $hit = $result->next_hit()) { ... } + Function: Returns the next available Hit object, representing potential + matches between the query and various entities from the database. + Returns : a Bio::Search::Hit::HitI object or undef if there are no more. + Args : none + + +=cut + +=head2 query_name + + Title : query_name + Usage : $id = $result->query_name(); + Function: Get the string identifier of the query used by the + algorithm that performed the search. + Returns : a string. + Args : [optional] new string value for query name + +=cut + +=head2 query_accession + + Title : query_accession + Usage : $id = $result->query_accession(); + Function: Get the accession (if available) for the query sequence + Returns : a string + Args : [optional] new string value for accession + +=cut + +=head2 query_length + + Title : query_length + Usage : $id = $result->query_length(); + Function: Get the length of the query sequence + used in the search. + Returns : a number + Args : [optional] new integer value for query length + +=cut + +=head2 query_description + + Title : query_description + Usage : $id = $result->query_description(); + Function: Get the description of the query sequence + used in the search. + Returns : a string + Args : [optional] new string for the query description + +=cut + +=head2 database_name + + Title : database_name + Usage : $name = $result->database_name() + Function: Used to obtain the name of the database that the query was searched + against by the algorithm. + Returns : a scalar string + Args : [optional] new string for the db name + +=cut + +=head2 database_letters + + Title : database_letters + Usage : $size = $result->database_letters() + Function: Used to obtain the size of database that was searched against. + Returns : a scalar integer (units specific to algorithm, but probably the + total number of residues in the database, if available) or undef if + the information was not available to the Processor object. + Args : [optional] new scalar integer for number of letters in db + + +=cut + +=head2 database_entries + + Title : database_entries + Usage : $num_entries = $result->database_entries() + Function: Used to obtain the number of entries contained in the database. + Returns : a scalar integer representing the number of entities in the database + or undef if the information was not available. + Args : [optional] new integer for the number of sequence entries in the db + + +=cut + +=head2 get_parameter + + Title : get_parameter + Usage : my $gap_ext = $report->get_parameter('gapext') + Function: Returns the value for a specific parameter used + when running this report + Returns : string + Args : name of parameter (string) + +=cut + +=head2 available_parameters + + Title : available_parameters + Usage : my @params = $report->available_paramters + Function: Returns the names of the available parameters + Returns : Return list of available parameters used for this report + Args : none + +=cut + +=head2 get_statistic + + Title : get_statistic + Usage : my $gap_ext = $report->get_statistic('kappa') + Function: Returns the value for a specific statistic available + from this report + Returns : string + Args : name of statistic (string) + +=cut + +=head2 available_statistics + + Title : available_statistics + Usage : my @statnames = $report->available_statistics + Function: Returns the names of the available statistics + Returns : Return list of available statistics used for this report + Args : none + +=cut + +=head2 Bio::Search::Result::GenericResult specific methods + +=cut + +=head2 add_hit + + Title : add_hit + Usage : $report->add_hit($hit) + Function: Adds a HitI to the stored list of hits + Returns : Number of HitI currently stored + Args : Bio::Search::Hit::HitI + +=cut + +=head2 rewind + + Title : rewind + Usage : $result->rewind; + Function: Allow one to reset the Hit iteration to the beginning + Since this is an in-memory implementation + Returns : none + Args : none + +=cut + +sub rewind{ + my ($self) = @_; + $self->{'_hitindex'} = 0; +} + + +=head2 add_parameter + + Title : add_parameter + Usage : $report->add_parameter('gapext', 11); + Function: Adds a parameter + Returns : none + Args : key - key value name for this parama + value - value for this parameter + +=cut + +=head2 add_statistic + + Title : add_statistic + Usage : $report->add_statistic('lambda', 2.3); + Function: Adds a parameter + Returns : none + Args : key - key value name for this parama + value - value for this parameter + +=cut + +=head2 num_hits + + Title : num_hits + Usage : my $hitcount= $result->num_hits + Function: returns the number of hits for this query result + Returns : integer + Args : none + + +=cut + +=head2 hits + + Title : hits + Usage : my @hits = $result->hits + Function: Returns the available hits for this Result + Returns : Array of L<Bio::Search::Hit::HitI> objects + Args : none + + +=cut + +=head2 program_reference + + Title : program_reference + Usage : $obj->program_reference($newval) + Function: + Returns : value of the literature reference for the algorithm + Args : newvalue (optional) + + +=cut + +1;