Core components and documentation of the tranSMART platform.
Permalink
Failed to load latest commit information.
Rmodules Merge branch 'master' of github.com:thehyve/transmart-core into lodz2… Aug 10, 2017
biomart-domain Update asset-pipline dependencies in build.gradle files Jul 11, 2017
blend4j-plugin contributors files Feb 6, 2017
docker Merge pull request #4 from thehyve/master Feb 28, 2017
folder-management-plugin Merge branch 'master' of github.com:thehyve/transmart-core into lodz2… Aug 10, 2017
mock-ontology-server Copyright statements for 17.1 new files Mar 27, 2017
ontology-service Align guava, asset pipeline versions; enable publish to maven. Jun 19, 2017
open-api Make the swagger schema valid. Jul 14, 2017
scripts contributors files Feb 6, 2017
search-domain Update asset-pipline dependencies in build.gradle files Jul 11, 2017
transmart-batch Merge pull request #47 from thehyve/lodz2-dev Sep 15, 2017
transmart-core-api Merge pull request #47 from thehyve/lodz2-dev Sep 15, 2017
transmart-core-db-tests Merge branch 'master' of github.com:thehyve/transmart-core into lodz2… Aug 10, 2017
transmart-core-db Merge pull request #47 from thehyve/lodz2-dev Sep 15, 2017
transmart-data Merge pull request #47 from thehyve/lodz2-dev Sep 15, 2017
transmart-gwas-plugin Merge branch 'master' of github.com:thehyve/transmart-core into lodz2… Aug 10, 2017
transmart-java Cleanup unused assets. Jul 7, 2017
transmart-legacy-db Merge pull request #41 from thehyve/data_export Jul 11, 2017
transmart-metacore-plugin Rename rest export controller and services Jul 6, 2017
transmart-oauth Merge branch 'master' of github.com:thehyve/transmart-core into lodz2… Aug 10, 2017
transmart-rest-api-e2e removed unused code Aug 14, 2017
transmart-rest-api Merge pull request #47 from thehyve/lodz2-dev Sep 15, 2017
transmart-server Merge pull request #47 from thehyve/lodz2-dev Sep 15, 2017
transmart-solr-indexing Fix/clean up based on Riza's feedback May 17, 2017
transmartApp Merge branch 'master' of github.com:thehyve/transmart-core into lodz2… Aug 10, 2017
travis_debug Improve travis_debug/README.rst layout Jun 1, 2017
.gitignore Switch to HttpBuilder-NG Aug 11, 2017
.travis.yml Remove GRADLE_VERSION global param Jul 11, 2017
CONTRIBUTING.md Rename to transmart-core. Feb 23, 2017
Developer Certificate of Origin Developer Certificate of Origin Feb 7, 2017
LICENSE Copyright statements for 17.1 new files Apr 4, 2017
README.md Update recommended Gradle version in README Jul 11, 2017
build.gradle Merge branch 'master' of github.com:thehyve/transmart-core into lodz2… Aug 10, 2017
contributors.md Rename to transmart-core. Feb 23, 2017
gpl-3.0.txt Replace README, add license file. Jan 25, 2017
gradle.properties Clean up gradle files. Jan 27, 2017
settings.gradle Merge branch 'master' of github.com:thehyve/transmart-core into lodz2… Aug 10, 2017

README.md

tranSMART

Build Status

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/.

Overview

The platform provides an API, which is available under transmart-rest-api. Its 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.

Database definitions and installation instructions are in transmart-data. A data loading tool based on Spring Batch is available as transmart-batch.

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:

gradle :transmart-server:bootRepackage

This should create the file transmart-server/build/libs/transmart-server-17.1-SNAPSHOT.war. 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

Deployment artefacts are published to the Nexus repository of The Hyve.

Fetch and run transmart-server:

# 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

Fetch transmart-data, configure, start services

tranSMART also requires a configuration file to be generated in ~/.grails/transmartConfig and Rserve and Solr to run. Scripts to generate the configuration and to start Rserve and Solr are shipped with transmart-data.

Fetch transmart-data:

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 php):

pushd transmart-data-17.1-SNAPSHOT
source vars
make -C config install
popd

Start Solr:

pushd transmart-data-17.1-SNAPSHOT/solr
java -jar start.jar &
popd

Rserve can be fetched and installed using apt (for debian or ubuntu) or yum (for redhat or centos). For apt, use:

# 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

For yum, use the following repository url with gpgcheck=0: https://repo.thehyve.nl/content/repositories/releases.

Git history

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 git replace.

# replace the master-base object with transmart-history
git replace 58a48ff dd57ce1

License

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.

You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

Some subprojects may have more permissive licenses. Check the individual projects and files for details.