Skip to main content

Tablassert

PyPI version PyPI Downloads CI Docs License

Extract knowledge assertions from tabular data into NCATS Translator-compliant KGX NDJSON, declaratively, with entity resolution built in and optional quality control.

Tablassert turns biomedical spreadsheets (Excel, CSV, TSV) into knowledge graphs ready for NCATS Translator. Declare how your columns map to subject-predicate-object statements in YAML; Tablassert resolves free text to standard CURIEs, attaches provenance and statistical annotations, and emits KGX-compliant nodes and edges.

Full Documentation: installation guides, tutorial, configuration reference, and API docs.

Statement of need

Biomedical knowledge lives in spreadsheets: association tables, assay results, curated gene-disease lists. Getting those rows into an NCATS Translator knowledge graph means writing an ingest that maps columns to Biolink statements, resolves free text ("TP53", "lung cancer") to standard CURIEs, and records provenance, terms of use, and statistical annotations. Today that ingest is Python code maintained per source, and entity resolution usually means calling a hosted name-resolution service at build time.

Tablassert replaces the per-source code with a declarative YAML mapping plus an embedded, offline entity-resolution database built from RENCI BABEL exports, so a build is reproducible, auditable, and network-free. It is aimed at Translator ingest authors and knowledge-graph data engineers who hold tabular biomedical sources, and at bioinformatics groups that want a validated KGX output without writing a transform pipeline. The configuration model and the Biolink/KGX contracts it emits follow current NCATSTranslator/translator-ingests practice, and each build can emit the Resource Ingest Guide (RIG) metadata those submissions require.

Getting help

Quick Start

pip install "tablassert[cli]"

Given a CSV of gene-disease associations with p-values and sample sizes, declare the mapping in a table config (table.yaml):

