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, LRLMM, 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, adamixture, webui, sim, simulation
  • Launcher pipelines: fastq2vcf, fastq2count

jx & jxpy

JanusX provides two command entry styles:

  • jx (Rust launcher): manages runtime/update/toolchain and supports all launcher modules
  • jxpy (Python package entry): runs Python-side modules directly

Practical difference:

  • fastq2vcf and fastq2count are launcher-only (jx)
  • launcher-only flags (-update/-upgrade/-list/-clean/-uninstall) are not available in jxpy

Installation

Option A: launcher install (recommended for end users)

Download installer assets from Releases:

Then run installer:

# Linux
./JanusX-vX.Y.Z-linux-x86_64.run

# macOS
./JanusX-vX.Y.Z-darwin-universal.command

On Windows, double click or run the .exe installer.

After install:

jx -v
jx -list module

Option B: Python package install (API-first / development)

pip install janusx
# command entry: jxpy (version>=1.0.14) or jx (version<1.0.14)
  • If you only need a turnkey CLI environment with pipeline tooling, prefer launcher install.

BLAS backend and threads

  • OpenBLAS is available on macOS/Linux/Windows.
  • JanusX now applies -t/--thread to BLAS thread env vars (OPENBLAS_NUM_THREADS, OMP_NUM_THREADS, etc.) in major analysis CLIs.
  • For strongest cross-platform numerical/performance consistency, prefer a conda-forge OpenBLAS environment.

Example (OpenBLAS environment):

conda create -n jx_openblas -c conda-forge python=3.14 numpy scipy "libblas=*=*openblas"
conda activate jx_openblas

Default behavior is: prefer OpenBLAS, warn when unavailable, and automatically fallback to platform-priority backends.


Quick start

1) GWAS

jx gwas -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -lmm -o test

overview

2) Post-GWAS

jx postgwas -gwasfile test/mouse_hs1940.test0.add.lmm.tsv -manh -qq -thr 1e-6 -o testpost

ldblock

3) Genomic selection

jx gs -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -GBLUP -cv 5 -o testgs
* Genomic Selection for trait: test0
Train size: 1410, Test size: 530, EffSNPs: 8960
✔︎ GBLUP ...Finished [3.5s]
✔︎ adBLUP ...Finished [10.1s]
✔︎ BayesA ...Finished [32.6s]
✔︎ BayesB ...Finished [34.2s]
✔︎ BayesCpi ...Finished [32.0s]
✔︎ RF ...Finished [1m46s]
✔︎ XGB ...Finished [9m27s]
✔︎ SVM ...Finished [2m05s]
✔︎ ENET ...Finished [9.7s]
Fold Method     Pearsonr Spearmanr     R² h²/PVE time(secs)
   1 GBLUP         0.704     0.671  0.493  0.610      0.531
   1 adBLUP        0.717     0.679  0.512  0.694      2.341
   1 BayesA        0.721     0.695  0.514  0.714      5.307
   1 BayesB        0.722     0.693  0.517  0.667      5.522
   1 BayesCpi      0.699     0.671  0.476  0.672      4.971
   1 RF            0.709     0.702  0.471  0.468      3.055
   1 XGB           0.754     0.733  0.564  0.563      5.231
   1 SVM           0.703     0.664  0.490  0.485      9.027
   1 ENET          0.720     0.704  0.514  0.517      0.274

gsoverview

See full usages in CLI Guide.

4) Get module help

jx <module> -h

Module map

Genome-wide Association Studies (GWAS):

  • grm
  • pca
  • gwas
  • postgwas (Visualization, manh qq ldblock)

Genomic Selection (GS):

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

GARFIELD:

  • garfield
  • postgarfield

Bulk Segregation Analysis (BSA):

  • postbsa (Visualization, after BSA pipeline)

Pipeline and utility:

  • fastq2count (RNAseq pipeline, launcher-only)
  • fastq2vcf (BSA/Reseq pipeline, launcher-only)
  • adamixture (Based on ADAMIXTURE)
  • hybrid (Generate F1 genotype base on Parents)
  • gformat (Conversion between genotype data formats)
  • gmerge (Merge genotype between samples)
  • webui (Visualization, beta version)

