1
BioDApps Distributed Bioinformatics Applications Bernwinkler T. 1 , Hiebl-Flach J. 1 , Katzenschlager J. 1 , K¨ oberl D. 1 , Lengauer D. 1 , Nagl L. 1 , Schubert S. 1 , Laimer J. 1, 2 , Lackner P. 2 1 Upper Austria University of Applied Sciences, Department of Bioinformatics Softwarepark 11, 4232 Hagenberg/Austria 2 University of Salzburg, Department of Molecular Biology Hellbrunnerstraße 34, 5020 Salzburg/Austria Introduction Providing applications platform independent and keeping the access to public services and data sources up to date are challenging tasks in software development in general and especially in bioinformatics. The migration of resources to new locations, new software versions or the lack of standardized data formats are only some of the day by day issues. As a result, at the first glance simple tasks can possibly grow to a complex and time consuming project. To overcome at least some of these limitations, platform and programming language independent web service protocols such as SOAP and REST were introduced during the last decade. Further communication protocols, like the widely used BioDAS[1] for annotations on genomic or protein sequences, were defined. Most of these protocols are designed for static data sources and hard to use for dynamic data or services. BioDApps, a free to use RESTful web service, provides a way to overcome most of the issues listed above. The service is based on open source libraries and widely used standards. With BioDApps services can be distributed platform independent and a central interface to public resources can be provided. Implementation BioDApps is implemented as RESTful web service. The REST protocol is used for the communication between clients and the service. Thus, client applications are not limited to a programming language. The results can be requested either as HTML, XML or JSON document.The web service consists of two main components: I The master module is based on the Python web- framework Bottle[2]. It acts as central interface to the client applications. Besides the organization of queries including an error handling, it provides information about the service adapters, regularly checks the availability of the provided resources and converts the results to the requested format. I The service adapters act as interface to the provided resources. Besides the access to the resources, the adapters are responsible for the conversion and valida- tion of the given parameters as well as the conversion of the results to an internal data structure, provided to the master. ORF- Finder Client Application BioDApps Web Service ... A d a p t e r A d a p t e r A d a p t e r A d a p t e r A d a p t e r M a s t e r Protocol iv iii i job results (JSON) destroy converted results get results request results while status = ongoing resource result job status finished/ongoing/fail check status get status request status job ID start/query resource call adapter request job list of resources (JSON) request list of resources :Resource e.g. Modeller :Service Adapter :BioDApps Master :Client Application A typical BioDApps use case includes four steps: (i) A list of available resources and the corresponding parameters are requested (optional). (ii) A job or query is started with a job request. The given parameters are validated by the service adapter and forwarded to the resource. (iii) As some services can be time consuming, the job status can be continuously requested. (iv) Finally, the results are provided as JSON document. Conclusion and Outlook BioDApps is a free to use RESTful web service. Its core components have no dependencies other than the Python Standard Library. Thus, BioDApps can be installed on most platforms. The service is designed to give a plat- form and programming language independent way to dis- tribute own software and to give a central interface to public resources. Using BioDApps, client applications are unaffected from changes in the resources. The current version, BioDApps provides several exam- ple adapters to interface services and software such as NCBI Blast, Clustal W2, and Modeller. In ongoing work the number of covered services will be extended. Future in-house developments will be distributed via BioDApps. Further, a peer-to-peer system for the interaction be- tween BioDApps installations will be introduced. The access to the BioDApps web service as well as the source of the final version will be provided for free to the scien- tific community. References [1] BioDAS homepage http://www.biodas.org [2] Bottle homepage http://www.bottlepy.org http://biwww.che.sbg.ac.at/biodapps

BioDApps Distributed Bioinformatics Applications · 2016. 5. 3. · BioDApps Distributed Bioinformatics Applications Bernwinkler T.1, Hiebl-Flach J.1, Katzenschlager J.1, Kob erl

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: BioDApps Distributed Bioinformatics Applications · 2016. 5. 3. · BioDApps Distributed Bioinformatics Applications Bernwinkler T.1, Hiebl-Flach J.1, Katzenschlager J.1, Kob erl

