Python library for loading data to TranSMART using transmart-copy
Project description
This package contains classes that represent the core domain objects stored in the TranSMART platform, an open source data sharing and analytics platform for translational biomedical research.
It also provides a utility that writes such objects to tab-separated files that can be loaded into a TranSMART database using the transmart-copy tool.
⚠️ Note: this is a development version. Issues can be reported at https://github.com/thehyve/python_transmart_loader/issues.
Installation and usage
To install transmart_loader, do:
pip install transmart-loader
or from sources:
git clone https://github.com/thehyve/python_transmart_loader.git
cd python_transmart_loader
pip install .
Usage
Define a TranSMART data collection, using the classes in transmart_loader/transmart.py, e.g.,
# Create the dimension elements
age_concept = Concept('test:age', 'Age', '\\Test\\age', ValueType.Numeric)
concepts = [age_concept]
studies = [Study('test', 'Test study')]
trial_visits = [TrialVisit(studies[0], 'Week 1', 'Week', 1)]
patients = [Patient('SUBJ0', 'male', [])]
visits = [Visit(patients[0], 'visit1', None, None, None, None, None, None, [])]
# Create the observations
observations = [
Observation(patients[0], age_concept, visits[0], trial_visits[0],
date(2019, 3, 28), None, NumericalValue(28))]
Create a hierarchical ontology for the concepts, e.g., to create the following structure:
└ Ontology └ Age
# Create an ontology with one top node and a concept node
top_node = TreeNode('Ontology')
top_node.add_child(ConceptNode(concepts[0]))
ontology = [top_node]
Write the data collection to a format that can be loaded using transmart-copy:
collection = DataCollection(concepts, [], [], studies,
trial_visits, visits, ontology, patients, observations)
# Write collection to a temporary directory
# The generated files can be loaded into TranSMART with transmart-copy.
output_dir = mkdtemp()
copy_writer = TransmartCopyWriter(output_dir)
copy_writer.write_collection(collection)
Check examples/data_collection.py for a complete example.
Usage examples can be found in these projects:
fhir2transmart: a tool that translates core HL7 FHIR resources to the TranSMART data model.
claml2transmart: a tool that translates ontologies in ClaML format (e.g., ICD-10, available from DIMDI) to TranSMART ontologies.
csr2transmart: a custom data transformation and loading pipeline for a Dutch center for pediatric oncology.
transmart-hyper-dicer: a tool that reads a selection of data from a TranSMART instance using its REST API and loads it into another TranSMART instance.
Documentation
Full documentation of the package is available at Read the Docs.
Development
For a quick reference on software development, we refer to the software guide checklist.
Python versions
This packages is tested with Python versions >= 3.7.
Package management and dependencies
This project uses pip for installing dependencies and package management.
Dependencies should be added to setup.py in the install_requires list.
Testing and code coverage
Tests are in the tests folder.
The tests folder contains:
A test if files for transmart-copy are generated for fake data (file: test_transmart_loader)
A test that checks whether your code conforms to the Python style guide (PEP 8) (file: test_lint.py)
The testing framework used is PyTest
Tests can be run with python setup.py test
Documentation
Documentation should be put in the docs folder.
To generate html documentation run python setup.py build_sphinx
Coding style conventions and code quality
Check your code style with prospector
You may need run pip install .[dev] first, to install the required dependencies
License
Copyright (c) 2019 The Hyve B.V.
The TranSMART loader is licensed under the MIT License. See the file LICENSE.
Credits
This project was funded by the German Ministry of Education and Research (BMBF) as part of the project DIFUTURE - Data Integration for Future Medicine within the German Medical Informatics Initiative (grant no. 01ZZ1804D).
This package was created with Cookiecutter and the NLeSC/python-template.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file transmart_loader-1.4.1.tar.gz
.
File metadata
- Download URL: transmart_loader-1.4.1.tar.gz
- Upload date:
- Size: 17.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8722b2a681f22dafab5879c4c0caaf4775ec4a5ca9bdffbc0de477371f9b3506 |
|
MD5 | f2a59b0e319a78de39b0f6c6442c037e |
|
BLAKE2b-256 | deba7c78cd7417742d67796bacf18a0dec74c02b341abf994b37597a0e5567af |
File details
Details for the file transmart_loader-1.4.1-py3-none-any.whl
.
File metadata
- Download URL: transmart_loader-1.4.1-py3-none-any.whl
- Upload date:
- Size: 17.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70013645581f3c479fc7a906eecd3497c12845af7907539fbdba7a3897d7455a |
|
MD5 | ea70b7db08051a4bf475897fa0eb6dae |
|
BLAKE2b-256 | 318804c08cf11aff0a8affcb0454cfe6cb5e302d7ee1ae38bc85e56355627910 |