Skip to main content

JanusX

CLI Guide | Core API Guide | v2.0.0 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.0

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.0

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.0
File Size Uploaded Provenance Actions
janusx-2.0.0.tar.gz 6.1 MB Without provenance Details for janusx-2.0.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for janusx 2.0.0
File Actions
janusx-2.0.0-cp310-abi3-win_arm64.whl CPython 3.10 abi3 Windows ARM64 Details for janusx-2.0.0-cp310-abi3-win_arm64.whl
janusx-2.0.0-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details for janusx-2.0.0-cp310-abi3-win_amd64.whl
janusx-2.0.0-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.0-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
janusx-2.0.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details for janusx-2.0.0-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
janusx-2.0.0-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details for janusx-2.0.0-cp310-abi3-macosx_11_0_arm64.whl

Total release size: 113.2 MB

Release files / janusx-2.0.0.tar.gz

Download URL janusx-2.0.0.tar.gz
Size 6.1 MB
Tags Source
SHA-256 checksum
How to use checksums
f9fa4c6a710a2189c2023078a9599c8d54412c911324b91297155879a3c0f250
BLAKE2b-256 checksum
How to use checksums
86b69a77734c0d624052d0d917af128fc61eefd8bd1e15af63bc357d5e35924b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

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

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

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

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

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

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

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

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

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

Download URL janusx-2.0.0-cp310-abi3-macosx_11_0_arm64.whl
Size 27.0 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5cdce3193e089733e9ff7ba47683f2ac172cf4ceb4414b62cda05538c2ad1ca2
BLAKE2b-256 checksum
How to use checksums
7bd55793976e63fb2f5a4d2b8db88aab2853c75f57b72adfb632dc131d232566
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via maturin/1.9.4

Security for janusx 2.0.0

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