Mercurial > repos > mahtabm > ensembl
diff variant_effect_predictor/Bio/SeqIO/game/idHandler.pm @ 0:1f6dce3d34e0
Uploaded
author | mahtabm |
---|---|
date | Thu, 11 Apr 2013 02:01:53 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/variant_effect_predictor/Bio/SeqIO/game/idHandler.pm Thu Apr 11 02:01:53 2013 -0400 @@ -0,0 +1,177 @@ +# $Id: idHandler.pm,v 1.8 2001/11/20 02:09:38 lstein Exp $ +# +# BioPerl module for Bio::SeqIO::game::idHandler +# +# Cared for by Brad Marshall <bradmars@yahoo.com> +# +# Copyright Brad Marshall +# +# You may distribute this module under the same terms as perl itself +# _history +# June 25, 2000 written by Brad Marshall +# +# POD documentation - main docs before the code + +=head1 NAME + +Bio::SeqIO::game::idHandler - GAME helper via PerlSAX helper. + +=head1 SYNOPSIS + +GAME helper for parsing new ID objects from GAME XML. Do not use directly + +=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 one of the Bioperl mailing lists. Your participation is much appreciated. + + bioperl-l@bioperl.org - Bioperl list + bioxml-dev@bioxml.org - Technical discussion - Moderate volume + bioxml-announce@bioxml.org - General Announcements - Pretty dead + http://www.bioxml.org/MailingLists/ - About the mailing lists + +=head1 AUTHOR - Brad Marshall + +Email: bradmars@yahoo.com + +=head1 APPENDIX + +The rest of the documentation details each of the object +methods. Internal methods are usually preceded with a _ + +=cut + +# This template file is in the Public Domain. +# You may do anything you want with this file. +# + +package Bio::SeqIO::game::idHandler; +use Bio::Root::Root; + +use vars qw{ $AUTOLOAD @ISA }; +use strict; +@ISA = qw(Bio::Root::Root); +sub new { + my ($class,@args) = @_; + my $self = $class->SUPER::new(@args); + + # initialize ids + $self->{'ids'} = []; + + return $self; +} + +=head2 start_document + + Title : start_document + Usage : $obj->start_document + Function: PerlSAX method called when a new document is initialized + Returns : nothing + Args : document name + +=cut + +# Basic PerlSAX +sub start_document { + my ($self, $document) = @_; +} + +=head2 end_document + + Title : end_document + Usage : $obj->end_document + Function: PerlSAX method called when a document is finished for cleaning up + Returns : list of ids seen + Args : document name + +=cut + +sub end_document { + my ($self, $document) = @_; + return $self->{'ids'}; +} + +=head2 start_element + + Title : start_element + Usage : $obj->start_element + Function: PerlSAX method called when a new element is reached + Returns : nothing + Args : element object + +=cut + +sub start_element { + my ($self, $element) = @_; + + if ($element->{'Name'} eq 'bx-seq:seq') { + if ($element->{'Attributes'}->{'bx-seq:id'}) { + push @{$self->{'ids'}}, $element->{'Attributes'}->{'bx-seq:id'}; + } else { + if ($self->can('warn')) { + $self->warn('WARNING: Attribute bx-seq:id is required on bx-seq:seq. Sequence will not be parsed.'); + } else { + warn('WARNING: Attribute bx-seq:id is required on bx-seq:seq. Sequence will not be parsed.'); + } + } + } + return 0; +} + +=head2 end_element + + Title : end_element + Usage : $obj->end_element + Function: PerlSAX method called when an element is finished + Returns : nothing + Args : element object + +=cut + +sub end_element { + my ($self, $element) = @_; + +} + +=head2 characters + + Title : characters + Usage : $obj->end_element + Function: PerlSAX method called when text between XML tags is reached + Returns : nothing + Args : text + +=cut + +sub characters { + my ($self, $text) = @_; +} + + +=head2 AUTOLOAD + + Title : AUTOLOAD + Usage : do not use directly + Function: autoload handling of missing DESTROY method + Returns : nothing + Args : text + +=cut + +# Others +sub AUTOLOAD { + my $self = shift; + + my $method = $AUTOLOAD; + $method =~ s/.*:://; + return if $method eq 'DESTROY'; + + print "UNRECOGNIZED $method\n"; +} + +1; + +__END__