Successfully reported this slideshow.
Your SlideShare is downloading. ×

Decouttere_SeqPad _BOSC2009

Upcoming SlideShare
Java Future S Ritter
Java Future S Ritter
Loading in …3

Check these out next

1 of 20 Ad
1 of 20 Ad

More Related Content

Similar to Decouttere_SeqPad _BOSC2009 (20)


Decouttere_SeqPad _BOSC2009

  1. 1. SEQPAD BOSC 2009 – Stockholm (Sweden) Decouttere F., De Beule D., Trooskens G., Devisscher M. & Van Criekinge W.
  2. 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. 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)
  4. 4. seqpad in detail
  5. 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. 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. 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. 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. 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. 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. 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. 12. performance: 1e6 bp sequence semantic zooming 1e6 3y old laptop, using 34,9 MB of data (of which +- 20 MB seqpad baseline)
  13. 13. performance: browsing evolution •  browsing - searching the entire tree-of- life •  Using a bit more memory, 179 MB
  14. 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. 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. 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. 17. getting seqpad •  See for details, wiki, roadmap, tickets, source code & more ! •  warning: trac website just launched, so please report missing functions, problems, …
  18. 18. acknowledgements java… David De Beule Jonas Van Poucke Geert Trooskens brain(storming)… Wim Van Criekinge coffee funds… Genohm & Ghent University
  19. 19. Questions ?