Top Banner
Molecular Model (aka lego) Editing Environment Architecture
20

Molecular Model (aka lego) Editing Environment Architecture.

Dec 15, 2015

Download

Documents

Gideon Bunton
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Molecular Model (aka lego) Editing Environment Architecture.

Molecular Model (aka lego) Editing Environment Architecture

Page 2: Molecular Model (aka lego) Editing Environment Architecture.
Page 3: Molecular Model (aka lego) Editing Environment Architecture.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Client demos

• Demos:– http://go-genkisugi.rhcloud.com/

• Source:– https://github.com/kltm/go-mme

Page 16: Molecular Model (aka lego) Editing Environment Architecture.

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.

Integration with AmiGO 2

• Reuse same client side framework for displaying graphs

Page 18: Molecular Model (aka lego) Editing Environment Architecture.

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.

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.

Availability

• http://owltools.googlecode.com - server– (includes other components not required for lego)

• https://github.com/kltm/go-mme - client