JSBML

JSBML
Utvecklare JSBML-teamet
Initial release 1 februari 2011 ; för 12 år sedan ( 2011-02-01 )
Förvar
Skrivet i Java
Operativ system plattformsoberoende
Typ XML - parserbibliotek
Licens LGPL-licens v2.1
Hemsida sbml.org

JSBML (Java Systems Biology Markup Language) är ett Java (API) med öppen källkod för formatet SBML (Systems Biology Markup Language). Dess API strävar efter att uppnå en stark likhet med Java-bindningen för motsvarande bibliotek libSBML , men är helt implementerat i Java och är därför plattformsoberoende . JSBML tillhandahåller en utarbetad abstrakt typhierarki, vars datatyper implementerar eller utökar många gränssnitt och abstrakta klasser från standard Java-biblioteket. På detta sätt integreras JSBML smidigt i befintliga Java-projekt och tillhandahåller metoder för att läsa, skriva, utvärdera och manipulera innehållet i SBML-dokument.

Utveckling

I maj 2009 genomförde SBML- teamet en samhällsenkät för förfrågningar om potentiell ytterligare mjukvaruutveckling. Det visade sig att även om biblioteket libSBML tillhandahåller en genererad bindning för programmeringsspråket Java , gör dess interna C- kod det svårt att implementera plattformsoberoende eller Web Start- applikationer.

Runt den tiden hade flera grupper från flera institut redan implementerat små Java-versioner av libSBML , var och en var ett skräddarsytt bibliotek som täcker behoven för det specifika forskningsprojektet. För att undvika onödiga dubbelarbete och förena befintlig utveckling, lanserades det internationella samfundsprojektet JSBML i september 2009, främst av grupper från EBI , Caltech och ett team av studenter vid universitetet i Tübingen ledd av Andreas Dräger .

Eftersom JSBML har implementerats avsevärt senare än den första versionen av libSBML , kan den därför dra nytta av att specifikationerna för SBML finns på nivåerna 1-3. Därför har JSBML inte bara utvecklats genom att portera befintlig C -kod från libSBML- projektet till en ny Java . Istället använde utvecklarna detta som en chans att helt omforma klassen och API -strukturen. Det är därför JSBML ger en mycket rikare abstrakt typhierarki jämfört med libSBML . Dessutom gjorde utvecklingen av JSBML det möjligt att fatta designbeslut som inte är möjliga i libSBML eftersom ingen bakåtkompatibilitet behövde övervägas vid denna tidpunkt.

Den första stabila versionen 0.8 av JSBML gjordes allmänt tillgänglig för nedladdning i februari 2011. Sedan dess har stöd för flera SBML-tilläggspaket implementerats och kommer att inkluderas i releasen av JSBML 1.0.

Mål

Utvecklingen av JSBML drivs av tre mål:

  1. Tillhandahåll ett rent Java API utan något inbyggt beroende.
  2. Uppnå högsta möjliga kompatibilitet med libSBML men får samtidigt biblioteket att bete sig som andra inbyggda Java- bibliotek, dvs som förväntat av erfarna Java-utvecklare.
  3. Stöd för alla nivå/versionskombinationer och tilläggspaket av SBML

Användande

Följande exempel förutsätter att en JAR- fil av JSBML har inkluderats i klasssökvägen och att en lokal installation av en Java Virtual Machine är tillgänglig på plattformen där koden exekveras.

Följande kodningsexempel visar hur en SBML- fil kan analyseras och dess innehåll kan visas i form av ett träd i ett fönster. Resultatet kan t.ex. se ut som bilden till höger. Det kan ses att själva analysen av SBML görs på en enda rad, genom att anropa en statisk metod i klassen SBMLReader. Skapandet av trädet för displayen är också trivialt, eftersom hela datastrukturen i JSBML är organiserad som ett träd .

 
 


     

  
     
    
      
     
     
    
  
   
         
     0
  
 importera  javax.swing.*  ;  importera  org.sbml.jsbml.*  ;  /** Visar innehållet i en SBML-fil i en {@link JTree} */  public  class  JSBMLvisualizer  extends  JFrame  {  /** @param document sbml-rotnoden för en SBML-fil */  public  JSBMLvisualizer  (  SBMLDocument  document  )  {  super  (  dokument  .  getModel  ().  getId  ());  getContentPane  ().  add  (  nytt  JScrollPane  (  nytt  JTree  (  dokument  )));  pack  ();  // gör ramen kompakt  setLocationRelativeTo  (  null  );  // Placera den i mitten av skärmen  setVisible  (  true  );  }  /** @param args Förväntar en giltig sökväg till en SBML-fil. */   public  static  void  main  (  String  []  args  )  throws  Exception  {  new  JSBMLvisualizer  (  SBMLeader  .  read  (  args  [  ]  ));  }  } 
Exempel på utdata vid läsning av en SBML-fil med koden till vänster från SBML Test Suite med JSBML (på Mac OS X )