GFF - Perl extension for Gene Finding Feature format

GFF - Perl extension for Gene Finding Feature format


Copyright (c) 1999 Created by Tim Hubbard
Augmented by Richard Bruskiewich

Sanger Institute, Wellcome Trust Genome Campus, Cambs, UK All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation.


    use GFF;


GFF is a Perl Object base class/module for the General Feature Format (``GFF''). A GFF object is a base class for GFF::GeneFeatureSet, GFF::GeneFeature and GFF::HomolGeneFeature object classes.

How to read method protocols

Normal Perl data type notations are used for argument declarations in the method protocols. A backslash denotes argument passing by reference. Class methods are invoked using the 'class->method(args)' or 'method class args' Perl call formats.

Source code

The most current release of the Perl source code for this module is available here. NOTE: This is a March 1999 beta release of the modules incorporating the proposed Version 2 revisions to the GFF specification. Future releases will likely be issued as Bioperl archived modules.

GFF class methods and variables

version( $version )
This method may actually be called as a class (static) method or as a virtual (instance) method. When called as a class method, the method sets and/or queries the package default GFF protocol version. GFF objects internally record the current default version value when they are created. If the method is called by such a derived object, it sets and/or queries the GFF object's version (thus, one can in principle create and manipulated GFF objects of various versions). If not otherwise called, the module currently assumes that Version 2 GFF objects will be manipulated. If the format of the anticipated input is not the default protocol version, then this method must be called first, prior to calling other format sensitive methods, to set the correct version. The method may be called with or without an argument. In both cases, the method returns the current (or newly set) version value, either the package (``class'') default or the GFF object value.
verify( $ref, $nodie )
Any derived class can invoke this method, to verify that $ref is a properly defined object reference in that class. If invoked by the GFF class, then verifies that the $ref belongs to any one of the GFF derived classes. Method 'dies' upon failure, unless the $nodie variable is non-null (default: null), in which case, the function merely carps a warning and returns null for failure.
trace( $level )
Setting $level to a number greater than 1 triggers a verbose et al. module diagnostic mode output to STDERR. If $level argument is omitted, then the trace is turned off. Examples: verify() (above) reports success; GFF::read() provides user feedback during file input. Generally speaking, the verbosity of the output depends upon the $level given: 1 = minimum trace (most useful for monitoring certain iterative operations like reading in a file), 2 = verbose (debug) trace (not so useful except for coders)

GFF construction methods

Not applicable; derived classes instantiate this class.

GFF object input/output methods

Not applicable; derived classes instantiate this class.

Revision History

10/11/99 - rbsk
see, and
4/10/99 - rbsk
see and
27/08/99 - rbsk
GeneFeature parse_group bug fix
26/08/99 - rbsk changes...
28/1/99 - rbsk
module renamed from =>
overall GFF object module hierarchy remolded:
  • =>
  • =>
  • =>
all in GFF subdirectory
22/4/99 - rbsk
added trace(), verify() and trace() methods
16/3/99 - rbsk
created this class to abstract "version" method from GFF, GeneFeature and HomolGeneFeature.
* quick link -