SlideShare a Scribd company logo
1 of 36
27th of October 2016
Piotr Zakrzewski – The Hyve
TranSMART Pro 17.1 project
Technical Overview
2
What does 17.1 mean for future
development?
Improved ease of development
● Clean up of repositories (single repo)
● One step build
● Dependencies update
● Rest api improvements
● Consolidation and extension of the star schema to
better fit tranSMART and new data types
● Documentation
3
What does 17.1 mean for future
development?
Improved ease of development
● Clean up of repositories (single repo)
● One step build
● Dependencies update
● Rest api improvements
● Consolidation and extension of the star schema to
better fit tranSMART and new data types
● Documentation
4
Repository Structure
Before you can
deploy it here ...
5
Repository Structure
core-api core-db rest-api
R
modules
core-api
transmart
data
legacy db
you need all of these ...
...and these...
6
Repository Structure
16.2:
- TranSMART 16.2 spans 10 core repositories
- Building & testing tranSMART requires a special
setup (that resides in yet another repository)
17.1:
- Single repository with all core components
necessary for building working tranSMART WAR
file
7
What does 17.1 mean for future
development?
Improved ease of development
● Clean up of repositories (single repo)
● One step build
● Dependencies update
● Rest api improvements
● Consolidation and extension of the star schema to
better fit tranSMART and new data types
● Documentation
8
Versioning of Artifacts
16.2:
- Most components are versioned as
SNAPSHOTs
- core-api, core-db, rest-api, transmartApp and
all other core components need to match strictly
in revision in order to work
17.1:
- Single repository: all changes to different
components come in a single PR
9
Build Process
16.2:
- Transmart 16.2 (Grails 2) uses Gant scripts for building
- git-repo used for fetching all repositories
- custom groovy script (dependency manager) needed for
dev setup
17.1:
- Gradle build system (comes with Grails 3)
- One step build (also with database setup)
- just git clone && ./gradlew build
10
Test Setup
16.2:
- Custom script matching branches during travis
run
- Different way to run tests locally and on travis
- No reliable way to run tests for all components
- Tested on H2 in-memory database
17.1:
- ./gradlew test both locally and on travis
- tested against Oracle and Postgres
11
- Default option for Grails 3.X
- Very versatile build system
- Also very popular (gained momentum due to adoption by
Android)
- Especially suitable for multi-project, multi-language
builds like tranSMART
12
What does 17.1 mean for future
development?
Improved ease of development
● Clean up of repositories (single repo)
● One step build
● Dependencies update
● Rest api improvements
● Consolidation and extension of the star schema to
better fit tranSMART and new data types
● Documentation
13
Java 7 to Java 8
tranSMART is still running on Java 7 which is no longer
supported, even for security updates since April 2015.
Java 7 reached its end of life
14
Groovy 2.4 and Grails 3
- Java 8 supports invokeDynamic, which should increase
performance of many groovy dynamic calls
- Many workarounds accounting for old Grails and
Hibernate versions bugs no longer necessary
- Upgrade allowed us to adopt better build system: Gradle
15
What does 17.1 mean for future
development?
Improved ease of development
● Clean up of repositories (single repo)
● One step build
● Dependencies update
● Rest api improvements
● Consolidation and extension of the star schema to
better fit tranSMART and new data types
● Documentation
16
REST-API versioning
● TranSMART REST-api is used in production
● Several clients and third-party apps
● But development needs to continue …
17
REST-API versioning
- in 17.1 REST-api versioning is introduced
- Versioning is done on the url level
- GET /studies becomes GET /v1/studies
- only minor influence on existing clients (change of base
url configuration to include version)
18
Current REST-API documentation
19
Open API (previously Swagger)
20
What does 17.1 mean for future
development?
Improved ease of development
● Clean up of repositories (single repo)
● One step build
● Dependencies update
● Rest api improvements
● Consolidation and extension of the star schema to
better fit tranSMART and new data types
● Documentation
21
Db schema as of now (16.2)
22
Db schema as of now (16.2)
Some facts about the current schema:
Study exists only as string ids sprinkled around the star
schema (no table for study)
Concepts and patients belong to a study (cannot be
shared)
Combination of patient-concept yields a single
observation
23
Db schema of 17.1
24
Db schema of 17.1
Most important Consequences of 17.1 changes:
Concepts and patients can be shared between studies
more straightforward cross trial comparison (trial-visit
dimension) and longitudinal data (start date) support
Much redundancy and inconsistencies removed
25
Hypercube
- Introduction of longitudinal data
requires a whole different
approach
- Modifiers used to store
time point. Both relative and
absolute allowed
- Each observation has effectively an additional dimension
(hence the Hypercube)
26
How to query a Hypercube ?
27
Impact on backwards compatibility
- Old UI will work only with old data, new data (especially
longitudinal) will not be supported
- Old ui will not make use of new cross-trial functionality
- Migration path will be provided between 16.2 and 17.1
28
New UI however will support the longitudinal
data and other features
29
What does 17.1 mean for future
development?
Improved ease of development
● Clean up of repositories (single repo)
● One step build
● Dependencies update
● Rest api improvements
● Consolidation and extension of the star schema to
better fit tranSMART and new data types
● Documentation
30
Documentation
- one of the project deliverables is documentation on the
database schema
- REST-api documented with Open-API
- Documentation as part of git repository
31
Conclusion
17.1 aside from many new features is also a major
clean-up that will make future developments easier
Backup slides
33
34
Arvados Keep
35
Performance Benchmarks
- Goal: safeguarding performance of REST-api
- Implemented as a Gradle task (single command)
- Should help developers spot falls in performance after
new changes
- Reference setup on Amazon will be available to make
benchmarks comparable
36
Other changes
- Multiple observations per concept-patient support
- Categorial variables no longer loaded per value (e.g.
variable Treated being two variables: yes and no)
- Several new tables to accommodate new HDD data type
(RNAseq measurement per transcript) and table to store
generic links to external resources (files)

