[Biojava-l] how to do multi-lined feature display

Patrick McConnell MCCon012 at mc.duke.edu
Thu Mar 27 15:18:12 EST 2003



That helps alot, thanks!  I think the trick that caught me is with the
FeatureFilter.  I think this would make a great example for BioJava in
Anger.

I am able to get my features displayed on different "tracks" by specifying
contrived sources.  I am even able to alter the display color of the
features based on the annotation (bitscore) by subclassing the
BasicFeatureRenderer (maybe there's a better way to do this).  This makes
it look alot more "blast-like".

I am actually doing this to build images to display on a website.  So, I
need to discover the pixel positions of the rendered features.  By reading
through the API's, I see no way to do this.  Is this even possible?

Thanks a bunch!

-Patrick





Keith James <kdj at sanger.ac.uk> on 03/27/2003 03:05:07 PM

To:    "Patrick McConnell" <MCCon012 at mc.duke.edu>
cc:    "biojava-l at biojava.org" <biojava-l at biojava.org>

Subject:    Re: [Biojava-l] how to do multi-lined feature display

>>>>> "Patrick" == Patrick McConnell <MCCon012 at mc.duke.edu> writes:

    Patrick> Let me be more specific.  I want to be able to reproduce
    Patrick> something like EnsEMBL, where I have one sequence and
    Patrick> multiple tracks of features.

    Patrick> Specifically, I have a sequence and a bunch of blast hits
    Patrick> from different databases.  I also have some other data,
    Patrick> such as quality scores for the sequence, that I need to
    Patrick> build custom renderers for (which will come later).

    Patrick> I think I need to use the MultiLineRenderer in
    Patrick> conjunction with a SequencePanel, but I cannot figure out
    Patrick> how to get multiple tracks of annotations.  Do I need to
    Patrick> add Features to the Sequence in a special manner?

Using a MultiLineRenderer will allow you to have multiple tracks. You
may then put a different SequenceRenderer in each track.

Take a SequencePanel (easier to implement scrolling -simply place into
a ScrollPane) or TranslatedSequencepanel (must have scrolling
implemented manually by hooking a JScrollBar to change the sequence
position of the area to be viewed, but last benchmarked 7x faster than
SequencePanel).

Set the Panel's SequenceRenderer to be a MultiLineRenderer. You can
then add more SequenceRenderers to the multi, each with different
views of the Sequence and its complement of Features. Make these
renderers FilteringRenderers (which are SequenceRendererWrappers) to
get different views per track. Specify a FeatureFilter for each
FilteringRenderer to determine waht to show in each track. You can
combine multiple FeatureFilters via the filtering API.

You can also use BeadFeatureRenderer (a SequenceRenderer) to show any
number of different Feature types, each rendered distinctively, all on
the same track. It also allows you to have different types of Feature
at different Y-axis displacements in the same track.

Does this help at all?

Keith

--

- Keith James <kdj at sanger.ac.uk> bioinformatics programming support -
- Pathogen Sequencing Unit, The Wellcome Trust Sanger Institute, UK -









More information about the Biojava-l mailing list