Biomoby services
This presentation is the property of its rightful owner.
Sponsored Links
1 / 55

BioMOBY Services PowerPoint PPT Presentation


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

BioMOBY Services. Enrique de Andrés. Outline. The problem The BioMOBY idea BioMOBY ontologies How BioMOBY works Message exchanges BioMOBY elements. The problem…. Scientific work requires: Data resources: Genomic sequences, protein sets, expression data, … Computational resource:

Download Presentation

BioMOBY Services

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


Biomoby services

BioMOBY Services

Enrique de Andrés


Outline

Outline

  • The problem

  • The BioMOBY idea

  • BioMOBY ontologies

  • How BioMOBY works

  • Message exchanges

  • BioMOBY elements

BioMOBY Services


The problem

The problem…

  • Scientific work requires:

    • Data resources:

      • Genomic sequences, protein sets, expression data, …

    • Computational resource:

      • Similarity searches, alignments, domain prediction, functional classification, clustering, …

  • Often, these resources are existent and available, but:

    • Hard to find.

    • Distributed all over the world.

    • No common format.

BioMOBY Services


Result painful research

Result… painful research!

BioMOBY Services


Solution

Solution…

  • Web Services:

    • Provides data or computational resources over the WWW.

    • Can be accessed automatically:

      • application-centric web

  • Additional advantages:

    • Works for every one who has internet access

      • No firewall obstacles, …

    • Independent of programming languages.

    • Usage of broadly accepted protocols.

BioMOBY Services


Outline1

Outline

  • The problem

  • The BioMOBY idea

  • BioMOBY ontologies

  • How BioMOBY works

  • Message exchanges

  • BioMOBY elements

BioMOBY Services


Biomoby

BioMOBY

  • BioMOBY was initiated in 2001 as collaboration of some model organism database providers.

  • System for interoperability between biological data hosts and analytical services.

    • Simple, open source platform for discovery, integration, representation and retrieval of biological data.

  • Two branches:

    • MOBY-S: follows the Web Service paradigm.

    • S-MOBY: using semantic web technology (not covered here).

BioMOBY Services


The moby s plan

The MOBY-S plan

  • Create an ontology of bioinformatics data-types.

  • Define a serialization of this ontology (data syntax).

  • Create an open API over this ontology (let independent service providers build data-types).

  • Define Web Service inputs and outputs using that ontology

  • Register services in an ontology-aware registry.

  • BioMOBY advantages:

    • Machines can find an appropriate service.

    • Machines can execute that service unattended.

    • Ontology is community-extensible

BioMOBY Services


Moby s vs general ws

MOBY-S vs. General WS

  • The registry is the MOBY-Central.

  • Usage of ontologies.

  • BioMOBY services operate on MOBY objects.

  • Usage of namespaces.

  • Own messaging structure for registration, detection and invocation of services

BioMOBY Services


Outline2

Outline

  • The problem

  • The BioMOBY idea

  • BioMOBY ontologies

    • Object ontology

    • Service ontology

  • How BioMOBY works

  • Message exchanges

  • BioMOBY elements

BioMOBY Services


Biomoby ontology

BioMOBY ontology

  • Ontology:

    • A formally defined system of things and relations between these things for representation of knowledge.

    • Usually, an ontology builds a hierarchy of objects to describe relations in a certain domain.

  • BioMOBY ontology:

    • Usage of namespaces.

    • Object (data) ontology:

      • Semantic/syntactic data-types.

    • Service ontology.

BioMOBY Services


Object ontology

Object ontology

  • Any identifiable piece of data is an “entity”.

  • Identifiers for these entities fall under “Namespaces”

    • NCBI has gi numbers (gi namespace)

    • GO terms have accession numbers (GO namespace)

  • Namespaces indicate data’s semantic type.

    • GO:0003476 a Gene Ontology Term

    • gi|163483 a GenBank record

  • Namespace + ID precisely specifies a data “entity”

  • Identifiers are not opaque – they are semantically rich

BioMOBY Services


Object ontology1

node

Edge

node

Object ontology

  • Data types defined in an open, shared GO-like ontology:

    • GO used as a model because of its familiarity in the community.

    • Nodes define data classes

    • Edges define the relationships between classes.

  • Edges define one of three relationships:

    • ISA:

      • Inheritance relationship.

      • All properties of the parent are present in the child.

    • HASA:

      • Container relationship of exactly 1.

    • HAS:

      • Container relationship with 1 or more

BioMOBY Services


The simplest moby data type

The simplest MOBY data-type

<Object namespace=‘NCBI_gi’ id=‘111076’/>

The combination of a namespace and an identifier within that namespace uniquely identify a data entity, not its location(s), nor its representation

Object

BioMOBY Services


Primitive data types

Primitive Data-types

ISA

DateTime

ISA

Float

ISA

Integer

<Integer namespace=‘’ id=‘’>38</Integer>

Object

ISA

String

BioMOBY Services


Derived data types

Derived data-types

ISA

Integer

HASA

ISA

Object

String

ISA

Virtual

Sequence

<VirtualSequence namespace=‘NCBI_gi’ id=‘111076’>

<Integer namespace=‘’ id=‘’ articleName=“length”>38</Integer>

</VirtualSequence >

BioMOBY Services


Derived data types1

Derived data-types

ISA

Integer

HASA

HASA

ISA

Object

String

ISA

ISA

Virtual

Sequence

Generic

Sequence

<GenericSequence namespace=‘NCBI_gi’ id=‘111076’>

<Integer namespace=‘’ id=‘’ articleName=“length”>38</Integer>

<String namespace=‘’ id=‘’ articleName=“SequenceString”>

ATGATGATAGATAGAGGGCCCGGCGCGCGCGCGCGC

</String>

</ GenericSequence >

BioMOBY Services


Derived data types2

Derived data-types

ISA

Integer

HASA

HASA

ISA

Object

String

ISA

ISA

ISA

Virtual

Sequence

Generic

Sequence

DNA

Sequence

<DNASequence namespace=‘NCBI_gi’ id=‘111076’>

<Integer namespace=‘’ id=‘’ articleName=“length”>38</Integer>

<String namespace=‘’ id=‘’ articleName=“SequenceString”>

ATGATGATAGATAGAGGGCCCGGCGCGCGCGCGCGC

</String>

</ DNASequence >

BioMOBY Services


Legacy file formats

Legacy file formats

  • Containing “String” allow us to define ontological classes that represent legacy data-types.

  • <NCBI_Blast_Report namespace=‘NCBI_gi’ id=‘115325’>

  • <String namespace=‘’ id=‘’ articleName=‘content’>

    • TBLASTN 2.0.4 [Feb-24-1998]

    • Reference: Altschul, Stephen F., Thomas L. Madden, Alejandro A.

    • Sch&auml;ffer, Jinghui Zhang, Zheng Zhang, Webb Miller, and David J. Lipman

    • (1997), "Gapped BLAST and PSI-BLAST: a new generation of protein database search

    • programs", Nucleic Acids Res. 25:3389-3402.

    • Query= gi|1401126

    • (504 letters)

    • Database: Non-redundant GenBank+EMBL+DDBJ+PDB sequences

    • 336,723 sequences; 677,679,054 total letters

    • Searchingdone

    • Score E

    • Sequences producing significant alignments: (bits) Value

    • gb|U49928|HSU49928 Homo sapiens TAK1 binding protein (TAB1) mRNA... 1009 0.0

    • emb|Z36985|PTPP2CMR P.tetraurelia mRNA for protein phosphatase t... 58 4e-07

  • </String>

  • </NCBI_Blast_Report>

  • BioMOBY Services


    Binaries pictures movies

    Binaries – pictures, movies, …

    • We base64 encode binaries, and then define a hierarchy of data classes that Contain String

    • base64_encoded_jpeg ISA text/base64 ISA text/plain HASA String

    • <base64_encoded_jpeg namespace=‘TAIR_image’ id=‘3343532’>

    • <String namespace=‘’ id=‘’ articleName=‘content’>

      • MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJQDCC

      • Av4wggJnoAMCAQICAwhH9jANBgkqhkiG9w0BAQQFADCBkjELMAkGA1UEBhMCWkExFTATBgNV

      • MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJQDCC

      • Av4wggJnoAMCAQICAwhH9jANBgkqhkiG9w0BAQQFADCBkjELMAkGA1UEBhMCWkExFTATBgNV

      • BAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMQ8wDQYDVQQKEwZUaGF3dGUx

      • HTAbBgNVBAsTFENlcnRpZmljYXRlIFNlcnZpY2VzMSgwJgYDVQQDEx9QZXJzb25hbCBGcmVl

      • bWFpbCBSU0EgMjAwMC44LjMwMB4XDTAyMDkxNTIxMDkwMVoXDTAzMDkxNTIxMDkwMVowQjEf

      • MB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEfMB0GCSqGSIb3DQEJARYQamprM0Bt

    • </String>

  • </base64_encoded_jpeg>

  • BioMOBY Services


    Extending legacy data types

    Extending legacy data-types

    • With legacy data-types defined, we can extend them as we see fit

      • annotated_jpeg ISA base64_encoded_jpeg

      • annotated_jpeg HASA 2D_Coordinate_set

      • annotated_jpeg HASA Description

    • <annotated_jpeg namespace=‘TAIR_Image’ id=‘3343532’>

      • <2D_Coordinate_set namespace=‘’ id=‘’ articleName=“pixelCoordinates”>

        • <Integer namespace=‘’ id=‘’ articleName=“x_coordinate”>3554</Integer>

        • <Integer namespace=‘’ id=‘’ articleName=“y_coordinate”>663</Integer>

      • </2D_Coordinate_set>

      • <String namespace=‘’ id=‘’ articleName=“Description”>

        • This is the phenotype of a ufo-1 mutant under long daylength, 16’C

      • </String>

      • <String namespace=‘’ id=‘’ articleName=“content”>

        • MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJQDCC

        • Av4wggJnoAMCAQICAwhH9jANBgkqhkiG9w0BAQQFADCBkjELMAkGA1UEBhMCWkExFTATBgNV

      • </String>

    • </annotated_jpeg>

    BioMOBY Services


    Additional information

    Additional information

    • Information Blocks provides the ability of including additional information into the objects

      • Cross Reference Information Blocks (CRIB)

      • Provision Information Blocks (PIB)

    • <annotated_jpeg namespace=‘TAIR_Image’ id=‘3343532’>

      • <CrossReference>

        • <Object namespace=“TAIR_Allele” id=“ufo-1”/>

      • </CrossReference>

      • <2D_Coordinate_set namespace=‘’ id=‘’ articleName=“pixelCoordinates”>

        • <Integer namespace=‘’ id=‘’ articleName=“x_coordinate”>3554</Integer>

        • <Integer namespace=‘’ id=‘’ articleName=“y_coordinate”>663</Integer>

      • </2D_Coordinate_set>

      • <String namespace=‘’ id=‘’ articleName=“Description”>

        • This is the phenotype of a ufo-1 mutant under long daylength, 16’C

      • </String>

      • <String namespace=‘’ id=‘’ articleName=“content”>

        • MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIJQDCC

        • Av4wggJnoAMCAQICAwhH9jANBgkqhkiG9w0BAQQFADCBkjELMAkGA1UEBhMCWkExFTATBgNV

      • </String>

    • </annotated_jpeg>

    BioMOBY Services


    Cross reference information blocks crib

    Cross Reference Information Blocks (CRIB)

    • <CrossReference>

      • ... one or more cross-references...

    • </CrossReference>

    • Content of the CRIB may include only two types of element:

      • A base MOBY Object ('Object' Class)

        • cross-referenced piece of data

      • An Xref type Cross-Reference object

        • service which could be executed in order to interpret the meaning of the piece of data

    <Object namespace=‘’ id=‘’/>

    • <Xref namespace='' id='‘

    • authURI='' serviceName='‘

    • evidenceCode='' xrefType=''>

      • ... Description ...

    • </Xref>

    BioMOBY Services


    Cross reference information blocks crib1

    Cross Reference Information Blocks (CRIB)

    • Namespace and id: fulfil the same role as in the Object style cross-reference.

    • authURI and serviceName: act as a unique identifier to a particular MOBY Service that the current service provider suggests you execute using this cross-reference (namespace/id) in order to correctly interpret its meaning.

    • xrefType:

      • should get its value from the Cross-Reference-Type Ontology which defines a variety of semantic relationships that may exist between cross-references and the Objects that contain them. This ontology doesn't exist yet.

      • now, xrefType’s are free form strings.

    • evidenceCode: indicates the 'quality' of the evidence that was used to make the cross-reference assertion. It is a term from the GO evidence codes list:

      • IC: Inferred by Curator

      • IDA: Inferred from Direct Assay

    BioMOBY Services


    Cross reference information blocks crib2

    Cross Reference Information Blocks (CRIB)

    • <moby:CrossReference>

      • <moby:Object moby:namespace="PMID" moby:id="12511062"/>

      • <moby:Object moby:namespace="PMID" moby:id="12075666"/>

      • <moby:Xref moby:namespace="EMBL“

      • moby:id="X112345“

      • authURI="www.illuminae.com“

      • serviceName="getEMBLRecord"

      • evidenceCode="IEA“

      • xrefType="transform"/>

    • </moby:CrossReference>

    BioMOBY Services


    Provision information blocks pib

    Provision Information Blocks (PIB)

    • Contains metadata concerning the service that was invoked:

      • database version, software version, execution time

      • additional parameters used to invoke the service, ...

    • In the current MOBY API, the content of these elements is only loosely defined, and is meant primarily to be human-readable.

    • <ProvisionInformation>

      • ... one or more of the provision elements (below) ...

    • </ProvisionInformation>

    <serviceSoftware software_name="" software_version="" software_comment=""/>

    <serviceDatabase database_name="" database_version="" database_comment=""/>

    <serviceComment>comment here</serviceComment>

    BioMOBY Services


    Service ontology

    Service ontology

    • Simple ISA hierarchy.

    • Primitive types include, but it can be modified:

      • Analysis

      • Parsing

      • Registration

      • Retrieval

      • Resolution

      • Conversion

      • Rendering

    BioMOBY Services


    Service ontology1

    Service ontology

    Parse_NCBI_Blast

    Parsing

    Service

    WU_Blast

    Analysis

    Alignment

    Blast

    NCBI_Blast

    BioMOBY Services


    Outline3

    Outline

    • The problem

    • The BioMOBY idea

    • BioMOBY ontologies

    • How BioMOBY works

    • Message exchanges

    • BioMOBY elements

    BioMOBY Services


    How biomoby works

    3) Service discovery

    2) Service publication

    4) Service request

    5) Service response

    How BioMOBY works

    Technologically, BioMOBY services are general Web Services

    1) Service development

    BioMOBY Services


    How biomoby works1

    How BioMOBY works

    • BioMOBY defines a new layer on the protocol stack in order to work with its ontology.

    • BioMOBY has its own messaging structure for registration, detection and invocation of services

    BioMOBY Services


    Outline4

    Outline

    • The problem

    • The BioMOBY idea

    • BioMOBY ontologies

    • How BioMOBY works

    • Message exchanges

    • BioMOBY elements

    BioMOBY Services


    Client provider interaction

    BioMOBY service request 0

    BioMOBY service request N

    BioMOBY service request 1

    Primary articles (simples / collections)

    Primary articles (simples / collections)

    Primary articles (simples / collections)

    Primary articles (simples / collections)

    Primary articles (simples / collections)

    Primary articles (simples / collections)

    Secondary articles

    Secondary articles

    Secondary articles

    Biological Data

    Service Description

    1 input parameter containing the full XML BioMOBY input

    1 output parameter containing the full XML BioMOBY output

    XML Message

    Moby

    Network

    WSDL

    SOAP

    HTTP

    TCP / IP

    Client-Provider interaction

    BioMOBY Services


    Client provider messages

    Client → Provider messages

    • <?xml version="1.0" encoding="UTF-8"?>

    • <MOBY xmlns="http://www.biomoby.org/moby">

      • <mobyContent>

        • <mobyData queryID=‘0'>

          • <!– Primary/Secondary articles -->

        • </mobyData>

        • <mobyData queryID=“1">

          • <!– Primary/Secondary articles -->

        • </mobyData>

        • <mobyData queryID=“N">

          • <!– Primary/Secondary articles -->

        • </mobyData>

      • </mobyContent>

    • </MOBY>

    BioMOBY service request 0

    SEVERAL SERVICE REQUESTS INTO ONE INVOCATION

    BioMOBY service request 1

    BioMOBY service request N

    BioMOBY Services


    Provider client messages

    Provider → Client messages

    • <?xml version="1.0" encoding="UTF-8"?>

    • <MOBY xmlns="http://www.biomoby.org/moby">

      • <mobyContent>

        • <mobyData queryID=‘0'>

          • <!– Primary articles -->

        • </mobyData>

        • <mobyData queryID=“1">

          • <!– Primary articles -->

        • </mobyData>

        • <mobyData queryID=“N">

          • <!– Primary articles -->

        • </mobyData>

      • </mobyContent>

    • </MOBY>

    BioMOBY service response 0

    SEVERAL SERVICE RESPONSES INTO ONE INVOCATION RESPONSE

    BioMOBY service response 1

    BioMOBY service response N

    BioMOBY Services


    Elemental requests responses

    Elemental requests/responses

    • <mobyData queryID=‘0'>

      • <Simple articleName=“in_or_out_data_name_0”>

        • <!– object from the ontology -->

      • </Simple>

      • <Collection articleName=“in_or_out_data_name_1”>

        • <Simple>

          • <!– object from the ontology -->

        • </Simple>

      • </Collection>

      • <Parameter articleName=“in_param_name_0”>

        • <Value>param_value</Value>

      • </Parameter>

    • </mobyData>

    BioMOBY Services


    Global service information

    Global service information

    • Global service information block: serviceNotes

    • <?xml version="1.0" encoding="UTF-8"?>

    • <MOBY xmlns="http://www.biomoby.org/moby">

      • <mobyContent>

        • <serviceNotes>

          • <Notes>Free text Service Notes</Notes>

        • <serviceNotes>

      • </mobyContent>

        • </MOBY>

    BioMOBY Services


    Error handling

    Error handling

    • Extension of the global service information block (serviceNotes)

    (optional) refers to the queryID of the offending input mobyData

    error: fatal error in the service

    warning: service detects an error or potential problem but continues

    information: non erroneous informative message

    (optional) refers to the article of the offending input simple or collection

    • <serviceNotes>

      • <mobyException severity=“” refQueryID=“” refElement=“”>

        • <exceptionCode>code</exceptionCode>

        • <exceptionMessage>message</exceptionMessage>

      • </mobyException>

      • <Notes>Free text Service Notes</Notes>

    • </serviceNotes>

    BioMOBY Services


    Error handling example response

    Error handling: example response

    • <?xml version="1.0" encoding="UTF-8"?>

    • <MOBY xmlns="http://www.biomoby.org/moby">

    • <mobyContent>

      • <serviceNotes>

        • <mobyException refElement="“ refQueryID="1“ severity ="error">

          • <exceptionCode>600</exceptionCode>

          • <exceptionMessage>Unable to execute the service</exceptionMessage>

        • </mobyException>

        • <Notes>Free text Service Notes</Notes>

      • </serviceNotes>

      • <mobyData queryID="1“ />

    • </mobyContent>

    • </MOBY>

    BioMOBY Services


    Outline5

    Outline

    • The problem

    • The BioMOBY idea

    • BioMOBY ontologies

    • How BioMOBY works

    • Message exchanges

    • BioMOBY elements

      • MOBY-Central

      • Client side

      • Server side

    BioMOBY Services


    Biomoby elements

    BioMOBY Elements

    BioMOBY Services


    The registry moby central

    The Registry: Moby Central

    • Moby project provides Moby Central as a Perl server

    • It is a directory of services, datatypes and how to locate them

    Worldwide Distribution of MOBY Services

    BioMOBY Services


    Client side

    Client Side

    • There are different kind of clients

    • Some of them allow the creation of workflows

    Programmatic

    libraries:

    BioMOBY Services


    Client side mowserv

    Client Side: MOWServ

    • Web browser based client

    • Discovery of services based on data type ontology or on service type ontology

    • It allows to connect easily service outputs to service inputs

    • Interface helps to the Moby object construction

    BioMOBY Services


    Client side mowserv1

    Client Side: MOWServ

    Data types and service ontologies

    BioMOBY Services


    Client side mowserv2

    Client Side: MOWServ

    6) Check results

    5) Check execution status

    1) Ontology browsing & service selection

    2) Input submission

    3) Selection output name

    4) Service submission

    BioMOBY Services


    Client side mowserv3

    Client Side: MOWServ

    Integrated HTML visualizer

    Raw XML visualizer

    Download MOBY object

    List of available services for this datatype object

    BioMOBY Services


    Client side taverna

    Client Side: Taverna

    • Java based graphical integrated workbench

    • It allows the construction of complex distributed workflows

    • It can handle different kind of services (Moby and others)

    BioMOBY Services


    Client side taverna1

    Client Side: Taverna

    Processors = Webservices

    Inputs

    Outputs

    BioMOBY Services


    Client side dashboard

    Client Side: Dashboard

    1) Select client execution tab

    2) Select service to execute

    4) Execute service

    3) Fill up input

    5) Check output

    BioMOBY Services


    Client comparison

    Client comparison

    BioMOBY Services


    Server side

    Server Side

    • Moby provides libraries for easier service development in different platforms & languages (Perl & Java)

    • These libraries provide an abstraction of the underlayer protocols. The developer does not need to handle internet connections or SOAP messages and he can concentrate on the biological problem

    BioMOBY Services


    Server side steps for developing moby services

    Server Side:Steps for Developing MOBY services

    • Design the MOBY Objects for the inputs/outputs of your service.

    • Register them if they don’t exist.

    • Choose the MOBY Service Type for your service.

    • Register it if it doesn’t exist.

    • Choose the MOBY Namespaces that will use your service.

    • Register them if they don’t exist.

    • Construct your MOBY Service.

    • Register your MOBY Service.

    • Test your MOBY Service as a client (discover and execute it).

    BioMOBY Services


    References

    References


    References1

    References

    • BioMOBY homepage:

      • http://www.biomoby.org/

      • All the tools and libraries downloadable via CVS

    • Tutorial on INB Technologies

      (Msc on Bioinformatics for Health Sciences – Universitat Pompeu Fabra)

      • http://genome.imim.es/courses/INB2006/index.html

    • PlaNet Workshop:

      • http://mips.gsf.de/projects/plants/PlaNetPortal/workshop/index.html

    • Taverna:

      • http://taverna.sourceforge.net/

    • MOWServ:

      • http://www.inab.org/MOWServ/

    • Dashboard (as part of jMoby):

      • http://biomoby.open-bio.org/CVS_CONTENT/moby-live/Java/docs/

    BioMOBY Services


  • Login