Molecular model aka lego editing environment architecture
This presentation is the property of its rightful owner.
Sponsored Links
1 / 20

Molecular Model (aka lego ) Editing Environment Architecture PowerPoint PPT Presentation


  • 86 Views
  • Uploaded on
  • Presentation posted in: General

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

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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Molecular model aka lego editing environment architecture

Molecular Model (aka lego) Editing Environment Architecture


Molecularmodelmanager

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


Create read update delete

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


Example crud operation

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


Persistence

Persistence

  • Phase 1:

    • Use OWL files in VCS

      • Location:

        • http://viewvc.geneontology.org/viewvc/GO-SVN/trunk/experimental/lego/server/

  • Phase 2:

    • RDF triplestore


Vcs based persistence

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


Triplestore next phase

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


Molecularmodelgenerator

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


Services layer

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


Service calls

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


Running services

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


Json payload

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


Client

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


Client demos

Client demos

  • Demos:

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

  • Source:

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


External services

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)


Integration with amigo 2

Integration with AmiGO 2

  • Reuse same client side framework for displaying graphs


Integration with protein2go

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


Todo open questions

TODO/Open Questions

  • Persist jsPlumb layout between sessions?

  • REST vs COMET vsWebSockets?

  • Get quick prototype out for curators vs finalize certain aspects of architecture


Availability

Availability

  • http://owltools.googlecode.com - server

    • (includes other components not required for lego)

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


  • Login