This is the repository containing the core components and documentation of the tranSMART platform, an open source data sharing and analytics platform for translational biomedical research. tranSMART is maintained by the tranSMART Foundation. Official releases can be found on the tranSMART Foundation website, and the tranSMART Foundation's development repositories can be found at https://github.com/transmart/.
The platform provides an API, which is available under transmart-rest-api.
v1 endpoints are documented there, the
v2 endpoints are documented using Swagger in open-api.
There is a main application transmart-server, exposing the API and extended by multiple plugins. As an user interface there is a frontend application transmartApp built as a "web" profiled Grails platform plugin, and an Angular4 based
front end named glowing bear is being developed.
The OAuth2 authentication of the API is managed by transmart-oauth plugin.
Relation to other transmart repositories
Before version 17.1, the tranSMART source code was split over a number of different repositories with names such as transmartApp, transmart-core-api, transmart-core-db, transmart-rest-api, RModules, etc. As of version 17.1 the components that make up the core server have been merged into a single repository. If you want the source for tranSMART 16.x or older, look at the separate repositores, if you want the sources for version 17+, you will want this repository.
Build and run
The project is built using gradle. Any version
> 2.12 and
< 2.3 should suffice (version
2.13 is recommended). Other versions may cause some build issues.
To build the project, run:
This should create the file
Run it with:
java -jar transmart-server/build/libs/transmart-server-17.1-SNAPSHOT.war
The application expects configuration in
~/.grails/transmartConfig. Check transmart-data on how to set up the database and generate the required configuration files.
Deployment artefacts are published to the Nexus repository of The Hyve.
Fetch and run
# Fetch artefacts using Maven mvn dependency:get -Dartifact=org.transmartproject:transmart-server:17.1-SNAPSHOT:war -DremoteRepositories=https://repo.thehyve.nl/content/repositories/snapshots/,https://repo.grails.org/grails/core mvn dependency:copy -Dartifact=org.transmartproject:transmart-server:17.1-SNAPSHOT:war -DoutputDirectory=. # Start the web application java -jar transmart-server-17.1-SNAPSHOT.war
transmart-data, configure, start services
tranSMART also requires a configuration file to be generated in
Solr to run.
Scripts to generate the configuration and to start
Solr are shipped with
mvn dependency:get -Dartifact=org.transmartproject:transmart-data:17.1-SNAPSHOT:tar -DremoteRepositories=https://repo.thehyve.nl/content/repositories/snapshots/ mvn dependency:unpack -Dartifact=org.transmartproject:transmart-data:17.1-SNAPSHOT:tar -DoutputDirectory=.
To generate the configuration, please consult the documentation of transmart-data.
Once a correct
vars file has been created, the configuration can be generated and installed
with these commands (requires
pushd transmart-data-17.1-SNAPSHOT source vars make -C config install popd
pushd transmart-data-17.1-SNAPSHOT/solr java -jar start.jar & popd
Rserve can be fetched and installed using
# Using apt sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 79cbff36340878cfb6a09bbecf5b7bd93375da21 sudo add-apt-repository "deb http://apt.thehyve.net/internal/ xenial main" sudo apt-get update sudo apt-get install transmart-r
yum, use the following repository url with
This repository is a merge of several, previously separated, repositories from github.com/transmart.
The history of those repositories is merged in as well (branch transmart-history), but the current
master branch is disconnected from
these histories. The master branch can locally be connected to the history with
# replace the master-base object with transmart-history git replace 58a48ff dd57ce1
Copyright © 2008-2017 See the COPYRIGHT file.
tranSMART is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
Some subprojects may have more permissive licenses. Check the individual projects and files for details.