NAME

Catalyst::View::Bio::SeqIO - use BioPerl's Bio::SeqIO as a Catalyst view

SYNOPSIS

## subclassing to making your view
package MyApp::View::SeqIO;
use Moose;
extends 'Catalyst::View::Bio::SeqIO';

__PACKAGE__->config(
    default_seqio_args => {
        -width => 80,
     },
    default_format       => 'fasta',
    default_content_type => 'text/plain',
    content_type_map     => {
        fasta => 'application/x-fasta',
    },
  );

## using in a controller

sub foo :Path('/foo') {
    my ( $self, $c ) = @_;

    # get an array of Bio::SeqI-compliant objects.
    my @sequences = get_sequences_somehow();

    # set the sequences and the format in the stash, and forward
    # to your subclassed view
    $c->stash->{sequences}    = \@sequences;
    $c->stash->{seqio_format} = 'genbank';
    $c->forward( 'View::SeqIO' );
}

CONFIGURABLE ATTRIBUTES

Like all Catalyst components, the values for these can be set in a package config statement or in your myapp.conf file.

sequences_stash_key

Stash key to use for arrayref of sequences to print out. Default 'sequences'.

format_stash_key

Stash key to use for the sequence format. Default 'seqio_format'.

object_stash_key

Stash key under which to look for a custom-constructed Bio::SeqIO-compliant object to use for rendering sequences. Default 'seqio_object'.

If a SeqIO object is provided in the stash under this key, this view will use that for rendering the sequences, instead of constructing its own SeqIO object.

default_seqio_args

Hashref of default arguments to pass to constructed SeqIO objects. Defaults to empty.

content_type_map

Hashref giving the mapping of SeqIO formats to content types. Currently defaults to just

{  fasta => 'application/x-fasta' }

Do you know proper MIME types for other formats? Please tell me and I'll add them.

default_content_type

Default content type to use when a format is not found in the content_type_map. Defaults to 'text/plain'.

AUTHOR

Robert Buels <rbuels@cpan.org>

COPYRIGHT AND LICENSE

This software is copyright (c) 2011 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.