More Related Content

What's hot

Integrating Flink with Hive, Seattle Flink Meetup, Feb 2019
Integrating Flink with Hive, Seattle Flink Meetup, Feb 2019Integrating Flink with Hive, Seattle Flink Meetup, Feb 2019
Integrating Flink with Hive, Seattle Flink Meetup, Feb 2019Bowen Li
 
Flink Forward Berlin 2017: Zohar Mizrahi - Python Streaming API
Flink Forward Berlin 2017: Zohar Mizrahi - Python Streaming APIFlink Forward Berlin 2017: Zohar Mizrahi - Python Streaming API
Flink Forward Berlin 2017: Zohar Mizrahi - Python Streaming APIFlink Forward
 
Everything you wanted to know about RadosGW - Orit Wasserman, Matt Benjamin
Everything you wanted to know about RadosGW - Orit Wasserman, Matt BenjaminEverything you wanted to know about RadosGW - Orit Wasserman, Matt Benjamin
Everything you wanted to know about RadosGW - Orit Wasserman, Matt BenjaminCeph Community
 
RxJS vs RxJava: Intro
RxJS vs RxJava: IntroRxJS vs RxJava: Intro
RxJS vs RxJava: IntroMartin Toshev
 
Data- How Does It Work-
Data- How Does It Work-Data- How Does It Work-
Data- How Does It Work-Boyang Niu
 
Meetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebServiceMeetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebServiceMinsk MongoDB User Group
 
Apache Flink Training Workshop @ HadoopCon2016 - #1 System Overview
Apache Flink Training Workshop @ HadoopCon2016 - #1 System OverviewApache Flink Training Workshop @ HadoopCon2016 - #1 System Overview
Apache Flink Training Workshop @ HadoopCon2016 - #1 System OverviewApache Flink Taiwan User Group
 
Codefresh CICD New Features Launch! May 2019
Codefresh CICD New Features Launch! May 2019Codefresh CICD New Features Launch! May 2019
Codefresh CICD New Features Launch! May 2019Codefresh
 
Maintaining spatial data infrastructures (SDIs) using distributed task queues
Maintaining spatial data infrastructures (SDIs) using distributed task queuesMaintaining spatial data infrastructures (SDIs) using distributed task queues
Maintaining spatial data infrastructures (SDIs) using distributed task queuesPaolo Corti
 
RocksDB storage engine for MySQL and MongoDB
RocksDB storage engine for MySQL and MongoDBRocksDB storage engine for MySQL and MongoDB
RocksDB storage engine for MySQL and MongoDBIgor Canadi
 
Hyperscale SIG Introduction
Hyperscale SIG IntroductionHyperscale SIG Introduction
Hyperscale SIG IntroductionDavide Cavalca
 
Flink Forward Berlin 2018: Xingcan Cui - "Stream Join in Flink: from Discrete...
Flink Forward Berlin 2018: Xingcan Cui - "Stream Join in Flink: from Discrete...Flink Forward Berlin 2018: Xingcan Cui - "Stream Join in Flink: from Discrete...
Flink Forward Berlin 2018: Xingcan Cui - "Stream Join in Flink: from Discrete...Flink Forward
 

What's hot (19)

TiDB Introduction
TiDB IntroductionTiDB Introduction
TiDB Introduction
 
Integrating Flink with Hive, Seattle Flink Meetup, Feb 2019
Integrating Flink with Hive, Seattle Flink Meetup, Feb 2019Integrating Flink with Hive, Seattle Flink Meetup, Feb 2019
Integrating Flink with Hive, Seattle Flink Meetup, Feb 2019
 
Kubernetes on CRI-O
Kubernetes on CRI-OKubernetes on CRI-O
Kubernetes on CRI-O
 
Flink Forward Berlin 2017: Zohar Mizrahi - Python Streaming API
Flink Forward Berlin 2017: Zohar Mizrahi - Python Streaming APIFlink Forward Berlin 2017: Zohar Mizrahi - Python Streaming API
Flink Forward Berlin 2017: Zohar Mizrahi - Python Streaming API
 
