1 / 20

Molecular Model (aka lego ) Editing Environment Architecture

Molecular Model (aka lego ) Editing Environment Architecture. MolecularModelManager. http://owltools.googlecode.com/svn/trunk/docs/api/owltools/gaf/lego/MolecularModelManager.html. CRUD – create/read/update/delete : DONE ModelGenerator – seeding models : TESTING REQUIRED Visualization

viveca
Download Presentation

Molecular Model (aka lego ) Editing Environment Architecture

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Molecular Model (aka lego) Editing Environment Architecture

  2. MolecularModelManager http://owltools.googlecode.com/svn/trunk/docs/api/owltools/gaf/lego/MolecularModelManager.html • CRUD – create/read/update/delete : DONE • ModelGenerator – seeding models : TESTING REQUIRED • Visualization • LegoViz: Lego-Protégégraphviz • Bbop-graph: ultimately rendered on client • CORE VIZ. FUNCTIONALITY TO BE MOVED TO CLIENT

  3. Create/Read/Update/Delete • CRUD operations delegate to OWLAPI • Reasoner operates on each operation • Consistency • Filling in missing data • Manager stores model in memory as OWLAPI facts • Can be exported to any RDF/OWL concrete form or store

  4. Example CRUD operation /** * Adds a ClassAssertion to the model, connecting an activity instance to the class of molecule * that enables the activity. * * Example: FGFR receptor activity enabledBy some UniProtKB:FGF * * The reasoner may detect an inconsistency under different scenarios: * - i may be an instance of a class that is disjoint with a bfo process * - the enabled may be an instance of a class that is disjoint with molecular entity * * Under these circumstances, no error is thrown, but the response code indicates that no operation * was performed on the kb, and the response object indicates the operation caused an inconsistency * * @param modelId * @param i * @param enabler * @return response info */ public OWLOperationResponseaddEnabledBy(String modelId, OWLIndividuali, OWLClassExpressionenabler) http://owltools.googlecode.com/svn/trunk/docs/api/owltools/gaf/lego/MolecularModelManager.html

  5. Persistence • Phase 1: • Use OWL files in VCS • Location: • http://viewvc.geneontology.org/viewvc/GO-SVN/trunk/experimental/lego/server/ • Phase 2: • RDF triplestore

  6. VCS based persistence Use OWLAPI Renderer Module to Export to rdf/owl Use SVN as backing store (same as TG) People can use Protégé on the files If they really want to

  7. Triplestore (next phase) • A dedicated backend may be more robust • No need to partition data into files • But: VCS should be sufficient for rollout • Triplestore has advantages over RDBMS • No additional modeling or complex ORM architecture required • Underlying model is already triples • Part of overall GO (and EBI) software strategy • Added bonuses • SPARQL queries • Status: PLANNING

  8. MolecularModelGenerator • Given: • A biological process P • An OWL axiomatization of P • E.g. has_parts, starts_withs, … • Can be partial but the more complete the better • A set of annotations for a species S • All genes involved in P and their MF annotations • Generate • An instance model of <P,S> • Aka a “seed LEGO diagram” • Documentation: • High level: https://docs.google.com/document/d/1TV8Eb9sSvFY-weVZaIfzCxF1qbnmkUaiUhTm9Bs3gRE/edit#heading=h.r7ezra5s63k • Javadoc: http://owltools.googlecode.com/svn/trunk/docs/api/index.html?owltools/util/MinimalModelGenerator.html

  9. Services Layer • Java services layer • Current implementation is simple servlets • Same as rest of owltools – e.g. taxon server, owlsim server • STATUS: IN PROGRESS • Refactor: • REST / JAX-RS • Comet/WebSockets? • STATUS: PLANNING

  10. Service Calls Simple wrapper to java methods such as addEnabledBy /mm/generate/model/:proc/:species  modelId /mm/createActivity/  instanceId /mm/createProcess/  instanceId /mm/{assert,delete}/modelId/ /type/:id/:cls /fact/:id/:prop/:filler /location/:id/:cls[/:cls…] /enabledBy/:id/:molCls[/:cls…]  response /mm/graph/:modelId bbopGraphObj … Note: existing calls are not As ‘REST’y as this, but are Being refactored All calls return JSON

  11. Running services • Checkout legodir • http://viewvc.geneontology.org/viewvc/GO-SVN/trunk/experimental/lego/server/ cd go/experimental/lego/server ./start-mm-server.sh Connect on http://localhost:3000

  12. JSON payload • Payload is RDF/OWL transmitted via JSON-LD • TODO: examples here • See: lego-json.md in go/experimental/lego/docs on svn • TBD: RDF blank nodes vs OWL SomeValuesFrom restrictions • STATUS: IN PROGRESS

  13. Client • Relatively stateless and dumb? • All CRUD operations immediately synced with server • Uses jsPlumb for manipulation • jQuery for tables etc • Full capabilities TBD • STATUS: IN PROGRESS

  14. Client demos • Demos: • http://go-genkisugi.rhcloud.com/ • Source: • https://github.com/kltm/go-mme

  15. External Services • Golr • Autocomplete. STATUS: DONE • Future: Retrieval of existing annotations • ?TermGenie • Use case: curator adds a new MF using TG, needs to create an instance immediately • For compositional terms, MME will allow any class expression, so naming the class not strictly required • Persona • Authentication. STATUS: PLANNING • Future: • Pathway database APIs (to seed models)

  16. Integration with AmiGO 2 • Reuse same client side framework for displaying graphs

  17. Integration with protein2go • Phase 1: • Loosely coupled • P2go for classic GO annotation, MME for full expressivity • Phase 2: • Larger CAF framework • Investigate tighter coupling as driven by curator requirements • E.g. seamlessly switch between two

  18. TODO/Open Questions • Persist jsPlumb layout between sessions? • REST vs COMET vsWebSockets? • Get quick prototype out for curators vs finalize certain aspects of architecture

  19. Availability • http://owltools.googlecode.com - server • (includes other components not required for lego) • https://github.com/kltm/go-mme - client

More Related