molecular model (aka lego) editing environment architecture

20
Molecular Model (aka lego) Editing Environment Architecture

Upload: gideon-bunton

Post on 15-Dec-2015

217 views

Category:

Documents


0 download

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