Seqpad is a high performance and flexible bioinformatics visualization and data handling platform built on open source technologies. It provides concise views of sequence data including the ability to view sequences, multiple alignments, 3D structures, phylogenetic trees and more. Users can import common file formats, perform sequence manipulations and view annotations. The platform utilizes a relational database backend and provides tools for task scheduling. It has grown significantly since 2003 both in features and code size. Seqpad aims to provide a productive environment for exploring and analyzing biological data.
What Are The Drone Anti-jamming Systems Technology?
Decouttere_SeqPad _BOSC2009
1. SEQPAD
BOSC 2009 – Stockholm (Sweden)
Decouttere F., De Beule D., Trooskens G., Devisscher M. & Van Criekinge W.
2. seqpad : built upon an open source stack
seqpad: high performance, very flexible bioinformatics
visualization & data handling platform
java swing extensions
java utility libraries biojava & biojavax
relational database backend
based on BioSQL + SeqPad project extensions
JDK 1.6+ with Java3D extension
(windows - linux – mac os x)
3. seqpad: 2003 - 2009
• THEN (2003) : a very basic java GUI demonstrating sequence/
feature display & 3D formats, funded & developed by Genohm, a
University of Gent spinoff company in Belgium
• NOW (2009):
+- 1140 java classes
+- 165.000 lines of source code
Lots of features
open-source (LGPL V3)
5. seqpad: main window
1. typed project
pane with full
DnD support
2. MDI + ZUI
– sequence
– 3D
– multiple
alignment
– phylogenetic
trees
3. Viewport linked
to MDI
4. task scheduler
5. All linked by
seqpad’s event
scheduler!
6. project & collections
• project / collection centric view where each project can
contain 0 or more collections. Each collection is typed as
DNA or Protein
• the project pane supports full DnD from any source (file
system, directly from www browser, …)
• accepts all common sequence file formats (biojava +
seqpad readers) e.g. FASTA DNA, FASTA Protein,
Genbank, Genpept, Swissprot, EMBL DNA, EMBL Protein,
Clustal W, MSF, BLAST XML, PDB,… with annotation &
feature parsing
• all information is automatically persisted in a relational
database upon import
• collection can also accept arbitrary files like MS Word,
Excel, OpenOffice, pdf, images, …
7. Multiple Document Interface (MDI)
• central panel: parent
container for all
rendering views
(sequence, molecule,
dotplot, …)
• Each view has its own
renderer & event
subscribe/consume
setup
• an example: the 3D
view consumes the
selection event from
the protein sequence,
showing the selected
sequence
simultaneously!
8. task scheduling
• basic scheduling mechanism for sync + async interaction
with 3rd party systems (e.g. blast, custom perl scripts, …)
• It can remove or re-execute defined tasks
• Not a full blown workflow! And it never will be…
• keeps track of where the task call came from, adds the
results to the correct project / collection as they return
from the remote system
• also shows if your Java VM runs out of memory ;-)
9. currently available viewers
• sequence with features, annotation,
color schemes, inline editing, …
• multiple alignments
• 3D models
• phylogenetic trees
• blast result viewer & selection
• inline <office> view (Java JDIC)
10. seqpad: mapping piccolo2D to bio*
• seqpad provides a high-level API
to produce a visual representation
of biojava’s sequence model
• seqpad’s API mapping with biojava
== visual CRUD model
• piccolo2D visualization provides
great image quality at all zoom
levels
• seqpad provides semantic zooming
(the closer you look, the more
details are revealed)
11. seqpad: sequence manipulation
Visual CRUD (using biojava
API where applicable):
– edit view with PERL
like regular
expression support
– Reverse,
Complement,
Reverse
complement,
Shuffle, bisulfite
– 6-frame translation
– feature editing
– manual sequence
alignment (e.g.
introduce of remove
gaps, …)
12. performance: 1e6 bp sequence
semantic zooming
1e6 3y old laptop, using 34,9 MB of data
(of which +- 20 MB seqpad baseline)
14. event system in action
• slide through a rooted phylogenetic tree, simultaneously
highlighting conserved regions in the multiple alignment & 3D
structure
• all using seqpad’s event system
15. writing a new viewer
• it takes some steps (but you
have to know java swing!)
– define at which level you will
include your view data in the
project/collection tree, possibly
register a new node type
– write a new Panel “extends PPanel
implements DockableView”
– give your panel a ToolBar
– write a Renderer for your Panel,
this bridges the view with
Piccolo2D (using seqpad’s mapping
API)
– define all Events that your view is
going to emit and consume.
– run, debug & fix your code ;-)
LOOK AT the seqpad.gui.*
packages for examples or as a
reference !
16. seqpad roadmap
• update to biojava(x) 1.7, support & test all IO
formats from biojava(x) 1.7
• create a “multi-lane” sequence view for visual
mapping (map sequence fragment against
reference sequence)
• explore native integration possibilities from the
JDK1.6 (Desktop, SystemTray, …)
• create optimized releases/L&F for windows - linux
– mac os x
• provide pre-configured hooks/viewers for
integration with DAS
• … ?
17. getting seqpad
• See http://www.seqpad.org for details, wiki, roadmap, tickets,
source code & more !
• warning: trac website just launched, so please report missing
functions, problems, …
18. acknowledgements
java…
David De Beule
Jonas Van Poucke
Geert Trooskens
brain(storming)…
Wim Van Criekinge
coffee funds…
Genohm & Ghent University