Benchmark:

  • sim
  • simulation

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.21.tar.gz (3.7 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.21-cp39-abi3-win_arm64.whl (2.7 MB view details)

Uploaded CPython 3.9+Windows ARM64

janusx-1.0.21-cp39-abi3-win_amd64.whl (2.9 MB view details)

Uploaded CPython 3.9+Windows x86-64

janusx-1.0.21-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.2 MB view details)

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

janusx-1.0.21-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.2 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

janusx-1.0.21-cp39-abi3-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

janusx-1.0.21-cp39-abi3-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for janusx-1.0.21.tar.gz
Algorithm Hash digest
SHA256 28791ee42ee4de741bd0190931d3ca96a8c99c23948f4b60c833695e05b9a824
MD5 915efe3763570101a694edadeaecea37
BLAKE2b-256 10f0b836a785bc20fad5227acb8b1ef1d9780b07a1bb8fb440e3dfa9e4125716

See more details on using hashes here.

File details

Details for the file janusx-1.0.21-cp39-abi3-win_arm64.whl.

File metadata

  • Download URL: janusx-1.0.21-cp39-abi3-win_arm64.whl
  • Upload date:
  • Size: 2.7 MB
  • Tags: CPython 3.9+, Windows ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for janusx-1.0.21-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 d7190bb09587427a175d0316d331ba5e882546c34bd9298d862c7996c3c164a2
MD5 bed2dc709b5e6ac9db4fab494cac22c9
BLAKE2b-256 58dd5fc3a570697ed3677c7246681e733ed9002acd7a8dff8d870004f46d17c4

See more details on using hashes here.

File details

Details for the file janusx-1.0.21-cp39-abi3-win_amd64.whl.

File metadata

  • Download URL: janusx-1.0.21-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.9 MB
  • Tags: CPython 3.9+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for janusx-1.0.21-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e3f4e57fe25251e51eb10838fc7a55858803a9d864741713a611dffc0196fc74
MD5 44f6f1b86945fe57e6ea495ae8d88cb3
BLAKE2b-256 c29c708ef832e3e27cf1d364a8b52d90bb8256ed037ac3b35e88456272a3481c

See more details on using hashes here.

File details

Details for the file janusx-1.0.21-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for janusx-1.0.21-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 7ac35c337e04b5fd51af81a2f7d092c4f2c48c3f656f8b8f480f202a516f1846
MD5 c938390eee45c0de79edfc888335b8cf
BLAKE2b-256 7a6a3355b8697b4548e9838cbb4d0f47a093ca5d8dc7be8ec647829e68f850e7

See more details on using hashes here.

File details

Details for the file janusx-1.0.21-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for janusx-1.0.21-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9887f162755283cad1b06ef90455f9819acee357b10143844c2ba2b55864f936
MD5 a0109f6c077f97426269840cb215802f
BLAKE2b-256 a09b6ba8ecbf45baf04da73c578a864860df02734a1658721e4ca77be6d02f3b

See more details on using hashes here.

File details

Details for the file janusx-1.0.21-cp39-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for janusx-1.0.21-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 759631f676cab8e7e101f4551f7dfc52890fd92d2ca1bc8c77486cccb11ac574
MD5 d4dd7f91531271d31489c8566a6cf2f6
BLAKE2b-256 c0bd3bb360c702ca2ddefee77d0de468b34e4ba387ff54e1032b22b78d3f55ac

See more details on using hashes here.

File details

Details for the file janusx-1.0.21-cp39-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for janusx-1.0.21-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a664e36cb91d3aa5cf4482263422d09052fa1c02f0df28d89580f21160de94ec
MD5 d75d6cdc87659eb6b55477da37462e42
BLAKE2b-256 580cae6ae50add34a710781424f34fc756a6e60c4ebc7ae40ca40db1262d378b

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