Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Bio::SeqIO::gbdriver(3User Contributed Perl DocumentatiBio::SeqIO::gbdriver(3)

       Bio::SeqIO::gbdriver - GenBank handler-based push parser

	 #It is	probably best not to use this object directly, but
	 #rather go through the	SeqIO handler:

	 $stream = Bio::SeqIO->new(-file => $filename,
				   -format => 'gbdriver');

	 while ( my $seq = $stream->next_seq() ) {
	     # do something with $seq

       This object can transform Bio::Seq objects to and from GenBank flat
       file databases. The key difference between this parser and the tried-
       and-true	Bio::SeqIO::genbank parser is this version separates the
       parsing and data	manipulation into a 'driver' method (next_seq) and
       separate	object handlers	which deal with	the data passed	to it.

   The Driver
       The main	purpose	of the driver routine, in this case next_seq(),	is to
       carve out the data into meaningful chunks which are passed along	to
       relevant	handlers (see below).

       Each chunk of data in the has a NAME tag	attached to it,	similar	to
       that for	XML parsing. This designates the type of data passed
       (annotation type	or seqfeature) and the handler to be called for
       processing the data.

       For GenBank annotations,	the data is divided up and passed along	to
       handlers	according to whether the data is tagged	with a field name
       (i.e. LOCUS) and	whether	the field name represents 'primary' annotation
       (in this	case, is present at the	beginning of the line, such as
       REFERENCE). If the field	is primary, it is assigned to the NAME tag.
       Field names which aren't	primary	(have at least 2 spaces	before the
       name, like ORGANISM) are	appended to the	preceding primary field	name
       as additional tags.

       For feature table data each new feature name signals the	beginning of a
       new chunk of data. 'FEATURES' is	attached to NAME, the feature key
       ('CDS', 'gene', etc) is attached	as the PRIMARY_ID, and the location is
       assigned	to it's	own tag	name (LOCATION). Feature qualifiers are	added
       as additional keys, with	multiple keys included in an array.

       Once a particular event occurs (new primary tag,	sequence, end of
       record),	the data is passed along to be processed by a handler or (if
       no handler is defined) tossed away.

       Internally, the hash ref	for a representative annotation	(here a
       REFERENCE) looks	like this:

	 $VAR1 = {
		   'JOURNAL' =>	'Unpublished (2003)',
		   'TITLE' => 'The DNA sequence	of Homo	sapiens',
		   'NAME' => 'REFERENCE',
		   'REFERENCE' => '1  (bases 1 to 10001)',
		   'AUTHORS' =>	'International Human Genome Sequencing Consortium.'

       and a SeqFeature	as this:

	 $VAR1 = {
		   'db_xref' =>	[
		   'LOCATION' => 'complement(3024..6641)',
		   'NAME' => 'FEATURES',
		   'FEATURE_KEY' => 'gene',
		   'gene' => 'LOC127086',
		   'note' => 'Derived by automated computational analysis using
			      gene prediction method: GNOMON.'

       Note that any driver implementation would suffice as long as it
       fulfilled the requirements above.

   Mailing Lists
       User feedback is	an integral part of the	evolution of this and other
       Bioperl modules.	Send your comments and suggestions preferably to one
       of the Bioperl mailing lists.  Your participation is much appreciated.			- General discussion	- About	the mailing lists

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

       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
       the bugs	and their resolution. Bug reports can be submitted via the

AUTHOR - Bioperl Project
       bioperl-l at

       Original	author Elia Stupka, elia -at-

       Ewan Birney birney at Jason Stajich jason at
       Chris Mungall cjm at Lincoln Stein lstein at	Heikki Lehvaslaiho, heikki at	Hilmar Lapp, hlapp at Donald G. Jackson, donald.jackson at James Wasmuth,
       james.wasmuth at Brian Osborne,	bosborne at

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

	Title	: next_seq
	Usage	: $seq = $stream->next_seq()
	Function: returns the next sequence in the stream
	Returns	: Bio::Seq object
	Args	:

	Title	: write_seq
	Usage	: $stream->write_seq($seq)
	Function: writes the $seq object (must be seq) to the stream
	Returns	: 1 for	success	and 0 for error
	Args	: array	of 1 to	n Bio::SeqI objects

	Title	: seqhandler
	Usage	: $stream->seqhandler($handler)
	Function: Get/Set the Bio::Seq::HandlerBaseI object
	Returns	: Bio::Seq::HandlerBaseI
	Args	: Bio::Seq::HandlerBaseI

perl v5.32.0			  2019-12-07	       Bio::SeqIO::gbdriver(3)


Want to link to this manual page? Use this URL:

home | help