Provided by: libace-perl_1.92-11build5_amd64 bug

NAME

       Ace::Graphics::Track - PNG graphics of Ace::Sequence::Feature objects

SYNOPSIS

         use Ace::Sequence;
         use Ace::Graphics::Panel;

         my $db     = Ace->connect(-host=>'brie2.cshl.org',-port=>2005) or die;
         my $cosmid = Ace::Sequence->new(-seq=>'Y16B4A',
                                         -db=>$db,-start=>-15000,-end=>15000) or die;

         my @transcripts = $cosmid->transcripts;

         my $panel = Ace::Graphics::Panel->new(
                                             -segment => $cosmid,
                                             -width  => 800
                                            );

         my $track = $panel->add_track('transcript'
                                       -fillcolor =>  'wheat',
                                       -fgcolor   =>  'black',
                                       -bump      =>  +1,
                                       -height    =>  10,
                                       -label     =>  1);
         foreach (@transcripts) {
            $track->add_feature($_);
         }

         my $boxes = $panel->boxes;
         print $panel->png;

DESCRIPTION

       The Ace::Graphics::Track class is used by Ace::Graphics::Panel to lay out a set of sequence features
       using a uniform glyph type. You will ordinarily work with panels rather than directly with tracks.

METHODS

       This section describes the class and object methods for Ace::Graphics::Panel.

   CONSTRUCTORS
       There is only one constructor, the new() method.  It is ordinarily called by Ace::Graphics::Panel, and
       not in end-developer code.

       $track = Ace::Graphics::Track->new($glyph_name,$features,@options)
           The  new()  method creates a new track object from the provided glyph name and list of features.  The
           arguments are similar to those in Ace::Graphics::Panel->new().

           If successful new() will return a new Ace::Graphics::Track.  Otherwise, it will return undef.

           If the specified glyph name is not a valid one, new() will throw an exception.

   OBJECT METHODS
       Once a track is created, the following methods can be invoked.

       $track->add_feature($feature)
           This adds a new feature to the track.  The feature can either be a single object that implements  the
           Bio::SeqFeatureI interface (such as an Ace::Sequence::Feature or Das::Segment::Feature), or can be an
           anonymous  array containing a set of related features.  In the latter case, the track will attempt to
           keep the features in the same horizontal band and will not allow any other features to overlap.

       $track->add_group($group)
           This behaves the same as add_feature(),  but  requires  that  its  argument  be  an  array  reference
           containing a list of grouped features.

       $track->draw($gd,$left,$top)
           Render the track on a previously-created GD::Image object.  The $left and $top arguments indicate the
           position at which to start rendering.

       $boxes = $track->boxes($left,$top)
       @boxes = $track->boxes($left,$top)
           Return  an  array  of  array references indicating glyph coordinates for each of the render features.
           $left and $top indicate the offset for the track on the image  plane.   In  a  scalar  context,  this
           method  returns  an  array  reference  of  glyph coordinates.  In a list context, it returns the list
           itself.

           See Ace::Graphics::Panel->boxes() for the format of the result.

   ACCESSORS
       The following accessor methods provide access to various attributes of the track object.  Called with  no
       arguments,  they each return the current value of the attribute.  Called with a single argument, they set
       the attribute and return its previous value.

       Note that in most cases you must change attributes before the track's layout() method is called.

          Accessor Name      Description
          -------------      -----------

          scale()            Get/set the track scale, measured in pixels/bp
          lineheight()       Get/set the height of each glyph, pixels
          width()            Get/set the width of the track
          bump()             Get/set the bump direction

   INTERNAL METHODS
       The following methods are used internally, but may be useful for those implementing new glyph types.

       $glyphs = $track->layout
           Layout the features, and return an anonymous array of Ace::Graphics::Glyph  objects  that  have  been
           created and correctly positioned.

           Because  layout  is  an  expensive  operation,  calling  this  method  several  times will return the
           previously-cached result, ignoring any changes to track attributes.

       $height = $track->height
           Invokes layout() and returns the height of the track.

       $glyphs = $track->glyphs
           Returns the glyph cache.  Returns undef before layout() and a reference to an array of  glyphs  after
           layout().

       $factory = $track->make_factory(@options)
           Given  a  set  of  options  (argument/value  pairs), returns a Ace::Graphics::GlyphFactory for use in
           creating the glyphs with the desired settings.

BUGS

       Please report them.

SEE ALSO

       Ace::Sequence,Ace::Sequence::Feature,Ace::Graphics::Panel,
       Ace::Graphics::GlyphFactory,Ace::Graphics::Glyph

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.

perl v5.38.2                                       2024-03-31                          Ace::Graphics::Track(3pm)