Generate clinical data dictionaries using language models
Project description
DataAtlas: Automatic Generation of Data Dictionaries
DataAtlas is a Python package to automatically generate structured data dictionaries and schema insights from tabular datasets using large language models (LLMs).
It supports CSV, Excel, and JSON datasets, and produces rich metadata including column descriptions, table summaries, and inferred relationships.
Features
Metadata Generation
- Column Descriptions: AI-generated semantic meaning for each field
- Table Summaries: Context-aware descriptions of each table
- Smart Sampling: Automatic data type detection with representative values
- Pattern Recognition: Identification of IDs, timestamps, clinical codes, etc.
Relationship Inference
- Automatic detection of relationships across tables
- Confidence scoring based on name similarity and value overlap
- Cardinality estimation (1:1, 1:N, N:M)
- Deduplication of redundant relationships
Schema Visualization
- Generates Mermaid ER diagrams (
.mmd) - No system dependencies (no Graphviz required)
- Compatible with GitHub and https://mermaid.live/
Multi-format Outputs
dictionary.json→ full structured metadatadictionary_summary.md→ human-readable documentationrelationships.json→ structured relationshipsrelationships_summary.md→ readable relationshipsschema_diagram.mmd→ ER diagram
Flexible LLM Support
Supports multiple backends through a unified interface:
- OpenAI models (e.g., GPT-4o, GPT-4o-mini)
- Google Gemini models
- Local models via Ollama (recommended for privacy)
Installation
pip install data-atlas
LLM Setup (Important)
Option 1 — Local models (recommended)
Install :contentReference[oaicite:0]{index=0}:
# install ollama (see official website)
ollama pull llama3.1
Option 2 — API-based models
Set your API keys for:
- OpenAI
- Google Gemini
Usage
Command Line (main usage)
After installation, a command is automatically available:
generate-dictionary <folder_path> --output-dir <output_dir>
Example
generate-dictionary data/MIMIC --output-dir output --model llama3.1
⚙️ Parameters
<folder_path>: Folder containing dataset files (CSV, Excel, JSON)--output-dir: Output directory--model: LLM model (default:llama3.1)--domain: Optional domain (e.g.,clinical)--no-relationships: Disable relationship inference--min-overlap: Minimum overlap % (default: 80)--min-confidence: Minimum confidence (default: 0.7)
Alternative Execution (if CLI not found)
If generate-dictionary is not recognized, run:
python -m data_dictionary_generator.generate_dictionary <folder_path> --output-dir <output_dir>
This avoids PATH issues.
Output Structure
After execution, the output directory will contain:
Data Dictionary
dictionary.jsondictionary_summary.md
Relationships
relationships.jsonrelationships_summary.md
Schema
schema_diagram.mmd
Example Output
Table-level
- Table name
- Number of rows
- Table description
Column-level
- Column name
- Data type
- Sample values
- AI-generated description
- Null percentage
Relationships
- Source and target columns
- Relationship type (1:1, 1:N, N:M)
- Confidence score
Visualization
To visualize schema diagrams:
- Open https://mermaid.live/
- Paste the
.mmdfile content - Export as PNG or SVG
Design Principles
- Augmentation, not replacement: supports expert workflows
- Scalable: handles large datasets via sampling
- Portable: no heavy system dependencies
- Privacy-aware: supports fully local execution
Troubleshooting
1. Command not found
If this fails:
generate-dictionary
Try:
python -m data_dictionary_generator.generate_dictionary ...
Or ensure your Python Scripts/ folder is in PATH.
2. Model errors
Ollama
ollama pull llama3.1
API models
Ensure API keys are set correctly.
3. Missing dependencies
Reinstall:
pip install --upgrade data-atlas
Contributing
- Fork the repository
- Create a branch
- Commit changes
- Push
- Open a pull request
License
MIT License — see LICENSE file.
Author
Raffaele Giancotti
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file data_atlas-0.0.6.tar.gz.
File metadata
- Download URL: data_atlas-0.0.6.tar.gz
- Upload date:
- Size: 19.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03a669b1c32b39670a590f881522aa93eb13243c245ffeef6ef5eb93adf6d692
|
|
| MD5 |
8edba092a8ee3d66b3968123e88f8434
|
|
| BLAKE2b-256 |
7499cb236155a06457b5e55ca9e3c383bef1024b8e0d00ef53d85d7f04c3f7aa
|
File details
Details for the file data_atlas-0.0.6-py3-none-any.whl.
File metadata
- Download URL: data_atlas-0.0.6-py3-none-any.whl
- Upload date:
- Size: 23.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f58ae6d3f95554b291bc81090fa09211a50b090347b0932d0e431123361ecc68
|
|
| MD5 |
a605cbd97bf82ace1d25e83a56814eb8
|
|
| BLAKE2b-256 |
a053330c0b099dafbd1acf27551a61562a1ec8de6a856bee54416b9e96c033c9
|