GWAS Association Tools
A command-line tool for genomic-wide association studies (GWAS) data validation and analysis.
Features
- Validate:
- Input: File path of GWAS Submission template that contains top associations
- Output: Validation report of top associations
Installation
Install from PyPI:
pip install gwas-assoc-tools
Usage
# Basic validation command
gwas-assoc validate <template excel file path>
# For help
gwas-assoc --help
gwas-assoc validate --help
Development
Setup
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Install dependencies
uv sync --all-groups
# Activate virtual environment
source .venv/bin/activate
Building and Installation
# Build the package (creates .whl and .tar.gz in dist/)
uv build
# Install your new package in development mode
uv sync --all-groups
Release
Publishing is done by creating a GitHub Release. The release workflow builds the
package with uv and publishes to PyPI using trusted publishing, so no local
PyPI credentials or GitHub secrets are needed.
Before the first release, configure the PyPI project gwas-assoc-tools with a
GitHub trusted publisher:
- Owner:
EBISPOT - Repository:
gwas-assoc-tools - Workflow:
publish.yml - Environment:
pypi
Configure the matching GitHub environment pypi; add reviewer protection if the
maintainers want manual approval.
Testing
TODO
Running with Real Files
# Run the CLI command through uv
# For failed test file
uv run gwas-assoc validate ./tests/test_fail.xlsx
# For successful test file
uv run gwas-assoc validate ./tests/test_success.xlsx
# Or after activating the shell
source .venv/bin/activate
# For failed test file
gwas-assoc validate ./tests/test_fail.xlsx
# For successful test file
gwas-assoc validate ./tests/test_success.xlsx
Dependency Management
# Add a new dependency
uv add new-package
# Add a development dependency
uv add --group dev pytest-mock
# Check for dependency updates
uv lock --dry-run --upgrade
# Update dependencies
uv lock --upgrade
Code Quality
# Run formatting
uv run black .
uv run isort .
# Run linting
uv run ruff check .
# Run type checking
uv run mypy src
# Run all formatting checks
uv run pre-commit run --all-files
Documentation
Please find the Confluence page here: https://embl.atlassian.net/wiki/spaces/GOCI/pages/57606184/GWAS+Associations+Tools
License
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 gwas_assoc_tools-0.1.3.tar.gz.
File metadata
- Download URL: gwas_assoc_tools-0.1.3.tar.gz
- Upload date:
- Size: 14.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d837c633e3dd0480d442cbada07e610945c4c01fd7b04d650a2644c01747e616
|
|
| MD5 |
20f43ff61db458bb85f709e1b9eb8d8b
|
|
| BLAKE2b-256 |
817993c9f02073f604992ee4e93c2ef4dee022ebab3ff567883999980908d6aa
|
Provenance
The following attestation bundles were made for gwas_assoc_tools-0.1.3.tar.gz:
Publisher:
publish.yml on EBISPOT/gwas-assoc-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gwas_assoc_tools-0.1.3.tar.gz -
Subject digest:
d837c633e3dd0480d442cbada07e610945c4c01fd7b04d650a2644c01747e616 - Sigstore transparency entry: 2115041461
- Sigstore integration time:
-
Permalink:
EBISPOT/gwas-assoc-tools@5fbf3948ce9d64f2323dc2c28e20998d6048d4b5 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/EBISPOT
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5fbf3948ce9d64f2323dc2c28e20998d6048d4b5 -
Trigger Event:
release
-
Statement type:
File details
Details for the file gwas_assoc_tools-0.1.3-py3-none-any.whl.
File metadata
- Download URL: gwas_assoc_tools-0.1.3-py3-none-any.whl
- Upload date:
- Size: 14.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5f4df41a5542409df6dcf6e1900490b9bb335ef12def354292970c87c1a90de0
|
|
| MD5 |
d8550dcc09d04b599a723681e665fe35
|
|
| BLAKE2b-256 |
3ad69dca1c1b74d48bce7cdbc9375a1be9792578c05ca2ece99d9a9fc9ae9219
|
Provenance
The following attestation bundles were made for gwas_assoc_tools-0.1.3-py3-none-any.whl:
Publisher:
publish.yml on EBISPOT/gwas-assoc-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
gwas_assoc_tools-0.1.3-py3-none-any.whl -
Subject digest:
5f4df41a5542409df6dcf6e1900490b9bb335ef12def354292970c87c1a90de0 - Sigstore transparency entry: 2115041713
- Sigstore integration time:
-
Permalink:
EBISPOT/gwas-assoc-tools@5fbf3948ce9d64f2323dc2c28e20998d6048d4b5 -
Branch / Tag:
refs/tags/v0.1.3 - Owner: https://github.com/EBISPOT
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@5fbf3948ce9d64f2323dc2c28e20998d6048d4b5 -
Trigger Event:
release
-
Statement type: