Biomoby services
Download
1 / 55

BioMOBY Services - PowerPoint PPT Presentation


  • 123 Views
  • Uploaded on

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:

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' BioMOBY Services' - afram


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



    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


    ad