COMPUTER SCIENCE

 

JAVA

 

R

 

XML

 

LINUX

 

OTHERS

 

BIOINFORMATICS

 

BIOJAVA

 

 

BIOSQL

 

 

MICROARRAY

 

 

MOTIF FINDING

 

 

REGULATION NETWORK

 

OTHERS

 

LIFE SCIENCE

 

 


我如何展示序列标尺?

当你图形化序列时需要展示标尺,这样你就很容易定位碱基。Biojava包含一个叫标尺绘制器(RulerRenderer)的序列绘制器实现能够绘制序列标尺。
因为序列绘制上下文(SequenceRenderContext)同一时间只能使用一个序列绘制器,所以你必须使用多行绘制器(MutiLineRenderer)。多行绘制器实现了序列绘制器接口,能够包装多个序列绘制器,在多个轨道上调节他们的图形。

下面的程序使用了标尺绘制器,多行绘制器。后面的是程序的截屏。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import org.biojava.bio.gui.sequence.*;
import org.biojava.bio.symbol.*;

public class MultiView extends JFrame {
private JPanel jPanel = new JPanel();
private MultiLineRenderer mlr = new MutiLintRenderer();
private SequenceRenderer symR = new SymbolSequenceRenderer();
private RulerRender ruler = new RulerRenderer();
private SequencePanel seqPanel = new SequencePanel();
private Sequence seq;

public MutiView(){
try {
seq = ProteinTools.createProteinSequence(
"agcgstyravlivtymaragrsecharlvahklchg",
"protein 1");
init();
}
catch(Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args){
MultiView multiView = new MultiView();
multiView.pack();
multiView.show();
}

protected void processWindowEvent(WindowEvent we){
if (we.getID() == WindowEvent.WINDOW_CLOSING) {
System.exit(0);
}
else {
super.processWindowEvent(we);
}
}

// 设置GUI组件


private void init() throws Exception {
this.setTitle("MultiView");
this.getContentPane().add(jPanel,BorderLayout.CENTER);
jPanel.add(seqPanel,BorderLayout.CENTER);


//将标志序列绘制器(SymbolSequenceRenderer)和标尺绘制器(RulerRenderer)加到多行绘制器//(MultiLineRenderer)中。


mlr.addRenderer(symR);
mlr.addRenderer(ruler);

//设置多行绘制器为主绘制器


seqPanel.setRenderer(mlr);

//设置序列


seqPanel.setSequence(seq);

//设置显示范围


seqPanel.setRange(new RangeLocation(1,seq.length()));

}
}

 

Maintainted by Wu Xin, CBI, Peking University, China, 2003