Skip to main content

A Suite of Genotyping Tools for Genome-Wide Association Study and Genomic Selection

Project description

JanusX

CLI Guide | Core API Guide | Zea Eureka

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:

  • 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
  • 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

overview

2) Post-GWAS

jx postgwas -i test/mouse_hs1940.test0.lmm.tsv -manh -qq -thr 1e-6 -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
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    
...
------------------------------------------------------------

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
  • postgwas (Visualization, manh qq ldblock)
  • fastpop (population-structure analysis; jx adamixture kept 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):

  • gs
  • postgs (Visualization)
  • reml (Estimation of broaden heritability and blup values)

GARFIELD:

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

janusx-1.0.25.tar.gz (5.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

janusx-1.0.25-cp310-abi3-win_arm64.whl (7.9 MB view details)

Uploaded CPython 3.10+Windows ARM64

janusx-1.0.25-cp310-abi3-win_amd64.whl (17.0 MB view details)

Uploaded CPython 3.10+Windows x86-64

janusx-1.0.25-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (24.0 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

janusx-1.0.25-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (17.3 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

janusx-1.0.25-cp310-abi3-macosx_11_0_arm64.whl (27.0 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

janusx-1.0.25-cp310-abi3-macosx_10_12_x86_64.whl (32.1 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file janusx-1.0.25.tar.gz.

File metadata

  • Download URL: janusx-1.0.25.tar.gz
  • Upload date:
  • Size: 5.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for janusx-1.0.25.tar.gz
Algorithm Hash digest
SHA256 42eeeb86b88479425b00305a6e3497c05e80338c5450b1a4447af996d9fa3d75
MD5 3aba14b0b8677e01c4838bb45dd72e5f
BLAKE2b-256 ff38106def1f1e6311a310fc16ea9eba497cf2af4dd180c10f0f4f981d511067

See more details on using hashes here.

File details

Details for the file janusx-1.0.25-cp310-abi3-win_arm64.whl.

File metadata

  • Download URL: janusx-1.0.25-cp310-abi3-win_arm64.whl
  • Upload date:
  • Size: 7.9 MB
  • Tags: CPython 3.10+, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for janusx-1.0.25-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 d657aba8a7873072996a212903479b22edaecd9a99aaf5ddd7d6a7781a06caa8
MD5 413e9baff5fcd49e7985288e53596378
BLAKE2b-256 fefdc26067064964e286c2079b349986b041393cadb1b52185b4224651dd8ac8

See more details on using hashes here.

File details

Details for the file janusx-1.0.25-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: janusx-1.0.25-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 17.0 MB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for janusx-1.0.25-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 67564da0489c3dc8948ab1c06b46df3c07ac1eaa37b249924f2c38dacaebeed7
MD5 fc936b306ee19c6a9244e3c12a7e9e67
BLAKE2b-256 ea9d9cc94f69de02c87aaf79f917d8fca535e0ed7d7793d979faa7a20471095a

See more details on using hashes here.

File details

Details for the file janusx-1.0.25-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for janusx-1.0.25-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 66a50c0ebe884150645cea1b89e367db74bfa7d2cc8f54d03d78a6039a51cbfc
MD5 5be7fc7f900f6bf0fd0f69440f92cfcf
BLAKE2b-256 808cba5d872f43e84aba99147d3cb8bdd34ac619c31be12b639921189dee445c

See more details on using hashes here.

File details

Details for the file janusx-1.0.25-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for janusx-1.0.25-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 5700248cade1d1ea9356733b67a80d0c64e14130476f79c721dddffd159e692b
MD5 908b53a4ac6ea0d2c2c53d97569e13af
BLAKE2b-256 8bfcf21b6742b3d7c4a18287f2f56516c63e668e8c1688bf697b06930be394d5

See more details on using hashes here.

File details

Details for the file janusx-1.0.25-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for janusx-1.0.25-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fa483ba2064f028651211f40704fcd3c95ff3d8efe4b67154fd8851c2d912875
MD5 e8c677f7e06ece331da1f758e2394274
BLAKE2b-256 bdb6b4ec64fb7d561501718a256b41547347cc716e52bba1b248ca0dcabb80c2

See more details on using hashes here.

File details

Details for the file janusx-1.0.25-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for janusx-1.0.25-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fdf58edadfcb29e06ce029211b18e75497c0029f5bdcec4933267d0db6a51679
MD5 3f05ebb41e84e03651f87371eb01f8f8
BLAKE2b-256 a55cb985318ff455f93ccf5d9a6c33a3d480df71ed1f5112efe550afc0d6bccd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page