Developing a Framework for File Format Migrations. Joey Heinen and Andrea Goe...
Developing a Framework for File Format Migrations. Joey Heinen and Andrea Goe...Developing a Framework for File Format Migrations. Joey Heinen and Andrea Goe...
Developing a Framework for File Format Migrations. Joey Heinen and Andrea Goe...
 
HDF5 OPeNDAP project update and demo
HDF5 OPeNDAP project update and demoHDF5 OPeNDAP project update and demo
HDF5 OPeNDAP project update and demo
 
Grafana 7.0
Grafana 7.0Grafana 7.0
Grafana 7.0
 
Everything you wanted to know about RadosGW - Orit Wasserman, Matt Benjamin
Everything you wanted to know about RadosGW - Orit Wasserman, Matt BenjaminEverything you wanted to know about RadosGW - Orit Wasserman, Matt Benjamin
Everything you wanted to know about RadosGW - Orit Wasserman, Matt Benjamin
 
RxJS vs RxJava: Intro
RxJS vs RxJava: IntroRxJS vs RxJava: Intro
RxJS vs RxJava: Intro
 
Data- How Does It Work-
Data- How Does It Work-Data- How Does It Work-
Data- How Does It Work-
 
Flour
FlourFlour
Flour
 
Meetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebServiceMeetup#2: Building responsive Symbology & Suggest WebService
Meetup#2: Building responsive Symbology & Suggest WebService
 
Apache Flink Training Workshop @ HadoopCon2016 - #1 System Overview
Apache Flink Training Workshop @ HadoopCon2016 - #1 System OverviewApache Flink Training Workshop @ HadoopCon2016 - #1 System Overview
Apache Flink Training Workshop @ HadoopCon2016 - #1 System Overview
 
Web scale monitoring
Web scale monitoringWeb scale monitoring
Web scale monitoring
 
Codefresh CICD New Features Launch! May 2019
Codefresh CICD New Features Launch! May 2019Codefresh CICD New Features Launch! May 2019
Codefresh CICD New Features Launch! May 2019
 
Maintaining spatial data infrastructures (SDIs) using distributed task queues
Maintaining spatial data infrastructures (SDIs) using distributed task queuesMaintaining spatial data infrastructures (SDIs) using distributed task queues
Maintaining spatial data infrastructures (SDIs) using distributed task queues
 
RocksDB storage engine for MySQL and MongoDB
RocksDB storage engine for MySQL and MongoDBRocksDB storage engine for MySQL and MongoDB
RocksDB storage engine for MySQL and MongoDB
 
Hyperscale SIG Introduction
Hyperscale SIG IntroductionHyperscale SIG Introduction
Hyperscale SIG Introduction
 
Flink Forward Berlin 2018: Xingcan Cui - "Stream Join in Flink: from Discrete...
Flink Forward Berlin 2018: Xingcan Cui - "Stream Join in Flink: from Discrete...Flink Forward Berlin 2018: Xingcan Cui - "Stream Join in Flink: from Discrete...
Flink Forward Berlin 2018: Xingcan Cui - "Stream Join in Flink: from Discrete...
 

Similar to tranSMART 17.1 technical overview

20160401 Gluster-roadmap
20160401 Gluster-roadmap20160401 Gluster-roadmap
20160401 Gluster-roadmapGluster.org
 
20160401 guster-roadmap
20160401 guster-roadmap20160401 guster-roadmap
20160401 guster-roadmapGluster.org
 
20160401 guster-roadmap
20160401 guster-roadmap20160401 guster-roadmap
20160401 guster-roadmapGluster.org
 
Upcoming features in Airflow 2
Upcoming features in Airflow 2Upcoming features in Airflow 2
Upcoming features in Airflow 2Kaxil Naik
 
Migrating to spark 2.0
Migrating to spark 2.0Migrating to spark 2.0
Migrating to spark 2.0datamantra
 
LAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLinaro
 
Tips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1xTips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1xSenturus
 
The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)Geekstone
 
SFO15-110: Toolchain Collaboration
SFO15-110: Toolchain CollaborationSFO15-110: Toolchain Collaboration
SFO15-110: Toolchain CollaborationLinaro
 
Heroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success storyHeroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success storyJérémy Wimsingues
 
(ATS4-PLAT10) Planning your deployment for a 64 bit world
(ATS4-PLAT10) Planning your deployment for a 64 bit world(ATS4-PLAT10) Planning your deployment for a 64 bit world
(ATS4-PLAT10) Planning your deployment for a 64 bit worldBIOVIA
 
(ATS4-PLAT10) Planning your deployment for a 64 bit world
(ATS4-PLAT10) Planning your deployment for a 64 bit world(ATS4-PLAT10) Planning your deployment for a 64 bit world
(ATS4-PLAT10) Planning your deployment for a 64 bit worldBIOVIA
 
DevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform SimulationsDevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform SimulationsJeremy Eder
 
Blackray @ SAPO CodeBits 2009
Blackray @ SAPO CodeBits 2009Blackray @ SAPO CodeBits 2009
Blackray @ SAPO CodeBits 2009fschupp
 
Road to sbt 1.0 paved with server
Road to sbt 1.0   paved with serverRoad to sbt 1.0   paved with server
Road to sbt 1.0 paved with serverEugene Yokota
 
Introducing TiDB Operator [Cologne, Germany]
Introducing TiDB Operator [Cologne, Germany]Introducing TiDB Operator [Cologne, Germany]
Introducing TiDB Operator [Cologne, Germany]Kevin Xu
 
Introducing TiDB Operator
Introducing TiDB OperatorIntroducing TiDB Operator
Introducing TiDB OperatorKevin Xu
 
Overhauling a database engine in 2 months
Overhauling a database engine in 2 monthsOverhauling a database engine in 2 months
Overhauling a database engine in 2 monthsMax Neunhöffer
 

Similar to tranSMART 17.1 technical overview (20)

20160401 Gluster-roadmap
20160401 Gluster-roadmap20160401 Gluster-roadmap
20160401 Gluster-roadmap
 
20160401 guster-roadmap
20160401 guster-roadmap20160401 guster-roadmap
20160401 guster-roadmap
 
20160401 guster-roadmap
20160401 guster-roadmap20160401 guster-roadmap
20160401 guster-roadmap
 
Upcoming features in Airflow 2
Upcoming features in Airflow 2Upcoming features in Airflow 2
Upcoming features in Airflow 2
 
Migrating to spark 2.0
Migrating to spark 2.0Migrating to spark 2.0
Migrating to spark 2.0
 
LAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMGLAS16-209: Finished and Upcoming Projects in LMG
LAS16-209: Finished and Upcoming Projects in LMG
 
Tips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1xTips for Installing Cognos Analytics 11.2.1x
Tips for Installing Cognos Analytics 11.2.1x
 
The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)
 
SFO15-110: Toolchain Collaboration
SFO15-110: Toolchain CollaborationSFO15-110: Toolchain Collaboration
SFO15-110: Toolchain Collaboration
 
Heroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success storyHeroku to Kubernetes & Gihub to Gitlab success story
Heroku to Kubernetes & Gihub to Gitlab success story
 
(ATS4-PLAT10) Planning your deployment for a 64 bit world
(ATS4-PLAT10) Planning your deployment for a 64 bit world(ATS4-PLAT10) Planning your deployment for a 64 bit world
(ATS4-PLAT10) Planning your deployment for a 64 bit world
 
(ATS4-PLAT10) Planning your deployment for a 64 bit world
(ATS4-PLAT10) Planning your deployment for a 64 bit world(ATS4-PLAT10) Planning your deployment for a 64 bit world
(ATS4-PLAT10) Planning your deployment for a 64 bit world
 
DevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform SimulationsDevConf 2017 - Realistic Container Platform Simulations
DevConf 2017 - Realistic Container Platform Simulations
 
Red Hat Storage Roadmap
Red Hat Storage RoadmapRed Hat Storage Roadmap
Red Hat Storage Roadmap
 
Red Hat Storage Roadmap
Red Hat Storage RoadmapRed Hat Storage Roadmap
Red Hat Storage Roadmap
 
Blackray @ SAPO CodeBits 2009
Blackray @ SAPO CodeBits 2009Blackray @ SAPO CodeBits 2009
Blackray @ SAPO CodeBits 2009
 
Road to sbt 1.0 paved with server
Road to sbt 1.0   paved with serverRoad to sbt 1.0   paved with server
Road to sbt 1.0 paved with server
 
Introducing TiDB Operator [Cologne, Germany]
Introducing TiDB Operator [Cologne, Germany]Introducing TiDB Operator [Cologne, Germany]
Introducing TiDB Operator [Cologne, Germany]
 
Introducing TiDB Operator
Introducing TiDB OperatorIntroducing TiDB Operator
Introducing TiDB Operator
 
Overhauling a database engine in 2 months
Overhauling a database engine in 2 monthsOverhauling a database engine in 2 months
Overhauling a database engine in 2 months
 

Recently uploaded

Call Girls ITPL Just Call 7001305949 Top Class Call Girl Service Available
Call Girls ITPL Just Call 7001305949 Top Class Call Girl Service AvailableCall Girls ITPL Just Call 7001305949 Top Class Call Girl Service Available
Call Girls ITPL Just Call 7001305949 Top Class Call Girl Service Availablenarwatsonia7
 
Artifacts in Nuclear Medicine with Identifying and resolving artifacts.
Artifacts in Nuclear Medicine with Identifying and resolving artifacts.Artifacts in Nuclear Medicine with Identifying and resolving artifacts.
Artifacts in Nuclear Medicine with Identifying and resolving artifacts.MiadAlsulami
 
