NAME
Bio::GFF3::LowLevel::Parser - a fast, low-level gff3 parser
SYNOPSIS
my $p = Bio::GFF3::LowLevel::Parser->new( $file_or_fh );
while( my $i = $p->next_item ) {
if( exists $i->{seq_id} ) {
## $i is a feature in the same format as returned by
## Bio::GFF3::LowLevel::gff3_parse_feature. do something with
## it
}
elsif( $i->{directive} ) {
if( $i->{directive} eq 'FASTA' ) {
my $fasta_filehandle = $i->{filehandle};
## parse the FASTA in the filehandle with BioPerl or
## however you want. or ignore it.
}
elsif( $i->{directive} eq 'gff-version' ) {
print "it says it is GFF version $i->{value}\n";
}
elsif( $i->{directive} eq 'sequence-region' ) {
print( "found a sequence-region, sequence $i->{seq_id},",
" from $i->{start} to $i->{end}\n"
);
}
}
elsif( $i->{comment} ) {
## this is a comment in your GFF3 file, in case you want to do
## something with it.
print "that comment said: '$i->{comment}'\n";
}
else {
die 'this should never happen!';
}
}
DESCRIPTION
This is a fast, low-level parser for Generic Feature Format, version 3 (GFF3). It is a low-level parser, it only returns dumb hashrefs. It does reconstruct feature hierarchies, however, using features' ID/Parent attributes.
Features
Features are returned in the same format as "gff3_parse_feature" in Bio::GFF3::LowLevel, with an additional child_features
key containing an arrayref of child features. Each of those features also have child_features
arrayrefs.
For convenience, all features returned by this parser have child_features
arrayrefs, which may be empty.
Directives
Directives are returned in the same format as "gff3_parse_directive" in Bio::GFF3::LowLevel.
Comments
Comments are parsed into a hashref of the form:
{ comment => 'text of the comment, not including the hash mark(s) and ending newline' }
FUNCTIONS
new( $file_or_filehandle, ... )
Make a new parser object that will parse the GFF3 in all of the files or filehandles that you give it.
next_item()
Iterate through all of the items (features, directives, and comments) in the file(s) given to the parser. Each item is a returned as a hashref.
AUTHOR
Robert Buels <rmb32@cornell.edu>
COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Robert Buels.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.