#!/usr/local/bin/perl # vim: tw=78: sw=4: ts=4: et: # $Id: genbank-parser.pl 9 2008-01-28 20:08:45Z kyclark $ use strict; use warnings; use Bio::GenBankParser; use English qw( -no_match_vars ); use File::Basename; use Getopt::Long; use Pod::Usage; use Readonly; use YAML qw( Dump ); Readonly my $VERSION => qq$Revision: 9 $ =~ /(\d+)/; my ( $help, $man_page, $show_version ); GetOptions( 'help' => \$help, 'man' => \$man_page, 'version' => \$show_version, ) or pod2usage(2); if ( $help || $man_page ) { pod2usage({ -exitval => 0, -verbose => $man_page ? 2 : 1 }); }; if ( $show_version ) { my $prog = basename( $PROGRAM_NAME ); print "$prog v$VERSION\n"; exit 0; } my @files = @ARGV or pod2usage('No input files'); my $parser = Bio::GenBankParser->new; my ( $num_files, $num_seq ) = ( 0, 0 ); for my $file ( @files ) { $num_files++; $parser->file( $file ); while ( my $seq = $parser->next_seq ) { $num_seq++; print Dump( $seq ); } } printf STDERR "Done, processed %s sequence%s in %s file%s.\n", $num_seq, $num_seq == 1 ? '' : 's', $num_files, $num_files == 1 ? '' : 's'; __END__ # ---------------------------------------------------- =pod =head1 NAME genbank-parser.pl - parse GenBank records into YAML =head1 VERSION This documentation refers to version $Revision: 9 $ =head1 SYNOPSIS genbank-parser.pl file1.seq [file2.seq ...] Options: --help Show brief help and exit --man Show full documentation --version Show version and exit =head1 DESCRIPTION This is little more than an example showing a trivial use of Bio::GenBankParser. Here we convert a stream of files into YAML on STDOUT. =head1 SEE ALSO Bio::GenBankParser, YAML. =head1 AUTHOR Ken Youens-Clark Ekclark@cpan.orgE. =head1 COPYRIGHT Copyright (c) 2008 Cold Spring Harbor Laboratory This module is free software; you can redistribute it and/or modify it under the terms of the GPL (either version 1, or at your option, any later version) or the Artistic License 2.0. Refer to LICENSE for the full license text and to DISCLAIMER for additional warranty disclaimers. =cut