BioDAppsDistributed Bioinformatics Applications

Bernwinkler T.1, Hiebl-Flach J.1, Katzenschlager J.1, Koberl D.1,Lengauer D.1, Nagl L.1, Schubert S.1, Laimer J.1, 2, Lackner P.2

1 Upper Austria University of Applied Sciences, Department of BioinformaticsSoftwarepark 11, 4232 Hagenberg/Austria

2 University of Salzburg, Department of Molecular BiologyHellbrunnerstraße 34, 5020 Salzburg/Austria

Introduction

Providing applications platform independent and keeping the access to public services and data sources up to date are challenging tasks in softwaredevelopment in general and especially in bioinformatics. The migration of resources to new locations, new software versions or the lack of standardizeddata formats are only some of the day by day issues. As a result, at the first glance simple tasks can possibly grow to a complex and time consumingproject. To overcome at least some of these limitations, platform and programming language independent web service protocols such as SOAP andREST were introduced during the last decade. Further communication protocols, like the widely used BioDAS[1] for annotations on genomic or proteinsequences, were defined. Most of these protocols are designed for static data sources and hard to use for dynamic data or services.BioDApps, a free to use RESTful web service, provides a way to overcome most of the issues listed above. The service is based on open source librariesand widely used standards. With BioDApps services can be distributed platform independent and a central interface to public resources can be provided.

Implementation

BioDApps is implemented as RESTful web service. The RESTprotocol is used for the communication between clients andthe service. Thus, client applications are not limited to aprogramming language. The results can be requested eitheras HTML, XML or JSON document.The web service consistsof two main components:I The master module is based on the Python web-

framework Bottle[2]. It acts as central interface to theclient applications. Besides the organization of queriesincluding an error handling, it provides information aboutthe service adapters, regularly checks the availability ofthe provided resources and converts the results to therequested format.

I The service adapters act as interface to the providedresources. Besides the access to the resources, theadapters are responsible for the conversion and valida-tion of the given parameters as well as the conversion ofthe results to an internal data structure, provided to themaster.

ORF-Finder

ClientApplication

BioDApps Web Service

...

Ad

apter

Ad

apter

Ad

apter

Ad

apter

Ad

ap

ter

Ma

ste r

Protocol

i v

i i i

i i

i

job results (JSON)destroy

converted results

get resultsrequest results

while status = ongoing

resource result

job statusfinished/ongoing/fail

check statusget status

request status

job ID

start/query resourcecall adapter

request job

list of resources (JSON)

request list of resources

:Resourcee.g. Modeller

:Service Adapter

:BioDApps Master:Client Application

A typical BioDApps use case includes four steps: (i) A list of available resources and thecorresponding parameters are requested (optional). (ii) A job or query is started with a jobrequest. The given parameters are validated by the service adapter and forwarded to theresource. (iii) As some services can be time consuming, the job status can be continuouslyrequested. (iv) Finally, the results are provided as JSON document.

Conclusion and Outlook

BioDApps is a free to use RESTful web service. Its corecomponents have no dependencies other than the PythonStandard Library. Thus, BioDApps can be installed onmost platforms. The service is designed to give a plat-form and programming language independent way to dis-tribute own software and to give a central interface topublic resources. Using BioDApps, client applicationsare unaffected from changes in the resources.The current version, BioDApps provides several exam-ple adapters to interface services and software such asNCBI Blast, Clustal W2, and Modeller. In ongoing workthe number of covered services will be extended. Futurein-house developments will be distributed via BioDApps.Further, a peer-to-peer system for the interaction be-tween BioDApps installations will be introduced. Theaccess to the BioDApps web service as well as the sourceof the final version will be provided for free to the scien-tific community.

References

[1] BioDAS homepage http://www.biodas.org

[2] Bottle homepage http://www.bottlepy.org

http://biwww.che.sbg.ac.at/biodapps