integrate jbrowse rest api framework with adama federation architecture

13
araport.org @araport Integrate JBrowse REST API with ADAMA Vivek Krishnakumar 12/03/2015

Upload: vivek-krishnakumar

Post on 14-Jan-2017

276 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Integrate JBrowse REST API Framework with Adama Federation Architecture

araport.org@araport

Integrate JBrowse REST API with ADAMAVivek Krishnakumar

12/03/2015

Page 2: Integrate JBrowse REST API Framework with Adama Federation Architecture

araport.org@araport

Outline• JBrowse REST API spec• ADAMA endpoints• Mapping JBrowse to ADAMA endpoints• Extending JBrowse REST feature store• Handling Auth in JBrowse 1.x• Use Case– Integrate Chromatin States data into JBrowse via

ADAMA• Summary• Challenges

Page 3: Integrate JBrowse REST API Framework with Adama Federation Architecture

araport.org@araport

JBrowse REST API spec• Javascript based portable genome browser tool

developed by GMOD community• Ships with REST feature and names store adapter• REST feature store requires access to following

endpoints via HTTP GET:– (base)/stats/global– (base)/stats/region/(refseq)?start=123&end=456– (base)/stats/regionFeatureDensities/(refseq)?

start=123&end=456&basesPerBin=20000– (base)/features/(refseq)?start=234&end=5678

• Can provide feature, sequence, and quantitative data for display

• Accepted response type: application/jsonhttp://gmod.org

/wiki/JBrowse_Configuration_Guide#Writing_JBrowse-compatible_Web_Services

Page 4: Integrate JBrowse REST API Framework with Adama Federation Architecture

araport.org@araport

ADAMA endpoints• Araport Data And Microservices API– Developed by WalterM and MattV

• Encapsulates python code into reusable docker containers

• Exposes internal logic as API endpoints:– query, generic adapters via HTTP GET

• (base)/search• (base)/list

– passthrough adapters via HTTP GET and POST• (base)/access

• Implements token based Auth via iPlant OAuth2https://github.com/Arabidopsis-Information-Portal/adama

Page 5: Integrate JBrowse REST API Framework with Adama Federation Architecture

araport.org@araport

Mapping JBrowse to ADAMA endpoints

• ADAMA (currently) doesn’t allow defining custom endpoints

• So, we have to map the 4 JBrowse endpoints to the 2 ADAMA endpoints

• Proposed endpoint mapping:JBrowse ADAMA

(base)/stats/global (base)/search?q=global

(base)/stats/region (base)/search?q=region

(base)/stats/regionFeatureDensities (base)/search?q=regionFeatureDensities

(base)/features (base)/search?q=features

(base)/list?q=makeTrackListJson

Page 6: Integrate JBrowse REST API Framework with Adama Federation Architecture

araport.org@araport

Extending JBrowse REST feature store

• JBrowse/Store/SeqFeature/REST handles requests from the browser to the configured API service– Understands the 4 pre-defined endpoints

• REST feature store extended based on proposed endpoint mapping

• Utilize JBrowse Plugin architecture to develop Araport plugin: Araport/Store/SeqFeature/REST

http://gmod.org/wiki/JBrowse_Configuration_Guide#Writing_JBrowse_Plugins

Page 7: Integrate JBrowse REST API Framework with Adama Federation Architecture

araport.org@araport

Handling Auth in JBrowse 1.x• ADAMA (currently) requires all requests to be

accompanied by an Authorization Bearer $TOKEN• JBrowse 1.x does not support OAuth2 implicit

flow, thus cannot generate tokens• Solution:

– OAuth2 $TOKEN created with unlimited validity (-1)• $TOKEN generated by Araport anonymous user• $TOKEN scope limited to ADAMA services

– Araport/Store/SeqFeature/RESTAuth hard codes $TOKEN

– Araport/Store/SeqFeature/REST inherits from RESTAuth

Page 8: Integrate JBrowse REST API Framework with Adama Federation Architecture

araport.org@araport

Use CaseIntegrate Chromatin States data into JBrowse via ADAMA

• Published dataset representing a landscape of Arabidopsis thaliana chromatin states using 16 features, including DNA sequence, CG methylation, histone variants, and modifications

• Data represents chromosomal regions (start/stop coordinates) corresponding with 9 distinct chromatin states

• Published with manuscript as supplementary dataset (in XLS format)

Sequeira-Mendes, J., Aragüez, I., Peiró, R., Mendez-Giraldez, R., Zhang, X., Jacobsen, S. E., ... & Gutierrez, C. (2014). The functional topography of the Arabidopsis genome is organized in a reduced number of linear motifs of chromatin states. The Plant Cell, 26(6), 2351-2366.

Page 9: Integrate JBrowse REST API Framework with Adama Federation Architecture

araport.org@araport

• Develop ADAMA adapter to dynamically query data from desired region and represent as JBrowse compatible JSON

• Code: https://github.com/Arabidopsis-Information-Portal/chromatin_states_to_jbrowse

• Implementation logic:– Data transformed from 9 XLS worksheets into individual GFF3 files– Pythonic parser developed using gffutils, allowing range querying (via intermediary

sqlite database)– ADAMA metadata.yml written which describes dependencies, endpoints and

provenance• Data hosted with code (due to small size, well within

GitHub file size limits)• ADAMA namespace created and adapter registered• Available in API explorer (search for ‘chromatin’)

Use CaseIntegrate Chromatin States data into JBrowse via ADAMA

https://jira.araport.org/browse/MINE-1078

Page 10: Integrate JBrowse REST API Framework with Adama Federation Architecture

araport.org@araport

Integrate Chromatin States data into JBrowse via ADAMA• JBrowse tracks configured to talk to registered ADAMA endpoint• End result visible in screenshot above• Live view: https://apps.araport.org/jbrowse/?

data=arabidopsis&loc=Chr3:11355449..11407858&tracks=chromatin_state_1,chromatin_state_2,chromatin_state_3,chromatin_state_4,chromatin_state_5,chromatin_state_6,chromatin_state_7,chromatin_state_8,chromatin_state_9,Araport11_gene_models

Page 11: Integrate JBrowse REST API Framework with Adama Federation Architecture

araport.org@araport

Summary• Extended JBrowse to integrate with

ADAMA endpoints• Exposed a published community

dataset via ADAMA as an API• Exposed track configuration via

ADAMA API• Visualized dataset in JBrowse via

ADAMA API

Page 12: Integrate JBrowse REST API Framework with Adama Federation Architecture

araport.org@araport

Challenges• Making web service calls to ADAMA

requires Authorization $TOKEN• JBrowse needs to hard code the

Authorization $TOKEN• Track configuration needs to be

manually added to JBrowse• Scaling to larger datasets not

feasible via GitHub route

Page 13: Integrate JBrowse REST API Framework with Adama Federation Architecture

araport.org@araport

Acknowledgements• JCVI Araport Team– Chia-Yi Cheng– Agnes Chan– Chris Town

• TACC Araport Team–Walter Moreira–Matthew Vaughn

• Prof. Crisanto Gutierrez (CBMSO)