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.20.tar.gz (3.6 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.20-cp39-abi3-win_arm64.whl (2.5 MB view details)

Uploaded CPython 3.9+Windows ARM64

janusx-1.0.20-cp39-abi3-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.9+Windows x86-64

janusx-1.0.20-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (13.0 MB view details)

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

janusx-1.0.20-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (7.0 MB view details)

Uploaded CPython 3.9+manylinux: glibc 2.17+ ARM64

janusx-1.0.20-cp39-abi3-macosx_11_0_arm64.whl (2.5 MB view details)

Uploaded CPython 3.9+macOS 11.0+ ARM64

janusx-1.0.20-cp39-abi3-macosx_10_12_x86_64.whl (2.6 MB view details)

Uploaded CPython 3.9+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for janusx-1.0.20.tar.gz
Algorithm Hash digest
SHA256 98c8a4aa57657a78e6550d08ec8c3f362d6e80cac40ff951aaed902a1a67326c
MD5 1cc7825d4e137207660a1d24f06ca5b7
BLAKE2b-256 2b5a43630d4277b3002336e248830f67769d2d3fe98054acb06463e54c3a757b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: janusx-1.0.20-cp39-abi3-win_arm64.whl
  • Upload date:
  • Size: 2.5 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.20-cp39-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 f1f409198c1174e8e1452a1362aa2012b9e6fc8480d88115ed8dc72e13bd725e
MD5 1c09b72d3da341d763ac12674fb55163
BLAKE2b-256 4a65257c17ed7c5c6a8a276999c9f97cd44e51d3cf6586b9a1c5a83c6056f84a

See more details on using hashes here.

File details

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

File metadata

  • Download URL: janusx-1.0.20-cp39-abi3-win_amd64.whl
  • Upload date:
  • Size: 2.7 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.20-cp39-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2b559ebdbf42703104055e29352afca950e54fd40b56b91d85bdb7285f5d3400
MD5 3eaf994c766cbf146e5fd734370a7591
BLAKE2b-256 5748648dafc6d0d15ffa563397508e5f4c9771efa08b269b1a029c9ed0ccf3be

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.20-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4d80a08e839b73afead416b5babe2a283b0c914379c2eeef91c1f61766352613
MD5 b184671ce982c740905854bf268046aa
BLAKE2b-256 7974069dbcddfcace11c77e82914c836bddcd59a113716d099f49017ab458705

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.20-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e5f96a25b4b1b8bc1f0922b05bfb04976bd14d30145eefd9a355a396a62ce0c3
MD5 01ba00f293b211c8266ad895d9ed9bd1
BLAKE2b-256 66fa2ef6d079a7788a2b191ee90eb132e7abcd36a00c3feb2ff25b7198a832d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.20-cp39-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bbf6236418e7f8b33d76973729edb87608b5366415f555a406cdf036d56a0a64
MD5 1516673416104ac053f766184f8bb1c2
BLAKE2b-256 93cc1674dce994df13b20cbba3246a980986b916165b90e771e2946e55022c96

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.20-cp39-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6073bb875fbcefea2eee4868f204c22060694af5026956127cf6361a30679a39
MD5 f1716794cdd7a47e88ad525313473ab2
BLAKE2b-256 3132a333d7393e68db0a392325cbd94bbed311334a0f8e2851d2334e6d5889c4

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