# $Id: Taxlist.pm 843 2009-03-04 23:50:27Z rvos $ package Bio::Phylo::Parsers::Taxlist; use strict; use Bio::Phylo::Factory; use Bio::Phylo::IO; use vars qw(@ISA); @ISA=qw(Bio::Phylo::IO); my $fac = Bio::Phylo::Factory->new; =head1 NAME Bio::Phylo::Parsers::Taxlist - Parser used by Bio::Phylo::IO, no serviceable parts inside inside. =head1 DESCRIPTION This module is used for importing sets of taxa from plain text files, one taxon on each line. It is called by the L object, so look there for usage examples. If you want to parse from a string, you may need to indicate the field separator (default is '\n') to the Bio::Phylo::IO->parse call: -fieldsep => '\n', =begin comment Type : Constructor Title : new Usage : my $taxlist = Bio::Phylo::Parsers::Taxlist->new; Function: Initializes a Bio::Phylo::Parsers::Taxlist object. Returns : A Bio::Phylo::Parsers::Taxlist object. Args : none. =end comment =cut sub _new { my $class = $_[0]; my $self = {}; bless $self, $class; return $self; } =begin comment Type : parser Title : from_handle(%options) Usage : $taxlist->from_handle(%options); Function: Reads taxon names from file, populates taxa object Returns : A Bio::Phylo::Taxa object. Args : -handle => (\*FH), -file => (filename) Comments: =end comment =cut *_from_handle = \&_from_both; *_from_string = \&_from_both; sub _from_both { my $self = shift; my %opts = @_; if ( !$opts{'-fieldsep'} ) { $opts{'-fieldsep'} = "\n"; } my $taxa = $fac->create_taxa; if ( $opts{'-handle'} ) { while ( readline $opts{'-handle'} ) { chomp; if ($_) { $taxa->insert( $fac->create_taxon( -name => $_ ) ); } } } elsif ( $opts{'-string'} ) { foreach ( split /$opts{'-fieldsep'}/, $opts{'-string'} ) { chomp; if ($_) { $taxa->insert( $fac->create_taxon( -name => $_ ) ); } } } if ( $opts{'-project'} ) { $opts{'-project'}->insert($taxa); return $opts{'-project'}; } elsif ( $opts{'-as_project'} ) { my $proj = $fac->create_project; $proj->insert($taxa); return $proj; } else { return $taxa; } } # podinherit_insert_token # podinherit_start_token_do_not_remove # AUTOGENERATED pod created by /Users/rvosa/Applications/podinherit on Wed Mar 4 17:13:56 2009 # DO NOT EDIT the code below, rerun /Users/rvosa/Applications/podinherit instead. =pod =head1 INHERITED METHODS Bio::Phylo::Parsers::Taxlist inherits from one or more superclasses. This means that objects of class Bio::Phylo::Parsers::Taxlist also "do" the methods from the superclasses in addition to the ones implemented in this class. Below is the documentation for those additional methods, organized by superclass. =head2 SUPERCLASS Bio::Phylo::IO Bio::Phylo::Parsers::Taxlist inherits from superclass L. Below are the public methods (if any) from this superclass. =over =item parse() Parses a file or string. Type : Class method Title : parse Usage : my $obj = Bio::Phylo::IO->parse(%options); Function: Creates (file) handle, instantiates appropriate parser. Returns : A Bio::Phylo::* object Args : -file => (path), or -string => (scalar), -format => (description format), -(other) => (parser specific options) Comments: The parse method makes assumptions about the capabilities of Bio::Phylo::Parsers::* modules: i) their names match those of the -format => (blah) arguments, insofar that ucfirst(blah) . '.pm' is an existing module; ii) the modules implement a _from_handle, or a _from_string method. Exceptions are thrown if either assumption is violated. If @ARGV contains even key/value pairs such as "format newick file " (note: no dashes) these will be prepended to @_, for one-liners. =item unparse() Unparses object(s) to a string. Type : Class method Title : unparse Usage : my $string = Bio::Phylo::IO->unparse( %options ); Function: Turns Bio::Phylo object into a string according to specified format. Returns : SCALAR Args : -phylo => (Bio::Phylo object), -format => (description format), -(other) => (parser specific options) =back =cut # podinherit_stop_token_do_not_remove =head1 SEE ALSO =over =item L The taxon list parser is called by the L object. Look there for examples. =item L Also see the manual: L and L. =back =head1 REVISION $Id: Taxlist.pm 843 2009-03-04 23:50:27Z rvos $ =cut 1;