The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Bio::Graphics::FeatureFile -- A set of Bio::Graphics features, stored in a file

SYNOPSIS

 use Bio::Graphics::FeatureFile;
 my $data  = Bio::Graphics::FeatureFile->new(-file => 'features.txt');

 # render contents of the file onto a Bio::Graphics::Panel in one step
 $data->render($panel);

 # for more control, render tracks individually
 my @feature_types = $data->types;
 for my $type (@feature_types) {
    my $features = $data->features($type);
    my %options  = $data->style($type);
    $panel->add_track($features,%options);  # assuming we have a Bio::Graphics::Panel
 }

 # get individual settings
 my $est_fg_color = $data->setting(EST => 'fgcolor');

 # or create the FeatureFile by hand

 # add a type
 $data->add_type(EST => {fgcolor=>'blue',height=>12});

 # add a feature
 my $feature = Bio::Graphics::Feature->new(....); # or some other SeqI
 $data->add_feature($feature=>'EST');

DESCRIPTION

The Bio::Graphics::FeatureFile module reads and parses files that describe sequence features and their renderings. It accepts both GFF format and a more human-friendly file format described below. Once a FeatureFile object has been initialized, you can interrogate it for its consistuent features and their settings, or render the entire file onto a Bio::Graphics::Panel.

The File Format

There are two types of entry in the file format: feature entries, and formatting entries. They can occur in any order. See the Appendix for a full example.

Feature entries can take several forms. At their simplest, they look like this:

 Gene   B0511.1 516-11208

This means that a feature of type "Gene" and name "B0511.1" occupies the range between bases 516 and 11208. A range can be specified equally well using a hyphen, or two dots as in 516..11208. Negative coordinates are allowed, such as -187..1000.

A discontinuous range ("split location") uses commas to separate the ranges. For example:

 Gene B0511.1  516-619,3185-3294,10946-11208

Alternatively, the locations can be split by repeating the features type and name on multiple adjacent lines:

 Gene   B0511.1 516-619
 Gene   B0511.1 3185-3294
 Gene   B0511.1 10946-11208

A comment can be added to features by adding a fourth column. These comments will be rendered as under-the-glyph descriptions by those glyphs that honor descriptions:

 Gene  B0511.1  516-619,3185-3294,10946-11208 "Putative primase"

Columns are separated using whitespace, not (necessarily) tabs. Embedded whitespace can be escaped using quote marks or backslashes in the same way as in the shell:

 'Putative Gene' my\ favorite\ gene 516-11208

Features can be grouped so that they are rendered by the "group" glyph (so far this has only been used to relate 5' and 3' ESTs). To start a group, create a two-column feature entry showing the group type and a name for the group. Follow this with a list of feature entries with a blank type. For example:

 EST    yk53c10
        yk53c10.3       15000-15500,15700-15800
        yk53c10.5       18892-19154

This example is declaring that the ESTs named yk53c10.3 and yk53c10.5 belong to the same group named yk53c10.

Appendix -- Sample Feature File

 # file begins
 [general]
 pixels = 1024
 bases = 1-20000
 reference = Contig41
 height = 12

 [Cosmid]
 glyph = segments
 fgcolor = blue
 key = C. elegans conserved regions

 [EST]
 glyph = segments
 bgcolor= yellow
 connector = dashed
 height = 5;

 [FGENESH]
 glyph = transcript2
 bgcolor = green
 description = 1

 Cosmid B0511   516-619
 Cosmid B0511   3185-3294
 Cosmid B0511   10946-11208
 Cosmid B0511   13126-13511
 Cosmid B0511   11394-11539
 EST    yk260e10.5      15569-15724
 EST    yk672a12.5      537-618,3187-3294
 EST    yk595e6.5       552-618
 EST    yk595e6.5       3187-3294
 EST    yk846e07.3      11015-11208
 EST    yk53c10
        yk53c10.3       15000-15500,15700-15800
        yk53c10.5       18892-19154
 EST    yk53c10.5       16032-16105
 SwissProt      PECANEX 13153-13656     Swedish fish
 FGENESH        Predicted gene 1        1-205,518-616,661-735,3187-3365,3436-3846       Pfam domain
 FGENESH        Predicted gene 2        5513-6497,7968-8136,8278-8383,8651-8839,9462-9515,10032-10705,10949-11340,11387-11524,11765-12067,12876-13577,13882-14121,14169-14535,15006-15209,15259-15462,15513-15753,15853-16219   Mysterious
 FGENESH        Predicted gene 3        16626-17396,17451-17597
 FGENESH        Predicted gene 4        18459-18722,18882-19176,19221-19513,19572-19835 Transmembrane protein
 # file ends

SEE ALSO

Bio::Graphics::Panel, Bio::Graphics::Glyph, Bio::Graphics::Feature, Bio::Graphics::FeatureFile

AUTHOR

Lincoln Stein <lstein@cshl.org>.

Copyright (c) 2001 Cold Spring Harbor Laboratory

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See DISCLAIMER.txt for disclaimers of warranty.