Skip to main content

JanusX

CLI Guide | Core API Guide | v2.0.1 Release

GitHub release Python License

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:

  • Genome-Wide Association Study (GWAS): lm, lmm, lmm2, fvlmm, SparseLMM (splmm / splmm-exact), farmcpu, and cis/trans pair scans (ct)
  • Genomic Selection (GS): BLUP, BayesA/B/C/R, PLS/KRR, and ML models (RF/ET/GBDT/XGB/SVM/ENET)
  • Streaming genotype IO for VCF/HMP/PLINK BED and PLINK 2 PGEN
  • Post-analysis workflows: postgwas, postgs
  • Utility workflows: grm, pca, gformat, gmerge, fastpop (including FST and XP-CLR)

Installation

Quick installation: Python with uv (recommend)

  • Linux | MacOS
curl -fsSL https://raw.githubusercontent.com/FJingxian/JanusX/main/scripts/install.sh | sh
  • Windows
powershell -ExecutionPolicy ByPass -c "irm https://raw.githubusercontent.com/FJingxian/JanusX/main/scripts/install.ps1 | iex"

Option A: Python package install

pip install janusx==2.0.1

Option B: Conda / Bioconda

conda create -n janusx \
  --channel conda-forge \
  --channel bioconda \
  janusx

Quick start

1) GWAS

# Estimate variance for every SNP.
jx gwas -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -lmm -o test/
# Exact LMM with Wald and likelihood-ratio results.
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, recommend)
jx gwas -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -fvlmm -o test/
# SparseLMM with sparse REML null and approximate GRAMMAR-gamma scan.
jx gwas -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -splmm -o test/
# SparseLMM with the exact sparse-Cholesky g'Pg scan denominator.
jx gwas -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -splmm-exact -o test/
# FarmCPU.
jx gwas -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -farmcpu -o test/

For PLINK 2 PGEN input, use -pfile <prefix>; -bfile <prefix> reads PLINK BED files.

overview

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 test/mouse_hs1940.test1.lmm.tsv -manh-merge -qq-merge -fontsize 11 -fontstyle arial -o testpost/
jx postgwas -i test/mouse_hs1940.test0.lmm.tsv test/mouse_hs1940.test1.lmm.tsv test/mouse_hs1940.test2.lmm.tsv -manh-merge -qq-merge -scatter-size 4 10 -alpha 0.2 0.5 -ylim 2 10 -o testpost/

ldblock

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 (BayesR in JanusX-2.0.0 uses pi=(0.95,0.03,0.01,0.01), gamma=(0,0.01,0.1,1))
jx gs -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -BayesA -BayesB -BayesC -BayesR -o test/ -cv 5
# BayesB fixes pi at 0.05 by default; append a value to override it. BayesC
# estimates pi unless a value is supplied:
# jx gs ... -BayesB 0.05 -BayesC 0.10
* 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
...
------------------------------------------------------------

gsoverview

4) Get module help

jx -h
jx <module> -h

See full usages in CLI Guide.


Module map

Genome-wide Association Studies (GWAS):

  • grm
  • pca
  • gwas
  • ct (cis/trans pair scans)
  • postgwas (Visualization, manh qq ldblock)
  • fastpop (population structure, FST, and XP-CLR)

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):

  • gs
  • postgs (Visualization)

Epistasis:

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,
author = {Fu, Jingxian and Jia, Anqiang and Wang, Haiyang and Liu, Hai-Jun},
title = {JanusX: an integrated and high-performance platform for scalable genome-wide association studies and genomic selection},
journal = {The Plant Journal},
volume = {127},
number = {5},
pages = {e71105},
doi = {https://doi.org/10.1111/tpj.71105},
url = {https://onlinelibrary.wiley.com/doi/abs/10.1111/tpj.71105},
year = {2026}
}

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 2.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for janusx 2.0.1
File Size Uploaded Provenance Actions
janusx-2.0.1.tar.gz 6.2 MB Without provenance Details for janusx-2.0.1.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for janusx 2.0.1
File Actions
janusx-2.0.1-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details for janusx-2.0.1-cp310-abi3-win_arm64.whl
janusx-2.0.1-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for janusx-2.0.1-cp310-abi3-win_amd64.whl
janusx-2.0.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl CPython 3.10 abi3 Linux glibc 2.17+ x86-64 Details for janusx-2.0.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
janusx-2.0.1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details for janusx-2.0.1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
janusx-2.0.1-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for janusx-2.0.1-cp310-abi3-macosx_11_0_arm64.whl

Total release size: 115.1 MB

Release files / janusx-2.0.1.tar.gz

Download URL janusx-2.0.1.tar.gz
Size 6.2 MB
Tags Source
SHA-256 checksum
How to use checksums
4a077f063df4a23673f8b61445510a313afdb4a26c12f1e75dd0ee6947ab542d
BLAKE2b-256 checksum
How to use checksums
8b3f55d2423d8354338e8215f1b2c4cc42b91013b40fe0471928293e444c32b2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

Release files / janusx-2.0.1-cp310-abi3-win_arm64.whl

Download URL janusx-2.0.1-cp310-abi3-win_arm64.whl
Size 10.9 MB
Tags CPython 3.10 Windows ARM64 abi3
SHA-256 checksum
How to use checksums
f0963397fd36a53bb562ca5654dd3dc2ed9e23c15aeecdfa051afeff28a22ce5
BLAKE2b-256 checksum
How to use checksums
ce26ca4fb68f5b3d9064b07b772ba773f677c07efa1fcddb2343f31f2f804d2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

Release files / janusx-2.0.1-cp310-abi3-win_amd64.whl

Download URL janusx-2.0.1-cp310-abi3-win_amd64.whl
Size 20.3 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
d2d9c9f03be29d5f0dec29d1bda855a673bbade8fda226d0a81eb28914c22a4b
BLAKE2b-256 checksum
How to use checksums
ddde2241ccec6e4ae071cdcae7870cf802d9aabf4c3554b85c8a2c283325a8fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

Release files / janusx-2.0.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl

Download URL janusx-2.0.1-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Size 28.5 MB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
73bfc13a09b8c90c418bcb1c2d378f09761e5c60b07b56c390c9a17f1f70ddc8
BLAKE2b-256 checksum
How to use checksums
9c8326e77ab0e00ca1ec8c731e7b506d1b0765892a55983f3f7461cbde8eeef8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

Release files / janusx-2.0.1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl

Download URL janusx-2.0.1-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Size 21.8 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
b3c2dba27f8e94daf08f3f94866898812bc619518e98d1d7baa531b61ffb7351
BLAKE2b-256 checksum
How to use checksums
4eb3f03aafa8f3941daa881fcd400121b297859b2a8a98e7d529c1e03e32e861
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

Release files / janusx-2.0.1-cp310-abi3-macosx_11_0_arm64.whl

Download URL janusx-2.0.1-cp310-abi3-macosx_11_0_arm64.whl
Size 27.4 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
81c15b6d1c2e3fd2cb5a1e2727b5c6e57c07da8d81eb2f2f0f5531ff2248a3df
BLAKE2b-256 checksum
How to use checksums
644ddcf62dd1701e420579d1872c59f75efa036dafe68fe16f255fbd773c4af1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

Security for janusx 2.0.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page