import charite.christo.strap.StrapProtein;
import charite.christo.strap.StrapProtein;
import charite.christo.strap.ResidueAnnotation;
import charite.christo.strap.StrapProtein2BiojavaSequence;
import charite.christo.strap.BiojavaSequence2StrapProtein;
import javax.swing.JScrollPane;
import javax.swing.JFrame;
import org.biojava.bio.gui.sequence.SequenceRenderer;
import org.biojava.bio.gui.sequence.FeatureRenderer;
import org.biojava.bio.gui.sequence.BasicFeatureRenderer;
import org.biojava.bio.gui.sequence.SymbolSequenceRenderer;
import org.biojava.bio.gui.sequence.SequencePanel;
import org.biojava.bio.gui.sequence.FeatureBlockSequenceRenderer;
import org.biojava.bio.gui.sequence.MultiLineRenderer;
import org.biojava.bio.symbol.RangeLocation;
import org.biojava.bio.seq.GappedSequence;
import org.biojava.bio.seq.ProteinTools;
/*
java DemoStrapProtein2BiojavaSequence
Usage of the class StrapProtein2BiojavaSequence is demonstrated.
A STRAP protein object with a gapped sequence and a residue selection is created
and converted into Biojava object.
*/
public class DemoStrapProtein2BiojavaSequence {
public static void main(String argv[]) {
/* Initiate a STRAP protein object with a gapped sequence */
final StrapProtein p=new StrapProtein();
p.setGappedSequence("ASD FGHKL");
/* Add a residue selection to the STRAP protein */
final ResidueAnnotation annotation=new ResidueAnnotation(p);
annotation.setSelectedAminoacids("3-5,70-79,900-1000");
p.addResidueSelection(annotation);
/* Convert the STRAP object to BioJava */
final GappedSequence biojavaSequence=new StrapProtein2BiojavaSequence(p).sequence();
/* Display using BioJava-methods */
showWithBiojava(biojavaSequence);
}
/* This method displays a Biojava object. */
/* It uses exclusively Biojava methods. */
/* See the examples in "Biojava in Anger" by Mark Schreiber for more details. */
private static void showWithBiojava(GappedSequence seq) {
try{
final MultiLineRenderer mlr=new MultiLineRenderer();
final FeatureRenderer featr=new BasicFeatureRenderer();
final SequenceRenderer seqR=new SymbolSequenceRenderer();
final SequencePanel seqPanel=new SequencePanel();
final FeatureBlockSequenceRenderer fbr=new FeatureBlockSequenceRenderer();
fbr.setFeatureRenderer(featr);
mlr.addRenderer(fbr);
mlr.addRenderer(seqR);
seqPanel.setRenderer(mlr);
seqPanel.setSequence(seq);
seqPanel.setRange(new RangeLocation(1,seq.length()+1));
final JFrame f=new JFrame();
f.setSize(300,300);
f.getContentPane().add(new JScrollPane(seqPanel));
f.show();
} catch(Exception e){System.out.println("caught: "+e);e.printStackTrace(System.out);}
}
}