Hi - In this case, rather than using the SequencePanel you would use a TranslatedSequencePanel which allows you to translate (offset) the coordinates to display the bit you want.
- Mark > -----Original Message----- > From: Ethan Cerami [mailto:[EMAIL PROTECTED]] > Sent: Wednesday, 15 January 2003 2:51 a.m. > To: [EMAIL PROTECTED] > Subject: [Biojava-l] Sequence Range Question > > > Ok, based on the feedback I got yesterday, I have made > much progress :-) Right now, I am trying to create a > bare bones gene viewer that can render gene features > via a SequencePanel object. For example, the code > below renders the Adam2 gene on chromosome 8. > > Adam2 is located at: Chromosome 8: 38997645 - > 39047541 bp. To render it, I have a 1MB dummy > sequence that starts at 1. How do I create a dummy > sequence that starts at 38995000 so that I can show > the correct location? Is there some way to create a > virtual offset? > > Sample code is below. Thanks again for any help! > > Ethan > > import java.awt.*; > import java.awt.event.*; > > import javax.swing.*; > > import org.biojava.bio.*; > import org.biojava.bio.gui.sequence.*; > import org.biojava.bio.seq.*; > import org.biojava.bio.seq.impl.SimpleSequence; > import org.biojava.bio.seq.genomic.Gene; > import org.biojava.bio.symbol.*; > import org.biojava.utils.ChangeVetoException; > > /** > * Simple Gene Browser > */ > public class FeatureView extends JFrame { > private final static int WINDOW = 1000000; // 1 > Million BP > private Sequence sequence; > private JPanel panel = new JPanel (); > private MultiLineRenderer mlr = new MultiLineRenderer > (); > private RectangularBeadRenderer featr = new > RectangularBeadRenderer (); > private RulerRenderer ruler = new RulerRenderer (); > private SequencePanel seqPanel = new SequencePanel > (); > private FeatureBlockSequenceRenderer fbr = > new FeatureBlockSequenceRenderer (); > > /** > * Constructor > */ > public FeatureView () throws Exception { > sequence = createSequence (); > addGenes (sequence); > createGUI (); > } > > /** > * Creates a Dummy Sequence > */ > private Sequence createSequence () { > SymbolList dummyList = new DummySymbolList > (DNATools.getDNA (), > WINDOW); > Sequence sequence = new SimpleSequence (dummyList, > "ensembl", "ensembl", > Annotation.EMPTY_ANNOTATION); > return sequence; > } > > /** > * Creates Multiple Genes > */ > private void addGenes (Sequence sequence) > throws BioException, ChangeVetoException { > // Add Adam2 Gene > // Location: Chromosome 8: 38997645 - 39047541 bp > // int adam2_start = 38997645; this doesn't work > b/c > // > it's out of range > int adam2_start = 20000; > int adam2_length = 49896; > Gene.Template gene = new Gene.Template (); > gene.type = "gene"; > gene.source = "ensembl"; > gene.location = new RangeLocation (adam2_start, > adam2_start > + adam2_length); > gene.annotation = Annotation.EMPTY_ANNOTATION; > gene.strand = StrandedFeature.POSITIVE; > sequence.createFeature (gene); > > } > > /** > * Create the User Interface > */ > private void createGUI () throws Exception { > this.setTitle ("Gene Viewer"); > Container contentPane = this.getContentPane (); > contentPane.add (panel, BorderLayout.CENTER); > panel.add (seqPanel); > > // Register the FeatureRenderer with the > FeatureBlockSequenceRenderer > fbr.setFeatureRenderer (featr); > > // Add Renderers to the MultiLineRenderer > mlr.addRenderer (fbr); > mlr.addRenderer (ruler); > seqPanel.setRenderer (mlr); > > // Set the Sequence to Render > seqPanel.setSequence (sequence); > seqPanel.setRange (new RangeLocation (1, WINDOW)); > seqPanel.setScale (.0007); > } > > /** > * Overridden so program terminates when window > closes > */ > protected void processWindowEvent (WindowEvent we) { > if (we.getID () == WindowEvent.WINDOW_CLOSING) { > System.exit (0); > } else { > super.processWindowEvent (we); > } > } > > /** > * Main Method > */ > public static void main (String[] args) throws > Exception { > FeatureView featureView = new FeatureView (); > featureView.pack (); > featureView.show (); > } > > } > > > > __________________________________________________ > Do you Yahoo!? > Yahoo! Mail Plus - Powerful. Affordable. Sign up now. > http://mailplus.yahoo.com > _______________________________________________ > Biojava-l mailing list - [EMAIL PROTECTED] > http://biojava.org/mailman/listinfo/biojava-l > ======================================================================= Attention: The information contained in this message and/or attachments from AgResearch Limited is intended only for the persons or entities to which it is addressed and may contain confidential and/or privileged material. Any review, retransmission, dissemination or other use of, or taking of any action in reliance upon, this information by persons or entities other than the intended recipients is prohibited by AgResearch Limited. If you have received this message in error, please notify the sender immediately. ======================================================================= _______________________________________________ Biojava-l mailing list - [EMAIL PROTECTED] http://biojava.org/mailman/listinfo/biojava-l
