Streamlined Data Transformation to OMOP
Carrot Transform automates data transformation processes and facilitates the standardisation of datasets to the OMOP vocabulary, simplifying the integration of diverse data sources.
Carrot Mapper is a webapp which allows the user to use the metadata (as output by WhiteRabbit) from a dataset to produce mapping rules to the OMOP standard, in the JSON format. These can be ingested by Carrot Transform to perform the mapping of the contents of the dataset to OMOP.
Carrot Transform transforms input data into tab separated variable files of standard OMOP tables, with concepts mapped according to the provided rules (generated from Carrot Mapper).
Quick Start
To have the project up and running, please follow the Quick Start Guide.
If you need to perform development, there's a brief guide here to get the tool up and running.
Formatting and Linting
This project is using ruff to check formatting and linting.
The only dependency is the uv command line tool.
The .vscode/tasks.json file contains a task to run this tool for the currently open file.
The commands can be run on thier own (in the root folder) like this ...
# reformat all the files in `./`
λ uv run ruff format .
# run linting checks all the files in `./`
λ uv run ruff check .
# check and fix all the files in `./`
λ uv run ruff check --fix .
# check and fix all the files in `./` but do so so more eggrsively
λ uv run ruff check --fix --unsafe-fixes .
SQLAlchemy Workflow
Carrot-Transform can read input tables from SQLAlchemy.
This is experimental, and requires specifying a connection-string as --input-db-url instead of an input dir folder.
The person-file parameter and carrot-mapper workflow should still be used, as if working with .csv files, but carrot-transform can read from an SQLAlchemy database.
- Extract/export some rows from the various tables
- something like
SELECT column_name(s) FROM patients LIMIT 1000;is written topatients.csv
- something like
- the usual scan reports are performed on these subsets
- when carrot-transform is invoked instead of
--input-dirone specifies--input-db-urlwith a database connection string- the
--person-fileparameter should still point to the equivalent ofperson_tablename.csv - the
--rules-fileparameter needs to refer to a file on the disk as usual
- the
- carrot transform will still write data to
--output-dirand otherwise operate as normal- The following parameters have undefined behaviour with this functionality
--write-mode--saved-person-id-file--use-input-person-ids--last-used-ids-file
- The following parameters have undefined behaviour with this functionality
Release Procedure
To release a new version of carrot-transform follow the steps outlined on the documentation website.
License
This repository's source code is available under the MIT license.
Metadata
Release files for carrot-transform 0.7.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| carrot_transform-0.7.5.tar.gz | 248.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| carrot_transform-0.7.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 512.0 kB
Release files / carrot_transform-0.7.5.tar.gz
| Download URL | carrot_transform-0.7.5.tar.gz |
|---|---|
| Size | 248.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4299f3e3acd7688be226b80acd37e67230099e0327dc336338e84310cc899026
|
|
BLAKE2b-256 checksum How to use checksums |
1c5b1978d106650a5fdaf8c56dd06708af92bd92d00079f2143a6c8d4dea2674
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 22, 2026.
Transparency logRelease files / carrot_transform-0.7.5-py3-none-any.whl
| Download URL | carrot_transform-0.7.5-py3-none-any.whl |
|---|---|
| Size | 263.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
46ca284dbf6488a2ff463874c5e5e8dabcd7bffa99a2c50c0e638816a9ec91b0
|
|
BLAKE2b-256 checksum How to use checksums |
3d7a48945162d6fbe96466886bc4742f00b4b74bf4844a2c9f205b887a35083e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.7
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jan 22, 2026.
Transparency log