molecular model (aka lego) editing environment architecture
TRANSCRIPT
![Page 1: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/1.jpg)
Molecular Model (aka lego) Editing Environment Architecture
![Page 2: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/2.jpg)
![Page 3: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/3.jpg)
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
![Page 4: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/4.jpg)
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
![Page 5: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/5.jpg)
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
![Page 6: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/6.jpg)
Persistence
• Phase 1:– Use OWL files in VCS• Location:
– http://viewvc.geneontology.org/viewvc/GO-SVN/trunk/experimental/lego/server/
• Phase 2:– RDF triplestore
![Page 7: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/7.jpg)
VCS based persistence
Use OWLAPIRendererModule toExport to rdf/owl
Use SVN as backing store(same as TG)
People can use Protégé on the filesIf they really want to
![Page 8: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/8.jpg)
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
![Page 9: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/9.jpg)
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
![Page 10: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/10.jpg)
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
![Page 11: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/11.jpg)
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 JSONNote: existing calls are notAs ‘REST’y as this, but areBeing refactored
Simple wrapper to java methods such as addEnabledBy
![Page 12: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/12.jpg)
Running services
• Checkout lego dir– 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
![Page 13: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/13.jpg)
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
![Page 14: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/14.jpg)
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
![Page 15: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/15.jpg)
Client demos
• Demos:– http://go-genkisugi.rhcloud.com/
• Source:– https://github.com/kltm/go-mme
![Page 16: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/16.jpg)
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)
![Page 17: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/17.jpg)
Integration with AmiGO 2
• Reuse same client side framework for displaying graphs
![Page 18: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/18.jpg)
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
![Page 19: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/19.jpg)
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
![Page 20: Molecular Model (aka lego) Editing Environment Architecture](https://reader035.vdocuments.mx/reader035/viewer/2022062515/56649c9b5503460f94958bbc/html5/thumbnails/20.jpg)
Availability
• http://owltools.googlecode.com - server– (includes other components not required for lego)
• https://github.com/kltm/go-mme - client