SlideShare a Scribd company logo
araport.org@araport
Integrate JBrowse REST API
with ADAMA
Vivek Krishnakumar
12/03/2015
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
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&basesP
erBin=20000
– (base)/features/(refseq)?start=234&end=5678
• Can provide feature, sequence, and quantitative
data for display
• Accepted response type: application/json
http://gmod.org/wiki/JBrowse_Configuration_Guide#Writing_JBrowse-compatible_Web_Services
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
OAuth2 https://github.com/Arabidopsis-Information-Portal/adama
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
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
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
araport.org@araport
Use Case
Integrate 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.
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 Case
Integrate Chromatin States data into JBrowse via ADAMA
https://jira.araport.org/browse/MINE-1078
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,chr
omatin_state_2,chromatin_state_3,chromatin_state_4,chromatin_state_5,chromatin_state_6,chromatin_state_7,chr
omatin_state_8,chromatin_state_9,Araport11_gene_models
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
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
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)

More Related Content

Similar to Integrate JBrowse REST API Framework with Adama Federation Architecture

Microsoft R - Data Science at Scale
Microsoft R - Data Science at ScaleMicrosoft R - Data Science at Scale
Microsoft R - Data Science at ScaleSascha Dittmann
 
xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)
xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)
xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)Claudiu Barbura
 
Resume Ahmad 18 - Copy1
Resume Ahmad 18 - Copy1Resume Ahmad 18 - Copy1
Resume Ahmad 18 - Copy1Firoz Ahmad
 
Java colombo-deep-dive-into-jax-rs
Java colombo-deep-dive-into-jax-rsJava colombo-deep-dive-into-jax-rs
Java colombo-deep-dive-into-jax-rsSagara Gunathunga
 
Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...
Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...
Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...Christian Tzolov
 
Seven50 Sparc Overview
Seven50 Sparc OverviewSeven50 Sparc Overview
Seven50 Sparc OverviewRoar Media
 
4th SDN Interest Group Seminar-Session 2-3(130313)
4th SDN Interest Group Seminar-Session 2-3(130313)4th SDN Interest Group Seminar-Session 2-3(130313)
4th SDN Interest Group Seminar-Session 2-3(130313)NAIM Networks, Inc.
 
xPatterns on Spark, Shark, Mesos, Tachyon
xPatterns on Spark, Shark, Mesos, TachyonxPatterns on Spark, Shark, Mesos, Tachyon
xPatterns on Spark, Shark, Mesos, TachyonClaudiu Barbura
 
JBrowse within the Arabidopsis Information Portal - PAG XXIII
JBrowse within the Arabidopsis Information Portal - PAG XXIIIJBrowse within the Arabidopsis Information Portal - PAG XXIII
JBrowse within the Arabidopsis Information Portal - PAG XXIIIVivek Krishnakumar
 
Putting Apache Drill into Production
Putting Apache Drill into ProductionPutting Apache Drill into Production
Putting Apache Drill into ProductionMapR Technologies
 
Real time analytics at uber @ strata data 2019
Real time analytics at uber @ strata data 2019Real time analytics at uber @ strata data 2019
Real time analytics at uber @ strata data 2019Zhenxiao Luo
 
Introduction to Property Graph Features (AskTOM Office Hours part 1)
Introduction to Property Graph Features (AskTOM Office Hours part 1) Introduction to Property Graph Features (AskTOM Office Hours part 1)
Introduction to Property Graph Features (AskTOM Office Hours part 1) Jean Ihm
 
Spark Concepts - Spark SQL, Graphx, Streaming
Spark Concepts - Spark SQL, Graphx, StreamingSpark Concepts - Spark SQL, Graphx, Streaming
Spark Concepts - Spark SQL, Graphx, StreamingPetr Zapletal
 
Introduction to Apache Apex
Introduction to Apache ApexIntroduction to Apache Apex
Introduction to Apache ApexApache Apex
 
Federated Queries Across Both Different Storage Mediums and Different Data En...
Federated Queries Across Both Different Storage Mediums and Different Data En...Federated Queries Across Both Different Storage Mediums and Different Data En...
Federated Queries Across Both Different Storage Mediums and Different Data En...VMware Tanzu
 
Power Saturday 2019 B4 - From relational to Multimodel Azure Cosmos DB
Power Saturday 2019 B4 - From relational to Multimodel Azure Cosmos DBPower Saturday 2019 B4 - From relational to Multimodel Azure Cosmos DB
Power Saturday 2019 B4 - From relational to Multimodel Azure Cosmos DBPowerSaturdayParis
 
Update on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdf
Update on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdfUpdate on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdf
Update on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdfAerospike, Inc.
 
JAX-RS Creating RESTFul services
JAX-RS Creating RESTFul servicesJAX-RS Creating RESTFul services
JAX-RS Creating RESTFul servicesLudovic Champenois
 

Similar to Integrate JBrowse REST API Framework with Adama Federation Architecture (20)

Microsoft R - Data Science at Scale
Microsoft R - Data Science at ScaleMicrosoft R - Data Science at Scale
Microsoft R - Data Science at Scale
 
xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)
xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)
xPatterns ... beyond Hadoop (Spark, Shark, Mesos, Tachyon)
 
Resume Ahmad 18 - Copy1
Resume Ahmad 18 - Copy1Resume Ahmad 18 - Copy1
Resume Ahmad 18 - Copy1
 
HTAP Queries
HTAP QueriesHTAP Queries
HTAP Queries
 
Java colombo-deep-dive-into-jax-rs
Java colombo-deep-dive-into-jax-rsJava colombo-deep-dive-into-jax-rs
Java colombo-deep-dive-into-jax-rs
 
Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...
Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...
Using Apache Calcite for Enabling SQL and JDBC Access to Apache Geode and Oth...
 
Seven50 Sparc Overview
Seven50 Sparc OverviewSeven50 Sparc Overview
Seven50 Sparc Overview
 
4th SDN Interest Group Seminar-Session 2-3(130313)
4th SDN Interest Group Seminar-Session 2-3(130313)4th SDN Interest Group Seminar-Session 2-3(130313)
4th SDN Interest Group Seminar-Session 2-3(130313)
 
xPatterns on Spark, Shark, Mesos, Tachyon
xPatterns on Spark, Shark, Mesos, TachyonxPatterns on Spark, Shark, Mesos, Tachyon
xPatterns on Spark, Shark, Mesos, Tachyon
 
JBrowse within the Arabidopsis Information Portal - PAG XXIII
JBrowse within the Arabidopsis Information Portal - PAG XXIIIJBrowse within the Arabidopsis Information Portal - PAG XXIII
JBrowse within the Arabidopsis Information Portal - PAG XXIII
 
Putting Apache Drill into Production
Putting Apache Drill into ProductionPutting Apache Drill into Production
Putting Apache Drill into Production
 
Real time analytics at uber @ strata data 2019
Real time analytics at uber @ strata data 2019Real time analytics at uber @ strata data 2019
Real time analytics at uber @ strata data 2019
 
Introduction to Property Graph Features (AskTOM Office Hours part 1)
Introduction to Property Graph Features (AskTOM Office Hours part 1) Introduction to Property Graph Features (AskTOM Office Hours part 1)
Introduction to Property Graph Features (AskTOM Office Hours part 1)
 
Spark Concepts - Spark SQL, Graphx, Streaming
Spark Concepts - Spark SQL, Graphx, StreamingSpark Concepts - Spark SQL, Graphx, Streaming
Spark Concepts - Spark SQL, Graphx, Streaming
 
Introduction to Apache Apex
Introduction to Apache ApexIntroduction to Apache Apex
Introduction to Apache Apex
 
Federated Queries Across Both Different Storage Mediums and Different Data En...
Federated Queries Across Both Different Storage Mediums and Different Data En...Federated Queries Across Both Different Storage Mediums and Different Data En...
Federated Queries Across Both Different Storage Mediums and Different Data En...
 
Power Saturday 2019 B4 - From relational to Multimodel Azure Cosmos DB
Power Saturday 2019 B4 - From relational to Multimodel Azure Cosmos DBPower Saturday 2019 B4 - From relational to Multimodel Azure Cosmos DB
Power Saturday 2019 B4 - From relational to Multimodel Azure Cosmos DB
 
