A Suite of Genotyping Tools for Genome-Wide Association Study and Genomic Selection
Project description
JanusX
Project Overview
JanusX is a high-performance, ALL-in-ONE suite for quantitative genetics that unifies genome-wide association studies (GWAS) and genomic selection (GS). It incorporates well-established GWAS methods (LM, LMM, and FarmCPU) and a flexible GS toolkit including GBLUP and various machine learning models. It also combines routine genomic analyses, from data processing to publication-ready visualisation.
It provides significant performance improvements over tools like GEMMA, GCTA, and rMVP, especially in multi-threaded computation.
Installation
PyPI
pip install janusx
From Source
git clone https://github.com/FJingxian/JanusX.git
cd JanusX
pip install .
Building from source requires a Rust toolchain (maturin will compile the native core).
Pre-compiled Releases
We provide pre-compiled binaries on the GitHub Releases page for Windows, Linux, and macOS. Download and extract the archive, then run the executable directly.
Running the CLI
jx -h
jx <module> [options]
Note that running jx -h might take a while at first! This is because the Python interpreter is compiling source code into the pycache directory. Subsequent runs will use the pre-compiled code and load much faster!
Available Modules
| Module | Description |
|---|---|
gwas |
Unified GWAS wrapper (LM/LMM/fastLMM/FarmCPU) |
gs |
Genomic Selection (GBLUP, rrBLUP, BayesA/B/Cpi) |
postGWAS |
Visualization and annotation |
grm |
Genetic relationship matrix calculation |
pca |
Principal component analysis |
sim |
Genotype and phenotype simulation |
Quick Start Examples
GWAS Analysis
# Using unified gwas module (select one or more models)
jx gwas --vcf data.vcf.gz --pheno pheno.txt --lmm -o results
# Run multiple models at once
jx gwas --vcf data.vcf.gz --pheno pheno.txt --lm --lmm --fastlmm --farmcpu -o results
# With PLINK format
jx gwas --bfile genotypes --pheno phenotypes.txt --grm 1 --qcov 3 --thread 8 -o results
# With diagnostic plots (SVG)
jx gwas --vcf data.vcf.gz --pheno pheno.txt --lmm --plot -o results
Genomic Selection
# Run both GS models
jx gs --vcf data.vcf.gz --pheno pheno.txt --GBLUP --rrBLUP -o results
# Specific models
jx gs --vcf data.vcf.gz --pheno pheno.txt --GBLUP -o results
# Bayesian GS models
jx gs --vcf data.vcf.gz --pheno pheno.txt --BayesA --BayesB --BayesCpi -o results
# With PCA-based dimensionality reduction
jx gs --vcf data.vcf.gz --pheno pheno.txt --GBLUP --pcd -o results
Visualization
# Generate Manhattan and QQ plots
jx postGWAS -f results/*.lmm.tsv --threshold 1e-6
# With SNP annotation
jx postGWAS -f results/*.lmm.tsv --threshold 1e-6 -a annotation.gff --annobroaden 50
Test data in example is from genetics-statistics/GEMMA, published in Parker et al, Nature Genetics, 2016
Population Structure
# Compute GRM
jx grm --vcf data.vcf.gz -o results
# PCA analysis
jx pca --vcf data.vcf.gz --dim 5 --plot --plot3D -o results
Input File Formats
Phenotype File
Tab-delimited, first column is sample ID, subsequent columns are phenotypes:
| samples | trait1 | trait2 |
|---|---|---|
| indv1 | 10.5 | 0.85 |
| indv2 | 12.3 | 0.92 |
Genotype Files
- VCF:
.vcfor.vcf.gz - PLINK:
.bed/.bim/.fam(use prefix)
Architecture
Core Libraries
-
python/janusx/pyBLUP - Core statistical engine
- GWAS implementations (LM, LMM, FarmCPU)
- QK matrix calculation with memory-optimized chunking
- PCA computation with randomized SVD
- Cross-validation utilities
-
python/janusx/gfreader - Genotype file I/O
- VCF reader
- PLINK binary reader (.bed/.bim/.fam)
- NumPy format support
-
python/janusx/bioplotkit - Visualization
- Manhattan and QQ plots
- PCA visualization (2D and 3D GIF)
- LD block visualization
Native Core (src/)
Rust kernels for fast linear algebra and association testing.
CLI Entry Points (python/janusx/script/)
Each module corresponds to a CLI command. The launcher script (jx) dispatches to script/<name>.py.
Key Features
- Two Core Functions: Unified GWAS and GS workflows in one tool
- Easy to Use: Simple CLI interface, minimal configuration required
- High Performance: Optimized LMM computation with multi-threading
Key Algorithms
GWAS Methods
| Method | Description | Best For |
|---|---|---|
| Linear Model (LM) | Standard GLM for association testing | Large datasets without population structure |
| Linear Mixed Model (LMM) | Incorporates kinship matrix to control population structure | Most GWAS scenarios |
| fastLMM | Fixed-lambda mixed model for speed | Fast approximate screening |
| FarmCPU | Iterative fixed/random effect alternation | High power with strict false positive control |
GS Methods
| Method | Description | Best For |
|---|---|---|
| GBLUP | Genomic Best Linear Unbiased Prediction | Baseline prediction |
| rrBLUP | Ridge Regression BLUP | Additive genetic value estimation |
| BayesA | Marker effects with scaled-t prior | Polygenic traits with heavier tails |
| BayesB | Variable selection with marker-specific variance | Sparse genetic architecture |
| BayesCpi | Variable selection with shared variance | Sparse architecture with shared variance |
Kinship Methods
- Method 1 (VanRaden): Centered GRM (default)
- Method 2 (Yang): Standardized/weighted GRM
Python Version
Requires Python 3.10+
Test Data
Example data in example/ directory from Parker et al, Nature Genetics, 2016 (via GEMMA project)
Citation
@software{JanusX,
title = {JanusX: High-performance GWAS and Genomic Selection Suite},
author = {Jingxian FU},
url = {https://github.com/FJingxian/JanusX}
}
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 Distributions
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 janusx-1.0.10.tar.gz.
File metadata
- Download URL: janusx-1.0.10.tar.gz
- Upload date:
- Size: 2.9 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b02685e12ed12147aeaf51df3e4356ffa39cc5b1e0b8261b5ace978d9230142e
|
|
| MD5 |
0c163d2637c2aa76b4fd41a5d9a1c527
|
|
| BLAKE2b-256 |
13eefbc5e47d01b52a6865fc2dd37d1d32ba5f2002cc528d132b900a6ea01d98
|
File details
Details for the file janusx-1.0.10-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: janusx-1.0.10-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 563.8 kB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c3acdad3ef22634a4073a6c6802560b1e174c481d55d32ac68902dca2b90853
|
|
| MD5 |
99abd0808aa2d5700bb6d5fa5aecb59b
|
|
| BLAKE2b-256 |
2d8077e33152407853ff5e46b73c8bc351ae9cf8003b7fcee1b90ade202ef1df
|
File details
Details for the file janusx-1.0.10-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: janusx-1.0.10-cp313-cp313-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 670.1 kB
- Tags: CPython 3.13, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dd26fa01f2e7502427d2be74f9c4096e771dbee84fbdb083e4e5636f9c34a202
|
|
| MD5 |
e6aef0790f9d31148e634c1a50ed9c29
|
|
| BLAKE2b-256 |
02459767c4b7f5906ecb5e0db5270b2331dc4b9e9c819a27194a33872e0a43a8
|
File details
Details for the file janusx-1.0.10-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: janusx-1.0.10-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 593.5 kB
- Tags: CPython 3.13, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0a742416e532fa70b0b132f5985c42249a1f5b6908b24455cc88aca8cafd0f37
|
|
| MD5 |
70121c02b6897f9538eb00147930a325
|
|
| BLAKE2b-256 |
053f264b94bcb12d50ba2d103199dd6066770462bfc6ab70cb3d58fa75de36ef
|
File details
Details for the file janusx-1.0.10-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: janusx-1.0.10-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 564.6 kB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ad915f0e1afdad226ee46280341c4b89131d3b8a227e907213f0a717c0cdf1e
|
|
| MD5 |
49db12f5d8b3d9fe72a5487a8d34b8ec
|
|
| BLAKE2b-256 |
97993adedb4783c95128ffd909c85699ee74d1672e97bfbeceee13f5c582427e
|
File details
Details for the file janusx-1.0.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: janusx-1.0.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 670.0 kB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6079a6b48cde45b766ce8cdda5744741050b8501c3e0e2a4cab72453905b45bf
|
|
| MD5 |
0edd905a31af02bc4bd8e5c454f90d4f
|
|
| BLAKE2b-256 |
22d6daf9c6f075ce702a0c099d6d05e636be8fbb1c5b69bb41df568acb6b361e
|
File details
Details for the file janusx-1.0.10-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: janusx-1.0.10-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 593.8 kB
- Tags: CPython 3.12, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
edce4fd9712ba5d0f0457516aa9deb6d0c41a637d25b63451da3cd5ae3185da5
|
|
| MD5 |
bd17ed83fbfa9a9f3f06356f879f3d53
|
|
| BLAKE2b-256 |
beb822c75f169a1a5ce2e047b5f73d2781b8c2a2b72c984993bdceaf93a2da06
|
File details
Details for the file janusx-1.0.10-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: janusx-1.0.10-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 565.0 kB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a01c048cc1757bd4c31f23a9dc56494631bdb22b39717972fad126c2745a96c
|
|
| MD5 |
b01c9732912eb926296da124a2b36467
|
|
| BLAKE2b-256 |
e0f9c5174e87ee9599fe76250a6fe4da887de24e67ec9e911cda5efe6355683c
|
File details
Details for the file janusx-1.0.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: janusx-1.0.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 669.1 kB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3717cef9207768ab793ad17f37a59f8e44e7797881c912a730ca6b11b7a0fee9
|
|
| MD5 |
7fe506f64c8fc1d7e53ede57ae8f8082
|
|
| BLAKE2b-256 |
68f7db0273168a7d7508e214888b94b8b54769bc49074a8a9dc6cee05c067258
|
File details
Details for the file janusx-1.0.10-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: janusx-1.0.10-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 594.7 kB
- Tags: CPython 3.11, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
598f4e118703b17e054ac15efea9992a0ba55d9a225d9a57759d58888a580dfc
|
|
| MD5 |
02a3348fd1a5305095a6fc932cfe6341
|
|
| BLAKE2b-256 |
dc69058ac947fd9a54a453860a6e91b9890b44ae2945e51c4ce7d1b915682a43
|
File details
Details for the file janusx-1.0.10-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: janusx-1.0.10-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 564.8 kB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a0962dccc8be7662f77f8dc527cc6ecdb5127a81ff4a68de8c39e2c62f868dd
|
|
| MD5 |
9d7d64fa96ca0b404f53a8444f1c1435
|
|
| BLAKE2b-256 |
b2157c352702946ce9ccc7b18120e862a1d5cd0f6299ad4132ee641fd126e754
|
File details
Details for the file janusx-1.0.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: janusx-1.0.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 669.7 kB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c47523b49bb79aaf148fee6212d1068b9278529434ad7539f88be2fa54c6ad39
|
|
| MD5 |
424e1ce9038b4df75206356e859c9ebf
|
|
| BLAKE2b-256 |
86d11d14845c9e269d2e9e6ea4e879ef4bc241670b39e1414fb6eb6b134c084d
|
File details
Details for the file janusx-1.0.10-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: janusx-1.0.10-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 594.5 kB
- Tags: CPython 3.10, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
046eb42a8af3eafcf47d1a2d76b1f976fb2939cc730715f72bc4305baec299d3
|
|
| MD5 |
37b1a5a96eff5eea8c45169d79cf9474
|
|
| BLAKE2b-256 |
8b4e48b310d74d01d9186037869938492adc94143dc22b4805f075839335a30d
|