JanusX
CLI Guide | Core API Guide | Zea Eureka
Overview
JanusX (Joint Association and Novel Utility for Selection) is a GWAS and genomic selection toolkit that combines:
- Rust-accelerated kernels (PyO3 extension)
- Python analysis modules
- A Rust launcher (
jx) for runtime/toolchain management and pipeline orchestration
_ __ __
| | \ \ / /
| | __ _ _ __ _ _ ___ \ V /
_ | |/ _` | '_ \| | | / __| > <
| |__| | (_| | | | | |_| \__ \/ . \
\____/ \__,_|_| |_|\__,_|___/_/ \_\ Tools for GWAS and GS
---------------------------------------------------------
Main capabilities:
- GWAS:
LM,LMM,FastLMM,FarmCPU - Genomic selection:
GBLUP,adBLUP,rrBLUP,BayesA/B/Cpi, and ML models (RF/ET/GBDT/XGB/SVM/ENET) - Streaming genotype IO for VCF/HMP/PLINK/TXT/NPY
- Post-analysis workflows:
postgwas,postgarfield,postbsa - Utility workflows:
grm,pca,gformat,gmerge,hybrid,fastpop,webui,sim,simulation - Launcher pipelines:
fastq2vcf,fastq2count
Installation
Quick installation: Python with uv (Recommend)
- Linux | MacOS
curl -fsSL https://raw.githubusercontent.com/FJingxian/JanusX/main/scripts/install.sh | sh
# Dev version
# curl -fsSL https://raw.githubusercontent.com/FJingxian/JanusX/main/scripts/install.sh | DEV=1 sh
- Windows
Set-ExecutionPolicy RemoteSigned -scope CurrentUser
irm https://raw.githubusercontent.com/FJingxian/JanusX/main/scripts/install.ps1 | iex
Option A: Python package install
pip install janusx==1.0.25
Option B: Conda / Bioconda
Recommended Bioconda channel order:
conda create -n janusx \
--channel conda-forge \
--channel bioconda \
janusx
Quick start
1) GWAS
# Estimate variance for every snp, similar with GEMMA. (Exact, recommand)
jx gwas -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -lmm -o test
# Estimate variance for every snp, similar with GEMMA. (Exact, wald and LR test, recommand)
jx gwas -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -lmm2 -o test
# Estimate variance once in NULL model, similar with EMMAX. (Fast)
jx gwas -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -fvlmm -o test
# Linear mixed model with sparse GRM, fastGWA-compatible sparse REML null + approximate GRAMMAR-gamma scan.
jx gwas -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -splmm-approx -o test
# Linear mixed model with sparse GRM, fastGWA-compatible sparse REML null + exact g'Pg scan.
jx gwas -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -splmm -o test
# FarmCPU (Fast, and more sites, prepared for biobank cohorts)
jx gwas -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -farmcpu -o test
2) Post-GWAS
jx postgwas -i test/mouse_hs1940.test0.lmm.tsv -manh -qq -thr 1e-6 -o testpost
jx postgwas -i test/mouse_hs1940.test0.lmm.tsv a.tsv -manh-merge -qq-merge -fontsize 11 -fontstyle arial -o testpost
jx postgwas -i a.tsv b.tsv c.tsv -manh-merge -qq-merge -scatter-size 4 10 -alpha 0.2 0.5 -ylim 2 10 -o testpost
3) Genomic selection
# BLUP method, prepared for biobank cohorts
# n≤15,000 GBLUP
# n>15,000 & m≤15,000 rrBLUP
# n>15,000 & m>15,000 rrBLUP with PCG (Jacobi)
jx gs -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -BLUP -o test -cv 5
# Bayesian methods
jx gs -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -BayesA -BayesB -BayesCpi -o test -cv 5
* Genomic Selection for trait: test0
Train size: 1410, Test size: 530, EffSNPs: 8960
** BLUP
✔︎ Cross-validation ...Finished [0.8s]
✔︎ Fitting ...Finished [0.3s]
✔︎ Predicting ...Finished [0.0s]
** BayesA
✔︎ Cross-validation ...Finished [17.9s]
✔︎ Fitting ...Finished [4.1s]
✔︎ Predicting ...Finished [0.0s]
...
------------------------------------------------------------
Fold Method Pearsonr Spearmanr R2 time(s) Best
1 BLUP 0.704 0.675 0.493 0.198
1 BayesA 0.709 0.680 0.493 3.507
...
------------------------------------------------------------
4) Get module help
jx -h
jx <module> -h
See full usages in CLI Guide.
Module map
Genome-wide Association Studies (GWAS):
grmpcagwaspostgwas(Visualization,manhqqldblock)fastpop(population-structure analysis;jx adamixturekept as compatibility alias)
Attribution note:
- FastPop is JanusX's own population-structure workflow and public name for this module.
- Historical JanusX releases referenced ADAMIXTURE as a related implementation; the BSD-3-Clause attribution notice is recorded in THIRD_PARTY_NOTICES.md.
Genomic Selection (GS):
gspostgs(Visualization)reml(Estimation of broaden heritability and blup values)
GARFIELD:
garfield(Based on https://github.com/heroalone/Garfield)postgarfield
Utility:
gformat(Conversion between genotype data formats, support fast splicing/filtering/prune)gmerge(Merge genotype between samples)gstats(State freq/het/missing/ldscore of genotype)
Citation
@article {FuJanusX,
title = {JanusX: an integrated and high-performance platform for scalable genome-wide association studies and genomic selection},
author = {Fu, Jingxian and Jia, Anqiang and Wang, Haiyang and Liu, Hai-Jun},
year = {2026},
doi = {10.64898/2026.01.20.700366},
publisher = {Cold Spring Harbor Laboratory},
URL = {https://www.biorxiv.org/content/early/2026/01/23/2026.01.20.700366},
journal = {bioRxiv}
}
License
This project is licensed under GNU Affero General Public License v3.0 (AGPL-3.0-or-later). See LICENSE.
Metadata
Release files for janusx 1.0.27
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| janusx-1.0.27.tar.gz | 5.1 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| janusx-1.0.27-cp310-abi3-win_arm64.whl | CPython 3.10 | abi3 | Windows ARM64 | Details |
| janusx-1.0.27-cp310-abi3-win_amd64.whl | CPython 3.10 | abi3 | Windows x86-64 | Details |
| janusx-1.0.27-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| janusx-1.0.27-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl | CPython 3.10 | abi3 | Linux glibc 2.17+ ARM64 | Details |
| janusx-1.0.27-cp310-abi3-macosx_11_0_arm64.whl | CPython 3.10 | abi3 | macOS 11.0+ ARM64 | Details |
| janusx-1.0.27-cp310-abi3-macosx_10_12_x86_64.whl | CPython 3.10 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 127.8 MB
Release files / janusx-1.0.27.tar.gz
| Download URL | janusx-1.0.27.tar.gz |
|---|---|
| Size | 5.1 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ca1ad58bd191382b60b07e3d93c3f7fa91141ee9cf3623c14ab47dcc98293053
|
|
BLAKE2b-256 checksum How to use checksums |
87f7d1fc3487368aa43978910290a3f62c29f2996126c82fb2bcfde10901dce1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.4
|
Release files / janusx-1.0.27-cp310-abi3-win_arm64.whl
| Download URL | janusx-1.0.27-cp310-abi3-win_arm64.whl |
|---|---|
| Size | 7.8 MB |
| Tags | CPython 3.10 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
d5552a51854fd9b3424cc8a117be2cae4eeaab664624d938d7b43b4a4cbc6ba7
|
|
BLAKE2b-256 checksum How to use checksums |
70b65003128d54f230d3fbbb2c67fc8f50f8dee52d07c520369285ef30748041
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.4
|
Release files / janusx-1.0.27-cp310-abi3-win_amd64.whl
| Download URL | janusx-1.0.27-cp310-abi3-win_amd64.whl |
|---|---|
| Size | 16.8 MB |
| Tags | CPython 3.10 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
a61459f6e8e2119a208c17a934836a82670247c30e2c10de1cdd417cf1dc3d61
|
|
BLAKE2b-256 checksum How to use checksums |
4559cda7d8d14b44481cf3c22d13bc642d5dd8432f3b7c291b764ea686091087
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.4
|
Release files / janusx-1.0.27-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
| Download URL | janusx-1.0.27-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl |
|---|---|
| Size | 23.9 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
ed85307c117fff00af30be8db9d2ce944e723c7d8a55e6e5c2b2fb4fc0bc6854
|
|
BLAKE2b-256 checksum How to use checksums |
bc5601d40166b286deee0a50d5250d76e68cbbcf3e6bc81486ceb7842e2c8f41
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.4
|
Release files / janusx-1.0.27-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
| Download URL | janusx-1.0.27-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl |
|---|---|
| Size | 17.5 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
26567151808d3296b328a5053333174164b51d9d8b4b76c0167eb18f89ba0c77
|
|
BLAKE2b-256 checksum How to use checksums |
c53820130138e4e50c78b9b3c46fbb36f05e6e15ef9c20707592aa8a2297c174
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.4
|
Release files / janusx-1.0.27-cp310-abi3-macosx_11_0_arm64.whl
| Download URL | janusx-1.0.27-cp310-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 24.3 MB |
| Tags | CPython 3.10 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1dc4c5a665da0508e48c87b9d37346d5c8fbb3ac37bf848844a16b647a6651c3
|
|
BLAKE2b-256 checksum How to use checksums |
ba3caac6716d9a6aadc7b6973efbb256fc536d340570234fdc2eddc37da5b31a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.4
|
Release files / janusx-1.0.27-cp310-abi3-macosx_10_12_x86_64.whl
| Download URL | janusx-1.0.27-cp310-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 32.2 MB |
| Tags | CPython 3.10 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
762803304e325a2234f27a5305acdc55d1212cc4843dd90a34e767725c129709
|
|
BLAKE2b-256 checksum How to use checksums |
b5d915d658691f87786bbd918eb566314feb799afb3c8c1f30feea26b5675357
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
maturin/1.9.4
|