Update on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdf
Update on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdfUpdate on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdf
Update on Aerospike Database, Clients and Frameworks_Ronen Botzer.pdf
 
JAX-RS Creating RESTFul services
JAX-RS Creating RESTFul servicesJAX-RS Creating RESTFul services
JAX-RS Creating RESTFul services
 
XSEDE15_PhastaGateway
XSEDE15_PhastaGatewayXSEDE15_PhastaGateway
XSEDE15_PhastaGateway
 

More from Vivek Krishnakumar

What's New at Araport - ICAR 2017
What's New at Araport - ICAR 2017What's New at Araport - ICAR 2017
What's New at Araport - ICAR 2017Vivek Krishnakumar
 
JBrowse and Inter-"Mine" Communication - IMDEV 2017
JBrowse and Inter-"Mine" Communication - IMDEV 2017JBrowse and Inter-"Mine" Communication - IMDEV 2017
JBrowse and Inter-"Mine" Communication - IMDEV 2017Vivek Krishnakumar
 
Teaching Bioinformatics data analysis using Medicago truncatula as a model - ...
Teaching Bioinformatics data analysis using Medicago truncatula as a model - ...Teaching Bioinformatics data analysis using Medicago truncatula as a model - ...
Teaching Bioinformatics data analysis using Medicago truncatula as a model - ...Vivek Krishnakumar
 
Araport Data Integration - 2015 UMD Minisymposium
Araport Data Integration - 2015 UMD MinisymposiumAraport Data Integration - 2015 UMD Minisymposium
Araport Data Integration - 2015 UMD MinisymposiumVivek Krishnakumar
 
Interoperation between InterMines
Interoperation between InterMinesInteroperation between InterMines
Interoperation between InterMinesVivek Krishnakumar
 
InterMine Infrastructure LF Meeting 20150428
InterMine Infrastructure LF Meeting 20150428InterMine Infrastructure LF Meeting 20150428
InterMine Infrastructure LF Meeting 20150428Vivek Krishnakumar
 
Tripal within the Arabidopsis Information Portal - PAG XXIII
Tripal within the Arabidopsis Information Portal - PAG XXIIITripal within the Arabidopsis Information Portal - PAG XXIII
Tripal within the Arabidopsis Information Portal - PAG XXIIIVivek Krishnakumar
 
Quick Intro to InterMine within AIP and MTGD - JCVI Research Works-in-Progres...
Quick Intro to InterMine within AIP and MTGD - JCVI Research Works-in-Progres...Quick Intro to InterMine within AIP and MTGD - JCVI Research Works-in-Progres...
Quick Intro to InterMine within AIP and MTGD - JCVI Research Works-in-Progres...Vivek Krishnakumar
 
Tutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer WorkshopTutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer WorkshopVivek Krishnakumar
 

More from Vivek Krishnakumar (9)

What's New at Araport - ICAR 2017
What's New at Araport - ICAR 2017What's New at Araport - ICAR 2017
What's New at Araport - ICAR 2017
 
JBrowse and Inter-"Mine" Communication - IMDEV 2017
JBrowse and Inter-"Mine" Communication - IMDEV 2017JBrowse and Inter-"Mine" Communication - IMDEV 2017
JBrowse and Inter-"Mine" Communication - IMDEV 2017
 
Teaching Bioinformatics data analysis using Medicago truncatula as a model - ...
Teaching Bioinformatics data analysis using Medicago truncatula as a model - ...Teaching Bioinformatics data analysis using Medicago truncatula as a model - ...
Teaching Bioinformatics data analysis using Medicago truncatula as a model - ...
 
Araport Data Integration - 2015 UMD Minisymposium
Araport Data Integration - 2015 UMD MinisymposiumAraport Data Integration - 2015 UMD Minisymposium
Araport Data Integration - 2015 UMD Minisymposium
 
Interoperation between InterMines
Interoperation between InterMinesInteroperation between InterMines
Interoperation between InterMines
 
InterMine Infrastructure LF Meeting 20150428
InterMine Infrastructure LF Meeting 20150428InterMine Infrastructure LF Meeting 20150428
InterMine Infrastructure LF Meeting 20150428
 