Call Girls Service Nandiambakkam | 7001305949 At Low Cost Cash Payment Booking
Call Girls Service Nandiambakkam | 7001305949 At Low Cost Cash Payment BookingCall Girls Service Nandiambakkam | 7001305949 At Low Cost Cash Payment Booking
Call Girls Service Nandiambakkam | 7001305949 At Low Cost Cash Payment BookingNehru place Escorts
 
Call Girls Hebbal Just Call 7001305949 Top Class Call Girl Service Available
Call Girls Hebbal Just Call 7001305949 Top Class Call Girl Service AvailableCall Girls Hebbal Just Call 7001305949 Top Class Call Girl Service Available
Call Girls Hebbal Just Call 7001305949 Top Class Call Girl Service Availablenarwatsonia7
 
Housewife Call Girls Hoskote | 7001305949 At Low Cost Cash Payment Booking
Housewife Call Girls Hoskote | 7001305949 At Low Cost Cash Payment BookingHousewife Call Girls Hoskote | 7001305949 At Low Cost Cash Payment Booking
Housewife Call Girls Hoskote | 7001305949 At Low Cost Cash Payment Bookingnarwatsonia7
 
Call Girl Bangalore Nandini 7001305949 Independent Escort Service Bangalore
Call Girl Bangalore Nandini 7001305949 Independent Escort Service BangaloreCall Girl Bangalore Nandini 7001305949 Independent Escort Service Bangalore
Call Girl Bangalore Nandini 7001305949 Independent Escort Service Bangalorenarwatsonia7
 
Book Call Girls in Kasavanahalli - 7001305949 with real photos and phone numbers
Book Call Girls in Kasavanahalli - 7001305949 with real photos and phone numbersBook Call Girls in Kasavanahalli - 7001305949 with real photos and phone numbers
Book Call Girls in Kasavanahalli - 7001305949 with real photos and phone numbersnarwatsonia7
 
Call Girl Koramangala | 7001305949 At Low Cost Cash Payment Booking
Call Girl Koramangala | 7001305949 At Low Cost Cash Payment BookingCall Girl Koramangala | 7001305949 At Low Cost Cash Payment Booking
Call Girl Koramangala | 7001305949 At Low Cost Cash Payment Bookingnarwatsonia7
 
Call Girl Lucknow Mallika 7001305949 Independent Escort Service Lucknow
Call Girl Lucknow Mallika 7001305949 Independent Escort Service LucknowCall Girl Lucknow Mallika 7001305949 Independent Escort Service Lucknow
Call Girl Lucknow Mallika 7001305949 Independent Escort Service Lucknownarwatsonia7
 
VIP Call Girls Lucknow Nandini 7001305949 Independent Escort Service Lucknow
VIP Call Girls Lucknow Nandini 7001305949 Independent Escort Service LucknowVIP Call Girls Lucknow Nandini 7001305949 Independent Escort Service Lucknow
VIP Call Girls Lucknow Nandini 7001305949 Independent Escort Service Lucknownarwatsonia7
 
VIP Call Girls Mumbai Arpita 9910780858 Independent Escort Service Mumbai
VIP Call Girls Mumbai Arpita 9910780858 Independent Escort Service MumbaiVIP Call Girls Mumbai Arpita 9910780858 Independent Escort Service Mumbai
VIP Call Girls Mumbai Arpita 9910780858 Independent Escort Service Mumbaisonalikaur4
 
Call Girls Frazer Town Just Call 7001305949 Top Class Call Girl Service Avail...
Call Girls Frazer Town Just Call 7001305949 Top Class Call Girl Service Avail...Call Girls Frazer Town Just Call 7001305949 Top Class Call Girl Service Avail...
Call Girls Frazer Town Just Call 7001305949 Top Class Call Girl Service Avail...narwatsonia7
 
See the 2,456 pharmacies on the National E-Pharmacy Platform
See the 2,456 pharmacies on the National E-Pharmacy PlatformSee the 2,456 pharmacies on the National E-Pharmacy Platform
See the 2,456 pharmacies on the National E-Pharmacy PlatformKweku Zurek
 
call girls in Connaught Place DELHI 🔝 >༒9540349809 🔝 genuine Escort Service ...
call girls in Connaught Place  DELHI 🔝 >༒9540349809 🔝 genuine Escort Service ...call girls in Connaught Place  DELHI 🔝 >༒9540349809 🔝 genuine Escort Service ...
call girls in Connaught Place DELHI 🔝 >༒9540349809 🔝 genuine Escort Service ...saminamagar
 
Call Girls Kanakapura Road Just Call 7001305949 Top Class Call Girl Service A...
Call Girls Kanakapura Road Just Call 7001305949 Top Class Call Girl Service A...Call Girls Kanakapura Road Just Call 7001305949 Top Class Call Girl Service A...
Call Girls Kanakapura Road Just Call 7001305949 Top Class Call Girl Service A...narwatsonia7
 
Call Girls Jayanagar Just Call 7001305949 Top Class Call Girl Service Available
Call Girls Jayanagar Just Call 7001305949 Top Class Call Girl Service AvailableCall Girls Jayanagar Just Call 7001305949 Top Class Call Girl Service Available
Call Girls Jayanagar Just Call 7001305949 Top Class Call Girl Service Availablenarwatsonia7
 
Aspirin presentation slides by Dr. Rewas Ali
Aspirin presentation slides by Dr. Rewas AliAspirin presentation slides by Dr. Rewas Ali
Aspirin presentation slides by Dr. Rewas AliRewAs ALI
 
Bangalore Call Girls Marathahalli 📞 9907093804 High Profile Service 100% Safe
Bangalore Call Girls Marathahalli 📞 9907093804 High Profile Service 100% SafeBangalore Call Girls Marathahalli 📞 9907093804 High Profile Service 100% Safe
Bangalore Call Girls Marathahalli 📞 9907093804 High Profile Service 100% Safenarwatsonia7
 
VIP Call Girls Pune Vrinda 9907093804 Short 1500 Night 6000 Best call girls S...
VIP Call Girls Pune Vrinda 9907093804 Short 1500 Night 6000 Best call girls S...VIP Call Girls Pune Vrinda 9907093804 Short 1500 Night 6000 Best call girls S...
VIP Call Girls Pune Vrinda 9907093804 Short 1500 Night 6000 Best call girls S...Miss joya
 
Russian Call Girl Brookfield - 7001305949 Escorts Service 50% Off with Cash O...
Russian Call Girl Brookfield - 7001305949 Escorts Service 50% Off with Cash O...Russian Call Girl Brookfield - 7001305949 Escorts Service 50% Off with Cash O...
Russian Call Girl Brookfield - 7001305949 Escorts Service 50% Off with Cash O...narwatsonia7
 

Recently uploaded (20)

Call Girls ITPL Just Call 7001305949 Top Class Call Girl Service Available
Call Girls ITPL Just Call 7001305949 Top Class Call Girl Service AvailableCall Girls ITPL Just Call 7001305949 Top Class Call Girl Service Available
Call Girls ITPL Just Call 7001305949 Top Class Call Girl Service Available
 
Artifacts in Nuclear Medicine with Identifying and resolving artifacts.
Artifacts in Nuclear Medicine with Identifying and resolving artifacts.Artifacts in Nuclear Medicine with Identifying and resolving artifacts.
Artifacts in Nuclear Medicine with Identifying and resolving artifacts.
 
Call Girls Service Nandiambakkam | 7001305949 At Low Cost Cash Payment Booking
Call Girls Service Nandiambakkam | 7001305949 At Low Cost Cash Payment BookingCall Girls Service Nandiambakkam | 7001305949 At Low Cost Cash Payment Booking
Call Girls Service Nandiambakkam | 7001305949 At Low Cost Cash Payment Booking
 
Call Girls Hebbal Just Call 7001305949 Top Class Call Girl Service Available
Call Girls Hebbal Just Call 7001305949 Top Class Call Girl Service AvailableCall Girls Hebbal Just Call 7001305949 Top Class Call Girl Service Available
Call Girls Hebbal Just Call 7001305949 Top Class Call Girl Service Available
 
Housewife Call Girls Hoskote | 7001305949 At Low Cost Cash Payment Booking
Housewife Call Girls Hoskote | 7001305949 At Low Cost Cash Payment BookingHousewife Call Girls Hoskote | 7001305949 At Low Cost Cash Payment Booking
Housewife Call Girls Hoskote | 7001305949 At Low Cost Cash Payment Booking
 
Call Girl Bangalore Nandini 7001305949 Independent Escort Service Bangalore
Call Girl Bangalore Nandini 7001305949 Independent Escort Service BangaloreCall Girl Bangalore Nandini 7001305949 Independent Escort Service Bangalore
Call Girl Bangalore Nandini 7001305949 Independent Escort Service Bangalore
 
Book Call Girls in Kasavanahalli - 7001305949 with real photos and phone numbers
Book Call Girls in Kasavanahalli - 7001305949 with real photos and phone numbersBook Call Girls in Kasavanahalli - 7001305949 with real photos and phone numbers
Book Call Girls in Kasavanahalli - 7001305949 with real photos and phone numbers
 
Call Girl Koramangala | 7001305949 At Low Cost Cash Payment Booking
Call Girl Koramangala | 7001305949 At Low Cost Cash Payment BookingCall Girl Koramangala | 7001305949 At Low Cost Cash Payment Booking
Call Girl Koramangala | 7001305949 At Low Cost Cash Payment Booking
 
Call Girl Lucknow Mallika 7001305949 Independent Escort Service Lucknow
Call Girl Lucknow Mallika 7001305949 Independent Escort Service LucknowCall Girl Lucknow Mallika 7001305949 Independent Escort Service Lucknow
Call Girl Lucknow Mallika 7001305949 Independent Escort Service Lucknow
 
VIP Call Girls Lucknow Nandini 7001305949 Independent Escort Service Lucknow
VIP Call Girls Lucknow Nandini 7001305949 Independent Escort Service LucknowVIP Call Girls Lucknow Nandini 7001305949 Independent Escort Service Lucknow
VIP Call Girls Lucknow Nandini 7001305949 Independent Escort Service Lucknow
 
VIP Call Girls Mumbai Arpita 9910780858 Independent Escort Service Mumbai
VIP Call Girls Mumbai Arpita 9910780858 Independent Escort Service MumbaiVIP Call Girls Mumbai Arpita 9910780858 Independent Escort Service Mumbai
VIP Call Girls Mumbai Arpita 9910780858 Independent Escort Service Mumbai
 
Call Girls Frazer Town Just Call 7001305949 Top Class Call Girl Service Avail...
Call Girls Frazer Town Just Call 7001305949 Top Class Call Girl Service Avail...Call Girls Frazer Town Just Call 7001305949 Top Class Call Girl Service Avail...
Call Girls Frazer Town Just Call 7001305949 Top Class Call Girl Service Avail...
 
See the 2,456 pharmacies on the National E-Pharmacy Platform
See the 2,456 pharmacies on the National E-Pharmacy PlatformSee the 2,456 pharmacies on the National E-Pharmacy Platform
See the 2,456 pharmacies on the National E-Pharmacy Platform
 
call girls in Connaught Place DELHI 🔝 >༒9540349809 🔝 genuine Escort Service ...
call girls in Connaught Place  DELHI 🔝 >༒9540349809 🔝 genuine Escort Service ...call girls in Connaught Place  DELHI 🔝 >༒9540349809 🔝 genuine Escort Service ...
call girls in Connaught Place DELHI 🔝 >༒9540349809 🔝 genuine Escort Service ...
 
Call Girls Kanakapura Road Just Call 7001305949 Top Class Call Girl Service A...
Call Girls Kanakapura Road Just Call 7001305949 Top Class Call Girl Service A...Call Girls Kanakapura Road Just Call 7001305949 Top Class Call Girl Service A...
Call Girls Kanakapura Road Just Call 7001305949 Top Class Call Girl Service A...
 
Call Girls Jayanagar Just Call 7001305949 Top Class Call Girl Service Available
Call Girls Jayanagar Just Call 7001305949 Top Class Call Girl Service AvailableCall Girls Jayanagar Just Call 7001305949 Top Class Call Girl Service Available
Call Girls Jayanagar Just Call 7001305949 Top Class Call Girl Service Available
 
Aspirin presentation slides by Dr. Rewas Ali
Aspirin presentation slides by Dr. Rewas AliAspirin presentation slides by Dr. Rewas Ali
Aspirin presentation slides by Dr. Rewas Ali
 
Bangalore Call Girls Marathahalli 📞 9907093804 High Profile Service 100% Safe
Bangalore Call Girls Marathahalli 📞 9907093804 High Profile Service 100% SafeBangalore Call Girls Marathahalli 📞 9907093804 High Profile Service 100% Safe
Bangalore Call Girls Marathahalli 📞 9907093804 High Profile Service 100% Safe
 
VIP Call Girls Pune Vrinda 9907093804 Short 1500 Night 6000 Best call girls S...
VIP Call Girls Pune Vrinda 9907093804 Short 1500 Night 6000 Best call girls S...VIP Call Girls Pune Vrinda 9907093804 Short 1500 Night 6000 Best call girls S...
VIP Call Girls Pune Vrinda 9907093804 Short 1500 Night 6000 Best call girls S...
 
Russian Call Girl Brookfield - 7001305949 Escorts Service 50% Off with Cash O...
Russian Call Girl Brookfield - 7001305949 Escorts Service 50% Off with Cash O...Russian Call Girl Brookfield - 7001305949 Escorts Service 50% Off with Cash O...
Russian Call Girl Brookfield - 7001305949 Escorts Service 50% Off with Cash O...
 

tranSMART 17.1 technical overview

  • 1. 27th of October 2016 Piotr Zakrzewski – The Hyve TranSMART Pro 17.1 project Technical Overview
  • 2. 2 What does 17.1 mean for future development? Improved ease of development ● Clean up of repositories (single repo) ● One step build ● Dependencies update ● Rest api improvements ● Consolidation and extension of the star schema to better fit tranSMART and new data types ● Documentation
  • 3. 3 What does 17.1 mean for future development? Improved ease of development ● Clean up of repositories (single repo) ● One step build ● Dependencies update ● Rest api improvements ● Consolidation and extension of the star schema to better fit tranSMART and new data types ● Documentation
  • 4. 4 Repository Structure Before you can deploy it here ...
  • 5. 5 Repository Structure core-api core-db rest-api R modules core-api transmart data legacy db you need all of these ... ...and these...
  • 6. 6 Repository Structure 16.2: - TranSMART 16.2 spans 10 core repositories - Building & testing tranSMART requires a special setup (that resides in yet another repository) 17.1: - Single repository with all core components necessary for building working tranSMART WAR file
  • 7. 7 What does 17.1 mean for future development? Improved ease of development ● Clean up of repositories (single repo) ● One step build ● Dependencies update ● Rest api improvements ● Consolidation and extension of the star schema to better fit tranSMART and new data types ● Documentation
  • 8. 8 Versioning of Artifacts 16.2: - Most components are versioned as SNAPSHOTs - core-api, core-db, rest-api, transmartApp and all other core components need to match strictly in revision in order to work 17.1: - Single repository: all changes to different components come in a single PR
  • 9. 9 Build Process 16.2: - Transmart 16.2 (Grails 2) uses Gant scripts for building - git-repo used for fetching all repositories - custom groovy script (dependency manager) needed for dev setup 17.1: - Gradle build system (comes with Grails 3) - One step build (also with database setup) - just git clone && ./gradlew build
  • 10. 10 Test Setup 16.2: - Custom script matching branches during travis run - Different way to run tests locally and on travis - No reliable way to run tests for all components - Tested on H2 in-memory database 17.1: - ./gradlew test both locally and on travis - tested against Oracle and Postgres
  • 11. 11 - Default option for Grails 3.X - Very versatile build system - Also very popular (gained momentum due to adoption by Android) - Especially suitable for multi-project, multi-language builds like tranSMART
  • 12. 12 What does 17.1 mean for future development? Improved ease of development ● Clean up of repositories (single repo) ● One step build ● Dependencies update ● Rest api improvements ● Consolidation and extension of the star schema to better fit tranSMART and new data types ● Documentation
  • 13. 13 Java 7 to Java 8 tranSMART is still running on Java 7 which is no longer supported, even for security updates since April 2015. Java 7 reached its end of life
  • 14. 14 Groovy 2.4 and Grails 3 - Java 8 supports invokeDynamic, which should increase performance of many groovy dynamic calls - Many workarounds accounting for old Grails and Hibernate versions bugs no longer necessary - Upgrade allowed us to adopt better build system: Gradle
  • 15. 15 What does 17.1 mean for future development? Improved ease of development ● Clean up of repositories (single repo) ● One step build ● Dependencies update ● Rest api improvements ● Consolidation and extension of the star schema to better fit tranSMART and new data types ● Documentation
  • 16. 16 REST-API versioning ● TranSMART REST-api is used in production ● Several clients and third-party apps ● But development needs to continue …
  • 17. 17 REST-API versioning - in 17.1 REST-api versioning is introduced - Versioning is done on the url level - GET /studies becomes GET /v1/studies - only minor influence on existing clients (change of base url configuration to include version)
  • 20. 20 What does 17.1 mean for future development? Improved ease of development ● Clean up of repositories (single repo) ● One step build ● Dependencies update ● Rest api improvements ● Consolidation and extension of the star schema to better fit tranSMART and new data types ● Documentation
  • 21. 21 Db schema as of now (16.2)
  • 22. 22 Db schema as of now (16.2) Some facts about the current schema: Study exists only as string ids sprinkled around the star schema (no table for study) Concepts and patients belong to a study (cannot be shared) Combination of patient-concept yields a single observation
  • 24. 24 Db schema of 17.1 Most important Consequences of 17.1 changes: Concepts and patients can be shared between studies more straightforward cross trial comparison (trial-visit dimension) and longitudinal data (start date) support Much redundancy and inconsistencies removed
  • 25. 25 Hypercube - Introduction of longitudinal data requires a whole different approach - Modifiers used to store time point. Both relative and absolute allowed - Each observation has effectively an additional dimension (hence the Hypercube)
  • 26. 26 How to query a Hypercube ?
  • 27. 27 Impact on backwards compatibility - Old UI will work only with old data, new data (especially longitudinal) will not be supported - Old ui will not make use of new cross-trial functionality - Migration path will be provided between 16.2 and 17.1
  • 28. 28 New UI however will support the longitudinal data and other features
  • 29. 29 What does 17.1 mean for future development? Improved ease of development ● Clean up of repositories (single repo) ● One step build ● Dependencies update ● Rest api improvements ● Consolidation and extension of the star schema to better fit tranSMART and new data types ● Documentation
  • 30. 30 Documentation - one of the project deliverables is documentation on the database schema - REST-api documented with Open-API - Documentation as part of git repository
  • 31. 31 Conclusion 17.1 aside from many new features is also a major clean-up that will make future developments easier
  • 32.
  • 35. 35 Performance Benchmarks - Goal: safeguarding performance of REST-api - Implemented as a Gradle task (single command) - Should help developers spot falls in performance after new changes - Reference setup on Amazon will be available to make benchmarks comparable
  • 36. 36 Other changes - Multiple observations per concept-patient support - Categorial variables no longer loaded per value (e.g. variable Treated being two variables: yes and no) - Several new tables to accommodate new HDD data type (RNAseq measurement per transcript) and table to store generic links to external resources (files)