A Suite of Genotyping Tools for Genome-Wide Association Study and Genomic Selection
Project description
JanusX
简体中文 | English | Zea Eureka
JanusX is a high-performance toolkit for quantitative genetics. It combines Rust-accelerated kernels (PyO3) with Python CLI workflows for GWAS, genomic selection (GS), post-analysis visualization, and variant-processing pipelines.
Overview
- Unified CLI entry:
jx - Core GWAS models:
LM,LMM,FarmCPU - Core GS models:
GBLUP,rrBLUP,BayesA,BayesB,BayesCpi - Streaming genotype reader for VCF/PLINK/TXT with low-memory workflows
- Integrated post-analysis tools:
postgwas,postbsa,postgarfield - Additional utilities:
grm,pca,gmerge,fastq2vcf,sim,simulation
Installation
Requirements:
- Python
>=3.9 - Rust toolchain (only needed when local wheel is unavailable and build from source is required)
PyPI (recommended)
pip install -U janusx
jx -h
Latest GitHub version
pip install --upgrade --force-reinstall --no-cache-dir git+https://github.com/FJingxian/JanusX.git
jx -h
Docker (source image build)
git clone https://github.com/FJingxian/JanusX.git
cd JanusX
docker build -t janusx:latest .
docker run --rm janusx:latest -h
In-place update for an installed JanusX
jx --update
CLI Modules
Genome-wide Association Studies (GWAS)
grm: build genomic relationship matrix from genotype (-vcfor-bfile)pca: PCA for population structure from genotype, GRM prefix, or existing PCA prefixgwas: run genome-wide association analysis (LM,LMM,fastLMM,FarmCPU)postgwas: post-process GWAS results (Manhattan/QQ/annotation/merge/LD views)
Genomic Selection (GS)
gs: genomic prediction and model-based selection
GARFIELD
garfield: random-forest based marker-trait associationpostgarfield: summarize and visualize GARFIELD outputs
Bulk Segregation Analysis (BSA)
postbsa: post-process and visualize BSA results
Pipeline and Utility
fastq2vcf: variant-calling pipeline from FASTQ to VCFgmerge: merge genotype/variant datasets
Benchmark
sim: quick simulation workflowsimulation: extended simulation and benchmarking workflow
For full options, run:
jx <module> -h
Quick Start
1) GWAS
jx gwas -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -lmm -plot -o test
2) Post-GWAS (single result)
jx postgwas -gwasfile test/mouse_hs1940.test0.lmm.tsv -manh -qq -threshold 1e-6 -o testpost
3) Post-GWAS merge plot (multiple GWAS files in one figure)
jx postgwas \
-gwasfile testb/mouse_hs1940.test0.add.lmm.tsv \
-merge testb/mouse_hs1940.test0.dom.lmm.tsv \
-merge testb/mouse_hs1940.test0.het.lmm.tsv \
-merge testb/mouse_hs1940.test0.rec.lmm.tsv \
-manh -qq -o testpost
4) Genomic Selection
jx gs -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -GBLUP -cv 5 -plot -o testgs
5) Post-BSA
jx postbsa -file QBproject/5.table/all.tsv -b1 JS -b2 JR -window 1 -format pdf -o QBproject/5.table
6) FASTQ to VCF pipeline
jx fastq2vcf -r /path/ref.fa -i /path/fastq_dir -w /path/workdir -b nohup -m 2
Input File Formats
Phenotype file
Tab-delimited. First column is sample ID, remaining columns are traits.
sample trait1 trait2
id1 10.5 0.85
id2 12.3 1.00
id3 8.6 0.92
Genotype files
- VCF:
.vcfor.vcf.gz(-vcf) - PLINK:
.bed/.bim/.famprefix (-bfile) - Text genotype matrix (
-file, selected modules):- header row is sample IDs
- subsequent rows are SNP-major numeric genotype values
Example (text matrix):
id1 id2 id3 id4
0 1 2 0
2 2 1 0
0 0 1 1
GWAS optional matrices
- GRM (
-k/--grmingwas): numeric matrix aligned to genotype sample order - Q/PC covariate (
-q/--qcovingwas): PC count or covariate matrix file - Covariate (
-c/--covingwas): numeric matrix aligned to genotype sample order
All matrix files should be numeric-only, space/tab-delimited, without row/column headers.
GRM/PCA file conventions (updated)
jx grmaccepts genotype input only:-vcfor-bfilejx grmoutputs:- default text mode:
{prefix}.grm.txtand{prefix}.grm.txt.id - with
--npy:{prefix}.grm.npyand{prefix}.grm.npy.id
- default text mode:
jx pcainputs (mutually exclusive):- genotype:
-vcfor-bfile(compute PCA from genotype) - GRM prefix:
-k/--grm <prefix>(expects{prefix}.grm.idand{prefix}.grm.txtor{prefix}.grm.npy) - existing PCA prefix:
-q/--qcov <prefix>(expects{prefix}.eigenvaland{prefix}.eigenvec, visualization-only mode)
- genotype:
Common Output Naming
gwas:{prefix}.{trait}.{model}.tsvand optional{prefix}.{trait}.{genetic_model}.{model}.svgpostgwas:{prefix}.manh.{format},{prefix}.qq.{format},{prefix}.{thr}.anno.tsvpostgwasmerge mode:{prefix}.merge.manh.{format},{prefix}.merge.qq.{format}postbsa:{prefix}.{bulk1}vs{bulk2}.snpidx.{format}{prefix}.{bulk1}vs{bulk2}.bsa.{format}{prefix}.{bulk1}vs{bulk2}.smooth.tsv{prefix}.{bulk1}vs{bulk2}.thr.tsv
gs:{prefix}.{trait}.gs.tsv
Python API (selected)
from janusx.gfreader import load_genotype_chunks
for geno, sites in load_genotype_chunks("example/mouse_hs1940.vcf.gz", chunk_size=50000):
# geno: (m, n) float32 genotype chunk
# sites: variant metadata list
pass
from janusx.gtools.wgcna import cor, adj, tom, cluster
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
MIT License. See LICENSE.
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.13.tar.gz.
File metadata
- Download URL: janusx-1.0.13.tar.gz
- Upload date:
- Size: 3.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44421f9f52e3fa54c154e5fcfbf5d50cbb05cc25fd3bf38e7c3cb8d29cb876a0
|
|
| MD5 |
733e4d7a072fcce8990c5bdc6a181628
|
|
| BLAKE2b-256 |
77a2cda6737a211f57a2bdcfe81ef3e0d50642d36df3021de4b52238cbbbeca7
|
File details
Details for the file janusx-1.0.13-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: janusx-1.0.13-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 921.5 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
af1e209aa35333f8445717cb23dc22afc25f0485b4c47efa18a708b5d2a80030
|
|
| MD5 |
4aded0b53c01864ae767fc32db586088
|
|
| BLAKE2b-256 |
c89b4ed61c075d0717fc4cfc187a92d0d05f4ce01dc4b52de23c61c3dcc30e93
|
File details
Details for the file janusx-1.0.13-cp314-cp314-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: janusx-1.0.13-cp314-cp314-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.14, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2bda73d9b4c103f1ed1778ce46351dfa48de7e152eef5f6854c9620f06fefc54
|
|
| MD5 |
db2f71fe22a814b7c0a486352f1401bf
|
|
| BLAKE2b-256 |
f60d8f3cc5298fc9b8d86d180a3c95340ed120a304cb6610396105716b05b686
|
File details
Details for the file janusx-1.0.13-cp314-cp314-macosx_11_0_arm64.whl.
File metadata
- Download URL: janusx-1.0.13-cp314-cp314-macosx_11_0_arm64.whl
- Upload date:
- Size: 931.5 kB
- Tags: CPython 3.14, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7cffeffe1d25fccc2da38fecadc89342bfbb089fe0eee2d7ea6c445a5a98a3ba
|
|
| MD5 |
477de86104742d1fa1c649532ccf4944
|
|
| BLAKE2b-256 |
248e7d6049633b743af8c5bc8890760252efffd11bb38b98212ac664a1051f1c
|
File details
Details for the file janusx-1.0.13-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: janusx-1.0.13-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 920.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 |
81c97ae4ac2a10af919512308b96d28f4dda121c2ae028680eb4443f193acab0
|
|
| MD5 |
62a65217a15fe1050e6eae49b580b020
|
|
| BLAKE2b-256 |
9bfe411fc1cdcae1890cb3e1c01a6628efd05fe017ca1b1e975e877c575c3286
|
File details
Details for the file janusx-1.0.13-cp313-cp313-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: janusx-1.0.13-cp313-cp313-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 1.0 MB
- 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 |
80bb287f3c8f02aa81badf83e621aa722ad2fb8db547ed3703293b950b68a163
|
|
| MD5 |
e1d39bcdc8a0392129a3f914bfad3c2d
|
|
| BLAKE2b-256 |
4807a6d2368361b1a3a31ba3ffe427595ffabff5d7db7ecaf7253d7a710a8072
|
File details
Details for the file janusx-1.0.13-cp313-cp313-macosx_11_0_arm64.whl.
File metadata
- Download URL: janusx-1.0.13-cp313-cp313-macosx_11_0_arm64.whl
- Upload date:
- Size: 932.2 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 |
bac1b72880fa9ab444aa01edc785f98bd4be623e1910c2ef5c935bdb5a662671
|
|
| MD5 |
6b9fc36b9d80cedf309a624ad4dd182f
|
|
| BLAKE2b-256 |
5d61e37175798cc4d9f34a4e0df7ed2a1e6ed0c9b78831b9b45d04f6b6428c2d
|
File details
Details for the file janusx-1.0.13-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: janusx-1.0.13-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 920.9 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 |
df833c3acbf81eebaec59639b87a57412ec3b11c4dbfc7e382a812a2379d8508
|
|
| MD5 |
6b75e85d6ec2f054e485f30a8a2513a4
|
|
| BLAKE2b-256 |
8d84fb6592d580e3a0976fc6448a89820a7ffe2787212e89ea2f737d79b799b4
|
File details
Details for the file janusx-1.0.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: janusx-1.0.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.0 MB
- 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 |
561b0af27607df907654ca6ce34efdeda0e57229f14d65ccb7509ee61aebe968
|
|
| MD5 |
b201b1ce2da5115450355d4446bc313f
|
|
| BLAKE2b-256 |
3165e629ed7e5ceacb956c88988cabd19e66fe73f636682a524a7e49563e71ef
|
File details
Details for the file janusx-1.0.13-cp312-cp312-macosx_11_0_arm64.whl.
File metadata
- Download URL: janusx-1.0.13-cp312-cp312-macosx_11_0_arm64.whl
- Upload date:
- Size: 932.7 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 |
f7d342dac720877112867a22491e466baa5222e0a8512a6b7d7bbdead0c32e4f
|
|
| MD5 |
d127e7f3ef5dcc183f48e22cbb5152dd
|
|
| BLAKE2b-256 |
4b9da448ee0886aa517e6371fc8414d7c3a44ef20da4ba1bba186ee48d88d4f9
|
File details
Details for the file janusx-1.0.13-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: janusx-1.0.13-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 923.2 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 |
7b9a12095c90649b39c5973cc4360b8f8060851e2532da9ac765a79fcca26f14
|
|
| MD5 |
6a3c05d2ca8b1edefa1173152e54305e
|
|
| BLAKE2b-256 |
500a7f4b7f0938fbd2d58871dfe2365d4c746f2242e590ce2966166aaac61570
|
File details
Details for the file janusx-1.0.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: janusx-1.0.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.0 MB
- 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 |
6d1568836e51b0218ddf5d96872049ea7ed5ab1169a4d026f6a7e7ad3bb2cb96
|
|
| MD5 |
490e56f88ed35eabc60dd1de8a42839e
|
|
| BLAKE2b-256 |
453dc71b65f1cde5a3d5bb9c99cdbb1519a0475df25573d50109f0580aa1dae7
|
File details
Details for the file janusx-1.0.13-cp311-cp311-macosx_11_0_arm64.whl.
File metadata
- Download URL: janusx-1.0.13-cp311-cp311-macosx_11_0_arm64.whl
- Upload date:
- Size: 938.0 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 |
08520f1008286bded70bd471e5b152fb984e96dd9d6bffc2a90e532e93ee0f9d
|
|
| MD5 |
5659fc251942c5db00c2f8eafa1ca8b3
|
|
| BLAKE2b-256 |
c613e20cd6a29ae84651cffd80ad2f3f183a4eda5664e0315ee9b4a784421e28
|
File details
Details for the file janusx-1.0.13-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: janusx-1.0.13-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 923.3 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 |
9649c1f3debfc32432e4afaecc4b2a182aa2e2ac6651617a11e640388ed550f4
|
|
| MD5 |
ab81988d6526a3a48a68188095d9f181
|
|
| BLAKE2b-256 |
d632da2fec5fa842f66bba4a84df3532d854140b89129370c5f43d5bc67fd72f
|
File details
Details for the file janusx-1.0.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: janusx-1.0.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.0 MB
- 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 |
84a00775dbae3c946fe027979a00a4c68f5161aa6b2a4c209f7c46f01f563639
|
|
| MD5 |
a8b19f6cc79459a07016212548f69c0e
|
|
| BLAKE2b-256 |
742307a37c209df3d47b38db5d89a8201931b1b178f3fe3a157672df54f9f1ed
|
File details
Details for the file janusx-1.0.13-cp310-cp310-macosx_11_0_arm64.whl.
File metadata
- Download URL: janusx-1.0.13-cp310-cp310-macosx_11_0_arm64.whl
- Upload date:
- Size: 941.2 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 |
bb40606b50251629912b6abe6a885692937847567d5b56205bd27a4cdd6ed722
|
|
| MD5 |
6b0ec810570c0afd18615860a6300987
|
|
| BLAKE2b-256 |
803b3bd1e59ccc4f5afc66f4dec83ba2328c21866e84186e0a1be252a9c73eb1
|
File details
Details for the file janusx-1.0.13-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: janusx-1.0.13-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 925.6 kB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f439082043383b45af1727ba18c013e2428525a034bbf162086859a40fd85579
|
|
| MD5 |
f50e2c5e163d70f059787f061e5ec265
|
|
| BLAKE2b-256 |
7deae5d6a3c676d8132027311c33df62653c5ed92c9b0da8086c29dc2ec8c77f
|
File details
Details for the file janusx-1.0.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: janusx-1.0.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 1.0 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
769fdc23353acc6550ff23ccf471f7131adb0ee4462aa0a874cb359ab8b56475
|
|
| MD5 |
b66d07e379af41f982502d8a6b69e357
|
|
| BLAKE2b-256 |
81e23cc243946994f8249ccb0a5026047b8574498db56e6f8206bba3e523eea2
|
File details
Details for the file janusx-1.0.13-cp39-cp39-macosx_11_0_arm64.whl.
File metadata
- Download URL: janusx-1.0.13-cp39-cp39-macosx_11_0_arm64.whl
- Upload date:
- Size: 942.9 kB
- Tags: CPython 3.9, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: maturin/1.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a2872ff99db4186089776b1d46cb1581c861313c020c739124a71da47c7d5d17
|
|
| MD5 |
9b274dd158b803bcd3ea667d2fc3d8de
|
|
| BLAKE2b-256 |
a6868d73c99e4d17e496c3678c1b0c20a252d5edfcb44718ff6516bb1934df3a
|