Download presentation
Presentation is loading. Please wait.
Published byGideon Bunton Modified over 10 years ago
1
Molecular Model (aka lego) Editing Environment Architecture
3
MolecularModelManager 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 http://owltools.googlecode.com/svn/trunk/docs/api/owltools/gaf/lego/MolecularModelManager.html
4
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
5
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 OWLOperationResponse addEnabledBy(String modelId, OWLIndividual i, OWLClassExpression enabler) http://owltools.googlecode.com/svn/trunk/docs/api/owltools/gaf/lego/MolecularModelManager.html
6
Persistence Phase 1: – Use OWL files in VCS Location: – http://viewvc.geneontology.org/viewvc/GO- SVN/trunk/experimental/lego/server/ http://viewvc.geneontology.org/viewvc/GO- SVN/trunk/experimental/lego/server/ Phase 2: – RDF triplestore
7
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
8
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
9
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 Aka a “seed LEGO diagram” Documentation: – High level: https://docs.google.com/document/d/1TV8Eb9sSvFY- weVZaIfzCxF1qbnmkUaiUhTm9Bs3gRE/edit#heading=h.r7ezra5s63khttps://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
10
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
11
Service Calls /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 … All calls return JSON Note: existing calls are not As ‘REST’y as this, but are Being refactored Simple wrapper to java methods such as addEnabledBy
12
Running services Checkout lego dir – http://viewvc.geneontology.org/viewvc/GO- SVN/trunk/experimental/lego/server/ http://viewvc.geneontology.org/viewvc/GO- SVN/trunk/experimental/lego/server/ cd go/experimental/lego/server./start-mm-server.sh Connect on http://localhost:3000http://localhost:3000
13
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
14
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
15
Client demos Demos: – http://go-genkisugi.rhcloud.com/http://go-genkisugi.rhcloud.com/ Source: – https://github.com/kltm/go-mmehttps://github.com/kltm/go-mme
16
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)
17
Integration with AmiGO 2 Reuse same client side framework for displaying graphs
18
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
19
TODO/Open Questions Persist jsPlumb layout between sessions? REST vs COMET vs WebSockets? Get quick prototype out for curators vs finalize certain aspects of architecture
20
Availability http://owltools.googlecode.com - server http://owltools.googlecode.com – (includes other components not required for lego) https://github.com/kltm/go-mme - clienthttps://github.com/kltm/go-mme
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.