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.
  • Enhanced Rich-styled CLI help is optional: pip install "janusx[cli]".

Option C: Conda / Bioconda

Recommended Bioconda channel order:

conda create -n janusx \
  --channel conda-forge \
  --channel bioconda \
  --strict-channel-priority \
  janusx
  • JanusX keeps rich-argparse as an optional CLI enhancement so the core runtime does not require that conda-forge-only package at install time.
  • Even so, Bioconda officially recommends keeping conda-forge above bioconda, because many Bioconda packages rely on the broader conda-forge ecosystem.

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) Python thin wrappers

from janusx.assoc import LinearModel
from janusx.gs import GenomicSelection

# GWAS (file mode; internally reuses janusx.script.gwas)
lm = LinearModel(
    genotype="test/bench4k5k",
    phenotype="test/bench4k5k.pheno.txt",
    traits=[0],
    threads=4,
    out="tmp_assoc",
    prefix="bench",
)
assoc_res = lm.lm(log=False)

# GS (file mode; internally reuses janusx.script.gs)
gs = GenomicSelection(
    genotype="test/bench4k5k",
    phenotype="test/bench4k5k.pheno.txt",
    traits=[0],
    cv=2,
    threads=4,
    out="tmp_gs",
    prefix="bench",
)
gs_res = gs.gblup(log=False)

5) 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.23.tar.gz (3.9 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.23-cp310-abi3-win_arm64.whl (3.4 MB view details)

Uploaded CPython 3.10+Windows ARM64

janusx-1.0.23-cp310-abi3-win_amd64.whl (10.3 MB view details)

Uploaded CPython 3.10+Windows x86-64

janusx-1.0.23-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (15.5 MB view details)

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

janusx-1.0.23-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl (9.2 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

janusx-1.0.23-cp310-abi3-macosx_11_0_arm64.whl (4.3 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

janusx-1.0.23-cp310-abi3-macosx_10_12_x86_64.whl (4.8 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for janusx-1.0.23.tar.gz
Algorithm Hash digest
SHA256 e9bc111e1a5b5a634751d2a25f5330f54aec7176d2faef4cf30e99cce0af4f47
MD5 040b6c35509b05a762aee843e943fb6d
BLAKE2b-256 5d58db452b94c26509dba68e2626360b5e709e34b2ec7d4753ff9ca97c0ef8f4

See more details on using hashes here.

File details

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

File metadata

  • Download URL: janusx-1.0.23-cp310-abi3-win_arm64.whl
  • Upload date:
  • Size: 3.4 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.23-cp310-abi3-win_arm64.whl
Algorithm Hash digest
SHA256 b2d31284959970a40527ff4f3aa2e58be8a5039d703053bf79458227d4e6029d
MD5 306b9bd5b250f02860311a8b4b59cf2e
BLAKE2b-256 5b660106eb2e0a566f28d77a3bfe446fa8dbfad6c2d32bcead51d70f05e03b58

See more details on using hashes here.

File details

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

File metadata

  • Download URL: janusx-1.0.23-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 10.3 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.23-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c458ca01bb48aa42b006b1b36f25087bfda70a34448ef8fb8ebf41f5a7937d41
MD5 4ab0907a3866b21b59a51516c3ee48b0
BLAKE2b-256 1d873b598a7e36770d0b38388a84e8a5c6581c656c30dc70877fd1ce59b1ea42

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.23-cp310-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 c0dec4f4e9478103d8f73605eb05d3ea3314db8e39cc0c944b5893dc9f9dcfcb
MD5 c727dba85837b1f60a5cc66fe1165c10
BLAKE2b-256 9a7803a190dea8af62037c1aa605eeae63a2b2660ae32192c4b0c5d47310bb73

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.23-cp310-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 4fe006868fc19e9513d233ed1da7e3214f76067527bf3f08e01c7be0eb2d7331
MD5 4a323669c2ab0e75d45f012c2e9c93d9
BLAKE2b-256 c39b793719e316b65a4c8cdbadf721fdbe7e30212e9d76e05b39a08e3e235331

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.23-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fd7b3fdd243f5c365429ba5dd5ee833ec0ae3a42e3ad39cbb8d07cea0a0a4de7
MD5 d9efd64a145edd2c4d2bb8dd1da61878
BLAKE2b-256 2c573fd8cf3142d33a0124902d2f7a951bb96621cb36f7b5bd0361906fa1b934

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.23-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 104b8e10d628d9199bdff61b629ba8942f1882b42269cbc864c8e9d4c4e337be
MD5 4118b2ede2b59466268e3887cd3701ce
BLAKE2b-256 0ea0918783b6c66c005128e78fb31918922ad060641e2d461af698c8d36c9c30

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