Seven MVP validators for clinical-trial transparency and traceability (POSE Phase I demo).
Project description
FAIROTrials Validators (MVP Bundle)
Project Context
This repository serves as the prototype for the FAIROTrials Commons project, an NSF POSE Phase 1 initiative led by Dr. Matt Vassar (Oklahoma State University). It provides seven lightweight, reproducible validators for assessing transparency and traceability in clinical trial metadata, outcome reporting, and data sharing. Each validator is independently executable and Docker-ready, providing a working proof-of-concept for a FAIR and Open Science (FAIRO) clinical trial validation ecosystem.
Seven lightweight validators for clinical trial transparency & traceability. Each validator is a single Python script with sample JSON and CSV output.
Validators
- FAIR Metadata — checks core metadata & persistent IDs (
fair_metadata_validator.py) - FDAAA Timeliness — flags on-time/late/missing results (
fdaaa_timeliness_validator.py) - Accessible Links — basic URL & HTTPS checks (
accessible_link_checker.py) - Outcome Switching — compares registered vs published primary outcomes (
outcome_switching_validator.py) - CONSORT‑Harms Completeness — key harms reporting elements (
consort_harms_validator.py) - Trial Linkage — registry ↔ publication bidirectional links (
linkage_validator.py) - Data Sharing Transparency — dataset DOI, code repo, license, access (
data_sharing_validator.py)
Quickstart (Windows)
Install Python 3.11+ then open PowerShell in this folder:
py validators\fair_metadata_validator.py --input samples\sample_fair_trials.json --out_csv fair_metadata_report.csv
py validators\fdaaa_timeliness_validator.py --input samples\sample_fdaaa_trials.json --out_csv fdaaa_timeliness_report.csv
py validators\accessible_link_checker.py --input samples\sample_access_links.json --out_csv accessible_links_report.csv
py validators\outcome_switching_validator.py --input samples\sample_outcomes.json --out_csv outcome_switching_report.csv
py validators\consort_harms_validator.py --input samples\sample_harms.json --out_csv consort_harms_report.csv
py validators\linkage_validator.py --registry samples\sample_registry_linkage.json --pubs samples\sample_publications.json --out_csv linkage_report.csv
py validators\data_sharing_validator.py --pubs samples\sample_data_sharing_pubs.json --out_csv data_sharing_report.csv
One‑click demo (Windows)
Double‑click run_all.bat to generate all 7 CSV reports.
License
Apache‑2.0 (see LICENSE)
Docker (reproducible runs)
Build locally:
docker build -t fairotrials-validators:latest .
Run a validator (writes CSV to your host working directory):
docker run --rm -v "$PWD:/work" -w /app fairotrials-validators:latest fairo-fdaaa --input samples/sample_fdaaa_trials.json --out_csv /work/fdaaa_timeliness_report.csv
CI builds a Docker image on every push (see .github/workflows/docker.yml).
PyPI Release (optional)
This repo includes a workflow to publish to PyPI on GitHub Releases. Before using it:
- Create a PyPI project name (e.g.,
fairotrials-validators). - Add a repository secret
PYPI_API_TOKEN(from PyPI > Account settings > API tokens). - Create a GitHub release (tag like
v0.1.0). The workflow builds and publishes.
Unified CLI
After installing (pip install -e .), you can run everything via fairo:
# Run all validators on bundled samples
fairo run-all-samples
# Or call a specific one
fairo fdaaa --input samples/sample_fdaaa_trials.json --out_csv fdaaa_timeliness_report.csv
Makefile (handy shortcuts)
make install # pip install -e .
make run-all # run all validators on samples (via CLI)
make docker-build # build Docker image
make docker-run # run one validator in Docker and write CSV to host
make package # build wheel and sdist
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 fairotrials_validators-0.1.0.tar.gz.
File metadata
- Download URL: fairotrials_validators-0.1.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af6064ae8cd0b2078507a01f5d3d2c7013515bdce78e0926a9142b7e18f444b5
|
|
| MD5 |
9520a020e2c069006e50e16bf239e5be
|
|
| BLAKE2b-256 |
d3dcf3b7da8004e58ee42fce7e96aa86b75c17fef0243838ca880dd5c65352f2
|
Provenance
The following attestation bundles were made for fairotrials_validators-0.1.0.tar.gz:
Publisher:
release_pypi.yml on mattvassar-ux/fairotrials-validators
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fairotrials_validators-0.1.0.tar.gz -
Subject digest:
af6064ae8cd0b2078507a01f5d3d2c7013515bdce78e0926a9142b7e18f444b5 - Sigstore transparency entry: 675196508
- Sigstore integration time:
-
Permalink:
mattvassar-ux/fairotrials-validators@3d24a05817457ddd4ed1bc58c9eb5778fce3ffdf -
Branch / Tag:
refs/tags/v7.0 - Owner: https://github.com/mattvassar-ux
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release_pypi.yml@3d24a05817457ddd4ed1bc58c9eb5778fce3ffdf -
Trigger Event:
release
-
Statement type:
File details
Details for the file fairotrials_validators-0.1.0-py3-none-any.whl.
File metadata
- Download URL: fairotrials_validators-0.1.0-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b0cde92e1afb13dea982d4bfec2e55a909bcb86b177f915a0d6aec19cb43820
|
|
| MD5 |
2b1e6ca02219a70b56ff101b50a513b9
|
|
| BLAKE2b-256 |
159515e889a41ae38318e0b643d25c19732774f024d68836649bbfb58bd7b036
|
Provenance
The following attestation bundles were made for fairotrials_validators-0.1.0-py3-none-any.whl:
Publisher:
release_pypi.yml on mattvassar-ux/fairotrials-validators
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fairotrials_validators-0.1.0-py3-none-any.whl -
Subject digest:
2b0cde92e1afb13dea982d4bfec2e55a909bcb86b177f915a0d6aec19cb43820 - Sigstore transparency entry: 675196538
- Sigstore integration time:
-
Permalink:
mattvassar-ux/fairotrials-validators@3d24a05817457ddd4ed1bc58c9eb5778fce3ffdf -
Branch / Tag:
refs/tags/v7.0 - Owner: https://github.com/mattvassar-ux
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release_pypi.yml@3d24a05817457ddd4ed1bc58c9eb5778fce3ffdf -
Trigger Event:
release
-
Statement type: