The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Bio::Tools::Glimmer - parser for Glimmer 2.X/3.X prokaryotic and GlimmerM/GlimmerHMM eukaryotic gene predictions

SYNOPSIS

use Bio::Tools::Glimmer;

# file
my $parser = Bio::Tools::Glimmer->new(-file => $file);
# filehandle:
$parser = Bio::Tools::Glimmer->new( -fh  => \*INPUT );
# provide a sequence identifier (Glimmer 2.X)
my $parser = Bio::Tools::Glimmer->new(-file => $file, -seqname => seqname);
# force format (override automatic detection)
my $parser = Bio::Tools::Glimmer->new(-file => $file, -format => 'GlimmerM');

# parse the results
# note: this class is-a Bio::Tools::AnalysisResult which implements
# Bio::SeqAnalysisParserI, i.e., $glimmer->next_feature() is the same

while(my $gene = $parser->next_prediction()) {
    # For eukaryotic input (GlimmerM/GlimmerHMM), $gene will be an instance
    # of Bio::Tools::Prediction::Gene, which inherits off
    # Bio::SeqFeature::Gene::Transcript, and $gene->exons() will return an
    # array of Bio::Tools::Prediction::Exon objects.
    # For prokaryotic input (Glimmer2.X/Glimmer3.X), $gene will be an
    # instance of Bio::SeqFeature::Generic

    # all exons (eukaryotic only):
    @exon_arr = $gene->exons();
    # initial exons only
    @init_exons = $gene->exons('Initial');
    # internal exons only
    @intrl_exons = $gene->exons('Internal');
    # terminal exons only
    @term_exons = $gene->exons('Terminal');
}

DESCRIPTION

This is a module for parsing Glimmer, GlimmerM and GlimmerHMM predictions. It will create gene objects from the prediction report which can be attached to a sequence using Bioperl objects, or output as GFF suitable for loading into Bio::DB::GFF for use with Gbrowse.

Glimmer is open source and available at http://www.cbcb.umd.edu/software/glimmer/.

GlimmerM is open source and available at http://www.tigr.org/software/glimmerm/.

GlimmerHMM is open source and available at http://www.cbcb.umd.edu/software/GlimmerHMM/.

Note that Glimmer 2.X will only process the first sequence in a fasta file, and the prediction report does not contain any sort of sequence identifier

Note that Glimmer 3.X produces two output files. This module only parses the .predict file.

FEEDBACK

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/wiki/Mailing_lists  - About the mailing lists

Support

Please direct usage questions or support issues to the mailing list:

bioperl-l@bioperl.org

rather than to the module maintainer directly. Many experienced and reponsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible.

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:

https://github.com/bioperl/bioperl-live/issues

AUTHOR - Jason Stajich

Email jason-at-bioperl-dot-org

CONTRIBUTORS

Torsten Seemann

Mark Johnson

APPENDIX

The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _

new

Title   : new
Usage   : my $obj = Bio::Tools::Glimmer->new();
Function: Builds a new Bio::Tools::Glimmer object 
Returns : an instance of Bio::Tools::Glimmer
Args    : format ('Glimmer', 'GlimmerM', 'GlimmerHMM'), seqname

analysis_method

Usage     : $glimmer->analysis_method();
Purpose   : Inherited method. Overridden to ensure that the name matches
            /glimmer/i.
Returns   : String
Argument  : n/a

next_feature

Title   : next_feature
Usage   : while($gene = $glimmer->next_feature()) {
                 # do something
          }
Function: Returns the next gene structure prediction of the Glimmer result
          file. Call this method repeatedly until FALSE is returned.

          The returned object is actually a SeqFeatureI implementing object.
          This method is required for classes implementing the
          SeqAnalysisParserI interface, and is merely an alias for 
          next_prediction() at present.

Example :
Returns : A Bio::Tools::Prediction::Gene object.
Args    :

next_prediction

Title   : next_prediction
Usage   : while($gene = $glimmer->next_prediction()) {
                 # do something
          }
Function: Returns the next gene structure prediction of the Glimmer result
          file. Call this method repeatedly until FALSE is returned.

Example :
Returns : A Bio::Tools::Prediction::Gene object.
Args    :

_parse_predictions

Title   : _parse_predictions()
Usage   : $obj->_parse_predictions()
Function: Parses the prediction section. Automatically called by
          next_prediction() if not yet done.
Example :
Returns : 

_parse_eukaryotic

Title   : _parse_eukaryotic()
Usage   : $obj->_parse_eukaryotic()
Function: Parses the prediction section. Automatically called by
          next_prediction() if not yet done.
Example :
Returns : 

_parse_prokaryotic

Title   : _parse_prokaryotic()
Usage   : $obj->_parse_prokaryotic()
Function: Parses the prediction section. Automatically called by
          next_prediction() if not yet done.
Example :
Returns : 

_prediction

Title   : _prediction()
Usage   : $gene = $obj->_prediction()
Function: internal
Example :
Returns : 

_add_prediction

Title   : _add_prediction()
Usage   : $obj->_add_prediction($gene)
Function: internal
Example :
Returns : 

_predictions_parsed

Title   : _predictions_parsed
Usage   : $obj->_predictions_parsed
Function: internal
Example :
Returns : TRUE or FALSE

_seqname

Title   : _seqname
Usage   : $obj->_seqname($seqname)
Function: internal (for Glimmer 2.X)
Example :
Returns : String

_seqlength

Title   : _seqlength
Usage   : $obj->_seqlength($seqlength)
Function: internal (for Glimmer 2.X)
Example :
Returns : String

_format

Title   : _format
Usage   : $obj->_format($format)
Function: internal
Example :
Returns : String

_detail_file

Title   : _detail_file
Usage   : $obj->_detail_file($filename)
Function: internal (for Glimmer 3.X)
Example :
Returns : String