Tripal within the Arabidopsis Information Portal - PAG XXIII
Tripal within the Arabidopsis Information Portal - PAG XXIIITripal within the Arabidopsis Information Portal - PAG XXIII
Tripal within the Arabidopsis Information Portal - PAG XXIII
 
Quick Intro to InterMine within AIP and MTGD - JCVI Research Works-in-Progres...
Quick Intro to InterMine within AIP and MTGD - JCVI Research Works-in-Progres...Quick Intro to InterMine within AIP and MTGD - JCVI Research Works-in-Progres...
Quick Intro to InterMine within AIP and MTGD - JCVI Research Works-in-Progres...
 
Tutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer WorkshopTutorial 1: Your First Science App - Araport Developer Workshop
Tutorial 1: Your First Science App - Araport Developer Workshop
 

Recently uploaded

Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomCzechDreamin
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...Product School
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaCzechDreamin
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoTAnalytics
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...Product School
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Product School
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...CzechDreamin
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCzechDreamin
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...CzechDreamin
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...Elena Simperl
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeCzechDreamin
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesBhaskar Mitra
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersSafe Software
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...Product School
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backElena Simperl
 

Recently uploaded (20)

Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone KomSalesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
Salesforce Adoption – Metrics, Methods, and Motivation, Antone Kom
 
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
AI for Every Business: Unlocking Your Product's Universal Potential by VP of ...
 
"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi"Impact of front-end architecture on development cost", Viktor Turskyi
"Impact of front-end architecture on development cost", Viktor Turskyi
 
Powerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara LaskowskaPowerful Start- the Key to Project Success, Barbara Laskowska
Powerful Start- the Key to Project Success, Barbara Laskowska
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024IoT Analytics Company Presentation May 2024
IoT Analytics Company Presentation May 2024
 
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
De-mystifying Zero to One: Design Informed Techniques for Greenfield Innovati...
 
Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...Mission to Decommission: Importance of Decommissioning Products to Increase E...
Mission to Decommission: Importance of Decommissioning Products to Increase E...
 
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
Integrating Telephony Systems with Salesforce: Insights and Considerations, B...
 
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya HalderCustom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
Custom Approval Process: A New Perspective, Pavel Hrbacek & Anindya Halder
 
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
SOQL 201 for Admins & Developers: Slice & Dice Your Org’s Data With Aggregate...
 
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...
 
When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...When stars align: studies in data quality, knowledge graphs, and machine lear...
When stars align: studies in data quality, knowledge graphs, and machine lear...
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi IbrahimzadeFree and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
Free and Effective: Making Flows Publicly Accessible, Yumi Ibrahimzade
 
Search and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical FuturesSearch and Society: Reimagining Information Access for Radical Futures
Search and Society: Reimagining Information Access for Radical Futures
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
From Siloed Products to Connected Ecosystem: Building a Sustainable and Scala...
 
Knowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and backKnowledge engineering: from people to machines and back
Knowledge engineering: from people to machines and back
 

Integrate JBrowse REST API Framework with Adama Federation Architecture

  • 1. araport.org@araport Integrate JBrowse REST API with ADAMA Vivek Krishnakumar 12/03/2015
  • 2. 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
  • 3. 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&basesP erBin=20000 – (base)/features/(refseq)?start=234&end=5678 • Can provide feature, sequence, and quantitative data for display • Accepted response type: application/json http://gmod.org/wiki/JBrowse_Configuration_Guide#Writing_JBrowse-compatible_Web_Services
  • 4. 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 OAuth2 https://github.com/Arabidopsis-Information-Portal/adama
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. araport.org@araport Use Case Integrate 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.
  • 9. 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 Case Integrate Chromatin States data into JBrowse via ADAMA https://jira.araport.org/browse/MINE-1078
  • 10. 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,chr omatin_state_2,chromatin_state_3,chromatin_state_4,chromatin_state_5,chromatin_state_6,chromatin_state_7,chr omatin_state_8,chromatin_state_9,Araport11_gene_models
  • 11. 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
  • 12. 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
  • 13. 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)