template:
  source:
    kind: text
    local: ./gene-disease.csv
    url: [https://example.com/data.csv]
    row_slice: [1, auto]
    delimiter: ","
  statement:
    subject: { method: column, encoding: A, prioritize: [Gene] }
    predicate: associated_with
    object: { method: column, encoding: B, prioritize: [Disease] }
  provenance: { repo: PMID, publication: "12345678" }
  annotations:
    - { annotation: p_value, method: column, encoding: C }
    - { annotation: study_size, method: column, encoding: D }

Wrap it in a graph config (graph.yaml) pointing at your fullmap entity-resolution database and carrying the required rig: metadata for the generated Resource Ingest Guide. Build or download that database once first (tablassert build-fullmap, a multi-GB download; see the Fullmap guide), which makes ./fullmap below the right path:

name: MY_KG
version: 1.0.0
tables:
  - ./table.yaml
fullmap: ./fullmap
rig:
  source_info:
    infores_id: infores:my-kg
    terms_of_use_info:
      terms_of_use_url: https://example.org/terms
    data_access_locations:
      - My source downloads - https://example.org/downloads
    source_status: maintained_regular_updates
  ingest_info:
    utility: Gene-disease associations support Translator disease-mechanism queries.
    scope: Gene-disease associations extracted from tabular sources.
  provenance_info:
    contributions:
      - "Author Name - code author, data modeling"
  artifact_base_url: https://example.org/my-kg
  artifact_base_path: ./published/my-kg

Build the knowledge graph:

tablassert build-kg graph.yaml

Output is one JSON object per line: nodes with Biolink categories, edges with annotations. The edge sample below is abridged; real records also carry provenance fields such as knowledge_level, agent_type, sources, and original_subject/original_object.

{"id":"HGNC:11998","name":"TP53","category":["biolink:Gene"],"in_taxon":["NCBITaxon:9606"],"provided_by":["infores:my-kg"]}
{"id":"MONDO:0008903","name":"lung cancer","category":["biolink:Disease"],"in_taxon":["NCBITaxon:9606"],"provided_by":["infores:my-kg"]}
{"id":"8f41c2d7-9b3e-35c1-a4e8-6d2f9a0c5b71","subject":"HGNC:11998","predicate":"biolink:associated_with","object":"MONDO:0008903","p_value":"1.0000e-03","statistical_significance_qualifier":"very_strongly_significant","has_supporting_studies":{"PMID:12345678":{"id":"PMID:12345678","name":"gene-disease.yaml SECTION 1","study_size":450,"has_study_results":[{"id":"row:2"}]}},"publications":["PMID:12345678"]}

See the Tutorial for the full walkthrough.

Key Features

  • Declarative YAML configuration: define data transformations without writing code
  • Built-in entity resolution: map free text to genes, diseases, and chemicals with standard CURIEs, taxonomic filtering, and provenance, backed by an embedded redb database
  • Optional quality control: a four-stage audit (exact match, fuzzy match, abbreviation expansion, then SapBERT embeddings) flags low-confidence mappings
  • KGX compliance: emits NCATS Translator-compatible node/edge NDJSON with Biolink categories and predicates
  • Performance & reproducibility: lazy Polars pipelines and a deterministic UV-based development environment

Installation

pip install tablassert

To use the Python API, install Tablassert into your project's environment with pip install "tablassert" (or uv add tablassert). To get the tablassert command as a standalone tool, use uv tool install "tablassert[cli]"; note that a tool install is isolated and does not expose the Python API to your project. Other extras are opt-in:

Extra Adds Install
cli tablassert command and rich terminal progress pip install "tablassert[cli]"
rt CPU-compatible Polars runtime pip install "tablassert[rt]"
aria2 bundled aria2c downloader, used automatically by build-fullmap when installed (Linux/Windows wheels only) pip install "tablassert[aria2]"
qc four-stage QC audit (exact match, fuzzy match, abbreviation expansion, and SapBERT embeddings) pip install "tablassert[qc]"
log loguru-backed file/progress logging (rotation, enqueue) pip install "tablassert[log]"

Reaching a feature whose extra is missing never produces a bare ModuleNotFoundError: the failure names the missing package and the install command that fixes it. QC is opt-in at build time (build-kg --qc). See the Installation guide for the full matrix, per-command preflight behavior, and the CLI Reference for every flag.

Entity Resolution API

from pathlib import Path
from tablassert.lib import resolve_many

results = resolve_many(col="gene", entities=["TP53", "BRCA1"], fullmap=Path("/path/to/fullmap"), taxon="9606")
# [{"original_gene": "TP53", "gene": "HGNC:11998", "gene_name": "TP53", ...}, ...]

Point resolve_many() at a fullmap database to resolve any iterable of entity strings to CURIEs, no LazyFrame setup or NLP preprocessing required. See the Batch Resolution API for the full reference.

Documentation

Developing

uv sync --group dev --extra cli --extra qc --extra log
uv run maturin develop --manifest-path rust/Cargo.toml
make check

See CONTRIBUTING.md for the full development loop, quality gates, and pull request guidelines.

Citation

If you use Tablassert, please cite it as described in CITATION.cff. The approach is described in:

Skye Lane Goetz, Amy K. Glen, and Gwênlyn Glusman. "MicrobiomeKG: bridging microbiome research and host health through knowledge graphs." Frontiers in Systems Biology 5 (2025). doi:10.3389/fsysb.2025.1544432

License

Apache License 2.0

Contributors

Metadata

Release files for tablassert 22.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tablassert 22.3.0
File Size Uploaded Provenance Actions
tablassert-22.3.0.tar.gz 374.6 kB With provenance Details for tablassert-22.3.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for tablassert 22.3.0
File Actions
tablassert-22.3.0-cp315-cp315-macosx_11_0_arm64.whl CPython 3.15 CPython 3.15 macOS 11.0+ ARM64 Details for tablassert-22.3.0-cp315-cp315-macosx_11_0_arm64.whl
tablassert-22.3.0-cp314-cp314-manylinux_2_38_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.38+ x86-64 Details for tablassert-22.3.0-cp314-cp314-manylinux_2_38_x86_64.whl
tablassert-22.3.0-cp314-cp314-macosx_11_0_arm64.whl CPython 3.14 CPython 3.14 macOS 11.0+ ARM64 Details for tablassert-22.3.0-cp314-cp314-macosx_11_0_arm64.whl
tablassert-22.3.0-cp313-cp313-manylinux_2_38_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.38+ x86-64 Details for tablassert-22.3.0-cp313-cp313-manylinux_2_38_x86_64.whl
tablassert-22.3.0-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details for tablassert-22.3.0-cp313-cp313-macosx_11_0_arm64.whl
tablassert-22.3.0-cp312-cp312-manylinux_2_38_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.38+ x86-64 Details for tablassert-22.3.0-cp312-cp312-manylinux_2_38_x86_64.whl
tablassert-22.3.0-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details for tablassert-22.3.0-cp312-cp312-macosx_11_0_arm64.whl
tablassert-22.3.0-cp311-cp311-manylinux_2_38_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.38+ x86-64 Details for tablassert-22.3.0-cp311-cp311-manylinux_2_38_x86_64.whl
tablassert-22.3.0-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details for tablassert-22.3.0-cp311-cp311-macosx_11_0_arm64.whl

Total release size: 15.6 MB

Release files / tablassert-22.3.0.tar.gz

Download URL tablassert-22.3.0.tar.gz
Size 374.6 kB
Tags Source
SHA-256 checksum
How to use checksums
fa91e059cc5a85b590ca74461fbb036cb84d63e0a2b59b0ae9efe75d4d62f84f
BLAKE2b-256 checksum
How to use checksums
0f3f33acd6ed7378cdc987bcd3caaa895d6d0ac5c0635fbdab86c95f306aa184
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 9, 2026.

Transparency log

Release files / tablassert-22.3.0-cp315-cp315-macosx_11_0_arm64.whl

Download URL tablassert-22.3.0-cp315-cp315-macosx_11_0_arm64.whl
Size 1.6 MB
Tags CPython 3.15 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
e116dda391231b47644851711a31af8464e0310b18c540e0c3a4718e2b686db0
BLAKE2b-256 checksum
How to use checksums
5da3083ebdaffa53d8d55859f37816c997e6e156ab1f18a8354e002e40dc5c1a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 9, 2026.

Transparency log

Release files / tablassert-22.3.0-cp314-cp314-manylinux_2_38_x86_64.whl

Download URL tablassert-22.3.0-cp314-cp314-manylinux_2_38_x86_64.whl
Size 1.8 MB
Tags CPython 3.14 Linux glibc 2.38+ x86-64
SHA-256 checksum
How to use checksums
fb20444070fcbabdd117f8e177dbbb9d550fc857ecdbc5fc7c811729d207e82a
BLAKE2b-256 checksum
How to use checksums
f36c1e1a141026726f0584b61ec5a420767b737761e270b7a8072e08d7dd5737
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 9, 2026.

Transparency log

Release files / tablassert-22.3.0-cp314-cp314-macosx_11_0_arm64.whl

Download URL tablassert-22.3.0-cp314-cp314-macosx_11_0_arm64.whl
Size 1.6 MB
Tags CPython 3.14 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
cef785d981ffc61e2c8e0a987ec911e29f167ec28d27ed270d82e03ca06a82f4
BLAKE2b-256 checksum
How to use checksums
f54609ea0be5f78fd4122f31fbc2d74122aef8f67fcf2e2c13c9bdf6647ee771
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 9, 2026.

Transparency log

Release files / tablassert-22.3.0-cp313-cp313-manylinux_2_38_x86_64.whl

Download URL tablassert-22.3.0-cp313-cp313-manylinux_2_38_x86_64.whl
Size 1.8 MB
Tags CPython 3.13 Linux glibc 2.38+ x86-64
SHA-256 checksum
How to use checksums
5563b2426b309f61f4296b075f94c44d71da9093b418595044ca872bdc07cf48
BLAKE2b-256 checksum
How to use checksums
fff82706bd37434ac1dfe6a0dfb2f67b8eb6e8d8dbbd973d5b5dffa097993062
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 9, 2026.

Transparency log

Release files / tablassert-22.3.0-cp313-cp313-macosx_11_0_arm64.whl

Download URL tablassert-22.3.0-cp313-cp313-macosx_11_0_arm64.whl
Size 1.6 MB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
880df88b95e1fbbd2b61a54aa63be2c0aa8a9107b7c0f9a57628292ca4736de9
BLAKE2b-256 checksum
How to use checksums
1bee415393cf6b15488780a29a9a3404d44ad6f4585d52e51a5308365697e77e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 9, 2026.

Transparency log

Release files / tablassert-22.3.0-cp312-cp312-manylinux_2_38_x86_64.whl

Download URL tablassert-22.3.0-cp312-cp312-manylinux_2_38_x86_64.whl
Size 1.8 MB
Tags CPython 3.12 Linux glibc 2.38+ x86-64
SHA-256 checksum
How to use checksums
a6c7ddfd9fce85965bfed553aa4ff95563cecb112858a12dea6185c9ba753982
BLAKE2b-256 checksum
How to use checksums
56b296371afbabbff10ee22e662c69573228c3052d9ed93a61fbc9d320efe718
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 9, 2026.

Transparency log

Release files / tablassert-22.3.0-cp312-cp312-macosx_11_0_arm64.whl

Download URL tablassert-22.3.0-cp312-cp312-macosx_11_0_arm64.whl
Size 1.6 MB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
19a4d95c579aeb9e28ae266863a8a09077be7a8a1c6a7516499f7741a14c5c3d
BLAKE2b-256 checksum
How to use checksums
dff64d4f73275ecfde2af6b77e9b8fb298d06da41459d3e69fcfda10e2b04610
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 9, 2026.

Transparency log

Release files / tablassert-22.3.0-cp311-cp311-manylinux_2_38_x86_64.whl

Download URL tablassert-22.3.0-cp311-cp311-manylinux_2_38_x86_64.whl
Size 1.8 MB
Tags CPython 3.11 Linux glibc 2.38+ x86-64
SHA-256 checksum
How to use checksums
4c734923530cfbc8e17c59c7359676cfed0f6a1ecda31c8c1f5aa71ee1e9089e
BLAKE2b-256 checksum
How to use checksums
ddd704e9cde92714e3489a751883f096d6ebfc6f8efd2f426d155a916e4adfc5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 9, 2026.

Transparency log

Release files / tablassert-22.3.0-cp311-cp311-macosx_11_0_arm64.whl

Download URL tablassert-22.3.0-cp311-cp311-macosx_11_0_arm64.whl
Size 1.6 MB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
b00ae97a1d94b5a0a00f27137f60457db22435a11cb1d9479f463362eb048e04
BLAKE2b-256 checksum
How to use checksums
3f6da7e0d8e8f77a6874fcbc7a17f1d7b0ee37adfa77a7cab48845b97363ffb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

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 Nov 9, 2026.

Transparency log

Security for tablassert 22.3.0

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.

Full provenance

All 10 files in this release have been uploaded with provenance metadata.

Select from 10 files

Attestation for tablassert-22.3.0.tar.gz

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 Nov 9, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

22.3.0 This release

10 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page