Java Introductie


Published on

Published in: Technology, News & Politics
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide

Java Introductie

  1. 1. Java voor Bio-Informatica I
  2. 2. Introduction <ul><li>Course intro </li></ul><ul><li>Java as a language for Bioinformatics </li></ul><ul><li>Current Java API’s, Applications and Tools for Bioinformatics </li></ul><ul><li>Some Statistics </li></ul>
  3. 3. Books <ul><li>Book: Java voor studenten </li></ul><ul><li>Syllabus: Java voor BioInformatica 1 </li></ul>On Scholar
  4. 4. USE THE BOOK
  5. 5. Like this
  6. 6. OnLine <ul><li>How to Think Like a Computer Scientist </li></ul><ul><ul><li>Java Version </li></ul></ul><ul><ul><ul><li> </li></ul></ul></ul><ul><li>Thinking in Java –edition 3, Bruce Eckel </li></ul><ul><ul><ul><li> </li></ul></ul></ul><ul><li>BlueJ Tutorial </li></ul><ul><ul><ul><li> </li></ul></ul></ul><ul><li>SUN Java </li></ul><ul><ul><ul><li> / </li></ul></ul></ul>
  7. 7. Software <ul><li>BlueJ ( ) </li></ul>
  8. 9. <ul><li> </li></ul>
  9. 10. OO! Similar to C(++) Isn’t JavaScript
  10. 11.
  11. 12. From Python to Java
  12. 13. Why Python? <ul><li>Less effort </li></ul><ul><li>Regular Expressions for manipulating text </li></ul><ul><li>Lot of pre-existing bioinformatics Python modules ( BioPython ) </li></ul><ul><li>Python is widely used in the biology community, and it is a language well suited for writing Web applications </li></ul><ul><li>Good for quick prototypes </li></ul>
  13. 14. Why not Python (Ensembl)? <ul><li>“ Some aspects of Python are not well suited for a software project of Ensembl's size”. </li></ul><ul><li>“ absence of compile time checking of function prototypes and variable types is a steady source of runtime errors .” </li></ul>
  14. 15. Why Java? <ul><li>Java is platform independent and hence easily distributable. </li></ul><ul><li>Ideal for Visualization </li></ul><ul><li>Ensj , BioJava APIs </li></ul><ul><li>Since lot of standards and software engineering tools (IDEs,Testing, etc) are built for Java we can build applications that are robust and heavy duty </li></ul>
  15. 16. Why Java (Ensembl) <ul><li>“compile time type checking , </li></ul><ul><li>enforced interfaces , </li></ul><ul><li>multi threading , </li></ul><ul><li>better support for graphical user interfaces , </li></ul><ul><li>and correct garbage collection of circularly referenced objects ”. </li></ul>
  16. 17. Java Genomics Tools <ul><li>Argo Genome Browser is a tool for visualizing and annotating whole genomes. </li></ul><ul><ul><ul><ul><ul><li>Broad Institute </li></ul></ul></ul></ul></ul><ul><li>Apollo genome editor is a tool for annotating genomic sequences </li></ul><ul><ul><ul><ul><ul><li> </li></ul></ul></ul></ul></ul><ul><li>Artemis is a genome viewer and annotation tool. </li></ul><ul><ul><ul><ul><ul><li>The Sanger Institute </li></ul></ul></ul></ul></ul><ul><li>PatternHunter is a homology search tool. </li></ul><ul><ul><ul><ul><ul><li>Bioinformatics Solutions Inc. </li></ul></ul></ul></ul></ul>
  17. 18. Java Genomics Tools <ul><li>The  GBuilder is a tool for analysis and visualization of collections and assemblies of sequences. </li></ul><ul><ul><ul><ul><ul><li>EMBL, EBI </li></ul></ul></ul></ul></ul><ul><li>Sockeye is a 3D environment for comparative genomics . </li></ul><ul><ul><ul><ul><ul><li>Canada genome sciences centre </li></ul></ul></ul></ul></ul><ul><li>VCMap MapView uses interactive Java interface </li></ul><ul><ul><ul><ul><ul><li>Rat Genome Database </li></ul></ul></ul></ul></ul><ul><li>Jalview is a multiple alignment editor. </li></ul><ul><ul><ul><ul><ul><li>BBSRC UK </li></ul></ul></ul></ul></ul>
  18. 19. Java Data Management Tools <ul><li>OmniGene helps to exchange biological data through the web services model and J2EE technology </li></ul><ul><ul><ul><ul><ul><li>Panther Informatics </li></ul></ul></ul></ul></ul><ul><li>Genome Directory System (GDS) is a distributed search and retrieval system for genome databases </li></ul><ul><ul><ul><ul><ul><li>Indiana University </li></ul></ul></ul></ul></ul><ul><li>Citrina is a database management tool that automates the mirroring and processing of databases that are distributed via ftp servers </li></ul><ul><ul><ul><ul><ul><li>Indiana University </li></ul></ul></ul></ul></ul><ul><li>Haystack is designed to let individuals manage all information in ways that make the most sense to them. </li></ul><ul><ul><ul><ul><ul><li>IBM </li></ul></ul></ul></ul></ul><ul><li>LuceGene is a document/object search and retrieval system for Genome and Bioinformatics Databases </li></ul><ul><ul><ul><ul><ul><li>Indiana University </li></ul></ul></ul></ul></ul>
  19. 20. Java Gene Expression Tools <ul><li>GeneX is a gene expression database and integrated tool set </li></ul><ul><ul><ul><ul><ul><li>NCGR </li></ul></ul></ul></ul></ul><ul><li>TIGR TM4 Microarray Software Suite </li></ul><ul><li>Microarray Explorer (MAExplorer) - data-mining program </li></ul><ul><ul><ul><ul><ul><li>National Cancer Institute </li></ul></ul></ul></ul></ul><ul><li>Caryoscope is for viewing gene expression data in a whole-genome context </li></ul><ul><ul><ul><ul><ul><li>Stanford University </li></ul></ul></ul></ul></ul><ul><li>Java TreeView renders gene expression data into several interactive views. </li></ul><ul><ul><ul><ul><ul><li>Stanford University </li></ul></ul></ul></ul></ul><ul><li>J-Express Pro - analysis and visualization of microarray data. </li></ul><ul><ul><ul><ul><ul><li>molmine </li></ul></ul></ul></ul></ul>
  20. 21. Java Bioinformatics APIs/Libraries <ul><li>BioJava project APIs for processing biological data. </li></ul><ul><li>Jemboss is a java based interface to EMBOSS (The European Molecular Biology Open Software Suite) </li></ul><ul><li>Ensj – API to access ensembl databases </li></ul><ul><li>MartJ – API to access EnsEMBL's Mart database </li></ul><ul><li>Phylogenetic Analysis Library (PAL) - bioinformatics analysis of evolutionary development of genomes. </li></ul><ul><ul><ul><ul><ul><li>CEBL New Zealand </li></ul></ul></ul></ul></ul><ul><li>Knowledge Discovery Object Model (KDOM) is an API to represent and manage biological knowledge during application development </li></ul><ul><ul><ul><ul><ul><li>Genome Sciences Centre Canada </li></ul></ul></ul></ul></ul>
  21. 22. Other Java Tools <ul><li>JaMBW is Java based Molecular Biologist's Workbench </li></ul><ul><ul><ul><ul><ul><li>EMBL </li></ul></ul></ul></ul></ul><ul><li>DAG-Edit is an application to browse, query and edit GO </li></ul><ul><ul><ul><ul><ul><li>GO </li></ul></ul></ul></ul></ul><ul><li>ImageJ can display, edit, analyze, process, save and print images. </li></ul><ul><ul><ul><ul><ul><li>Research Service Branch NIH </li></ul></ul></ul></ul></ul><ul><li>Cytoscape is a tool for analyzing and visualizing biological network data </li></ul><ul><ul><ul><ul><ul><li>The Institute for Systems Biology (ISB) </li></ul></ul></ul></ul></ul><ul><li>PubSearch is a web based literature curation tool </li></ul><ul><ul><ul><ul><ul><li>The Arabidopsis Information Resource (TAIR) </li></ul></ul></ul></ul></ul><ul><li>PubFetch is a literature retrieval tool </li></ul><ul><ul><ul><ul><ul><li>BRC </li></ul></ul></ul></ul></ul>
  22. 23. Statistics November 12 2006 0 15 1.420.000 C++ AND Bioinformatics 14 1,220 2.040.000 Python AND Bioinformatics 82 146 PubMed 5,350 10,500 Google Scholar 1.510.000 1.660.000 Google Perl AND Bioinformatics Java AND Bioinformatics Query
  23. 24. Statistics November 13 2007 20 23 1.560.000 C++ AND Bioinformatics 25 1.860 1.640.000 Python AND Bioinformatics 102 180 PubMed 9.930 13,400 Google Scholar 1.710.000 1.920.000 Google Perl AND Bioinformatics Java AND Bioinformatics Query
  24. 25. Hello World! <ul><li>// </li></ul><ul><li>public class Hello { </li></ul><ul><li>public static void main(String[] args) { System.out.println(&quot;Hello, world!&quot;); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  25. 26. Hello World! <ul><li>import java.awt.*; </li></ul><ul><li>import java.awt.event.*; </li></ul><ul><li>import javax.swing.*; </li></ul><ul><li>public class HelloSwing extends JFrame </li></ul><ul><li>{ </li></ul><ul><li>public static void main (String[] args){ </li></ul><ul><li>JOptionPane.showMessageDialog(null, &quot;Hello World&quot;); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  26. 27. Syntax isn’t important for me <ul><li>But the JVM cares! </li></ul><ul><li>Casesensitivity </li></ul><ul><li>E.g System.out.println != system.out.println </li></ul>
  27. 28. Summary <ul><li>Java is increasingly being adopted by Bioinformatics community </li></ul><ul><li>Many former Perl based applications and APIs are currently being rewritten in Java (e.g. BioMOBY, Ensembl etc.) </li></ul><ul><li>With release of advanced Java APIs and improved Java Virtual Machine some of the drawbacks were eliminated (e.g. Regular Expression, Casting) </li></ul>
  28. 29. References <ul><li>Java for Bioinformatics and Java APIs for Bioinformatics </li></ul><ul><ul><ul><ul><li>by Stephen Montgomery at </li></ul></ul></ul></ul><ul><li>The Ensembl core software libraries. </li></ul><ul><ul><ul><ul><li>Stabenau A, McVicker G, Melsopp C, Proctor G, Clamp M, and Birney E in Genome Res. 2004 May;14(5):929-33 </li></ul></ul></ul></ul>