Skip to main content

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

Project description

JanusX

简体中文 | English | Zea Eureka

JanusX is a high-performance toolkit for quantitative genetics. It combines Rust-accelerated kernels (PyO3) with Python CLI workflows for GWAS, genomic selection (GS), post-analysis visualization, and variant-processing pipelines.

Overview

  • Unified CLI entry: jx
  • Core GWAS models: LM, LMM, FarmCPU
  • Core GS models: GBLUP, rrBLUP, BayesA, BayesB, BayesCpi
  • Streaming genotype reader for VCF/PLINK/TXT with low-memory workflows
  • Integrated post-analysis tools: postgwas, postbsa, postgarfield
  • Additional utilities: grm, pca, gmerge, fastq2vcf, sim, simulation

Installation

Requirements:

  • Python >=3.9
  • Rust toolchain (only needed when local wheel is unavailable and build from source is required)

PyPI (recommended)

pip install -U janusx
jx -h

Latest GitHub version

pip install --upgrade --force-reinstall --no-cache-dir git+https://github.com/FJingxian/JanusX.git
jx -h

Docker (source image build)

git clone https://github.com/FJingxian/JanusX.git
cd JanusX
docker build -t janusx:latest .
docker run --rm janusx:latest -h

In-place update for an installed JanusX

jx --update

CLI Modules

Genome-wide Association Studies (GWAS)

  • grm: build genomic relationship matrix from genotype (-vcf or -bfile)
  • pca: PCA for population structure from genotype, GRM prefix, or existing PCA prefix
  • gwas: run genome-wide association analysis (LM, LMM, fastLMM, FarmCPU)
  • postgwas: post-process GWAS results (Manhattan/QQ/annotation/merge/LD views)

Genomic Selection (GS)

  • gs: genomic prediction and model-based selection

GARFIELD

  • garfield: random-forest based marker-trait association
  • postgarfield: summarize and visualize GARFIELD outputs

Bulk Segregation Analysis (BSA)

  • postbsa: post-process and visualize BSA results

Pipeline and Utility

  • fastq2vcf: variant-calling pipeline from FASTQ to VCF
  • gmerge: merge genotype/variant datasets

Benchmark

  • sim: quick simulation workflow
  • simulation: extended simulation and benchmarking workflow

For full options, run:

jx <module> -h

Quick Start

1) GWAS

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

2) Post-GWAS (single result)

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

3) Post-GWAS merge plot (multiple GWAS files in one figure)

jx postgwas \
  -gwasfile testb/mouse_hs1940.test0.add.lmm.tsv \
  -merge testb/mouse_hs1940.test0.dom.lmm.tsv \
  -merge testb/mouse_hs1940.test0.het.lmm.tsv \
  -merge testb/mouse_hs1940.test0.rec.lmm.tsv \
  -manh -qq -o testpost

4) Genomic Selection

jx gs -vcf example/mouse_hs1940.vcf.gz -p example/mouse_hs1940.pheno -GBLUP -cv 5 -plot -o testgs

5) Post-BSA

jx postbsa -file QBproject/5.table/all.tsv -b1 JS -b2 JR -window 1 -format pdf -o QBproject/5.table

6) FASTQ to VCF pipeline

jx fastq2vcf -r /path/ref.fa -i /path/fastq_dir -w /path/workdir -b nohup -m 2

Input File Formats

Phenotype file

Tab-delimited. First column is sample ID, remaining columns are traits.

sample	trait1	trait2
id1	10.5	0.85
id2	12.3	1.00
id3	8.6	0.92

Genotype files

  • VCF: .vcf or .vcf.gz (-vcf)
  • PLINK: .bed/.bim/.fam prefix (-bfile)
  • Text genotype matrix (-file, selected modules):
    • header row is sample IDs
    • subsequent rows are SNP-major numeric genotype values

Example (text matrix):

id1	id2	id3	id4
0	1	2	0
2	2	1	0
0	0	1	1

GWAS optional matrices

  • GRM (-k/--grm in gwas): numeric matrix aligned to genotype sample order
  • Q/PC covariate (-q/--qcov in gwas): PC count or covariate matrix file
  • Covariate (-c/--cov in gwas): numeric matrix aligned to genotype sample order

All matrix files should be numeric-only, space/tab-delimited, without row/column headers.

GRM/PCA file conventions (updated)

  • jx grm accepts genotype input only: -vcf or -bfile
  • jx grm outputs:
    • default text mode: {prefix}.grm.txt and {prefix}.grm.txt.id
    • with --npy: {prefix}.grm.npy and {prefix}.grm.npy.id
  • jx pca inputs (mutually exclusive):
    • genotype: -vcf or -bfile (compute PCA from genotype)
    • GRM prefix: -k/--grm <prefix> (expects {prefix}.grm.id and {prefix}.grm.txt or {prefix}.grm.npy)
    • existing PCA prefix: -q/--qcov <prefix> (expects {prefix}.eigenval and {prefix}.eigenvec, visualization-only mode)

Common Output Naming

  • gwas: {prefix}.{trait}.{model}.tsv and optional {prefix}.{trait}.{genetic_model}.{model}.svg
  • postgwas: {prefix}.manh.{format}, {prefix}.qq.{format}, {prefix}.{thr}.anno.tsv
  • postgwas merge mode: {prefix}.merge.manh.{format}, {prefix}.merge.qq.{format}
  • postbsa:
    • {prefix}.{bulk1}vs{bulk2}.snpidx.{format}
    • {prefix}.{bulk1}vs{bulk2}.bsa.{format}
    • {prefix}.{bulk1}vs{bulk2}.smooth.tsv
    • {prefix}.{bulk1}vs{bulk2}.thr.tsv
  • gs: {prefix}.{trait}.gs.tsv

Python API (selected)

from janusx.gfreader import load_genotype_chunks

for geno, sites in load_genotype_chunks("example/mouse_hs1940.vcf.gz", chunk_size=50000):
    # geno: (m, n) float32 genotype chunk
    # sites: variant metadata list
    pass
from janusx.gtools.wgcna import cor, adj, tom, cluster

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

MIT License. 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.13.tar.gz (3.0 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.13-cp314-cp314-win_amd64.whl (921.5 kB view details)

Uploaded CPython 3.14Windows x86-64

janusx-1.0.13-cp314-cp314-manylinux_2_28_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

janusx-1.0.13-cp314-cp314-macosx_11_0_arm64.whl (931.5 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

janusx-1.0.13-cp313-cp313-win_amd64.whl (920.8 kB view details)

Uploaded CPython 3.13Windows x86-64

janusx-1.0.13-cp313-cp313-manylinux_2_28_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

janusx-1.0.13-cp313-cp313-macosx_11_0_arm64.whl (932.2 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

janusx-1.0.13-cp312-cp312-win_amd64.whl (920.9 kB view details)

Uploaded CPython 3.12Windows x86-64

janusx-1.0.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

janusx-1.0.13-cp312-cp312-macosx_11_0_arm64.whl (932.7 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

janusx-1.0.13-cp311-cp311-win_amd64.whl (923.2 kB view details)

Uploaded CPython 3.11Windows x86-64

janusx-1.0.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

janusx-1.0.13-cp311-cp311-macosx_11_0_arm64.whl (938.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

janusx-1.0.13-cp310-cp310-win_amd64.whl (923.3 kB view details)

Uploaded CPython 3.10Windows x86-64

janusx-1.0.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

janusx-1.0.13-cp310-cp310-macosx_11_0_arm64.whl (941.2 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

janusx-1.0.13-cp39-cp39-win_amd64.whl (925.6 kB view details)

Uploaded CPython 3.9Windows x86-64

janusx-1.0.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.0 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

janusx-1.0.13-cp39-cp39-macosx_11_0_arm64.whl (942.9 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for janusx-1.0.13.tar.gz
Algorithm Hash digest
SHA256 44421f9f52e3fa54c154e5fcfbf5d50cbb05cc25fd3bf38e7c3cb8d29cb876a0
MD5 733e4d7a072fcce8990c5bdc6a181628
BLAKE2b-256 77a2cda6737a211f57a2bdcfe81ef3e0d50642d36df3021de4b52238cbbbeca7

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp314-cp314-win_amd64.whl.

File metadata

  • Download URL: janusx-1.0.13-cp314-cp314-win_amd64.whl
  • Upload date:
  • Size: 921.5 kB
  • Tags: CPython 3.14, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for janusx-1.0.13-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 af1e209aa35333f8445717cb23dc22afc25f0485b4c47efa18a708b5d2a80030
MD5 4aded0b53c01864ae767fc32db586088
BLAKE2b-256 c89b4ed61c075d0717fc4cfc187a92d0d05f4ce01dc4b52de23c61c3dcc30e93

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for janusx-1.0.13-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2bda73d9b4c103f1ed1778ce46351dfa48de7e152eef5f6854c9620f06fefc54
MD5 db2f71fe22a814b7c0a486352f1401bf
BLAKE2b-256 f60d8f3cc5298fc9b8d86d180a3c95340ed120a304cb6610396105716b05b686

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for janusx-1.0.13-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7cffeffe1d25fccc2da38fecadc89342bfbb089fe0eee2d7ea6c445a5a98a3ba
MD5 477de86104742d1fa1c649532ccf4944
BLAKE2b-256 248e7d6049633b743af8c5bc8890760252efffd11bb38b98212ac664a1051f1c

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp313-cp313-win_amd64.whl.

File metadata

  • Download URL: janusx-1.0.13-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 920.8 kB
  • Tags: CPython 3.13, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for janusx-1.0.13-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 81c97ae4ac2a10af919512308b96d28f4dda121c2ae028680eb4443f193acab0
MD5 62a65217a15fe1050e6eae49b580b020
BLAKE2b-256 9bfe411fc1cdcae1890cb3e1c01a6628efd05fe017ca1b1e975e877c575c3286

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for janusx-1.0.13-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 80bb287f3c8f02aa81badf83e621aa722ad2fb8db547ed3703293b950b68a163
MD5 e1d39bcdc8a0392129a3f914bfad3c2d
BLAKE2b-256 4807a6d2368361b1a3a31ba3ffe427595ffabff5d7db7ecaf7253d7a710a8072

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for janusx-1.0.13-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bac1b72880fa9ab444aa01edc785f98bd4be623e1910c2ef5c935bdb5a662671
MD5 6b9fc36b9d80cedf309a624ad4dd182f
BLAKE2b-256 5d61e37175798cc4d9f34a4e0df7ed2a1e6ed0c9b78831b9b45d04f6b6428c2d

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: janusx-1.0.13-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 920.9 kB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for janusx-1.0.13-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 df833c3acbf81eebaec59639b87a57412ec3b11c4dbfc7e382a812a2379d8508
MD5 6b75e85d6ec2f054e485f30a8a2513a4
BLAKE2b-256 8d84fb6592d580e3a0976fc6448a89820a7ffe2787212e89ea2f737d79b799b4

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for janusx-1.0.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 561b0af27607df907654ca6ce34efdeda0e57229f14d65ccb7509ee61aebe968
MD5 b201b1ce2da5115450355d4446bc313f
BLAKE2b-256 3165e629ed7e5ceacb956c88988cabd19e66fe73f636682a524a7e49563e71ef

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for janusx-1.0.13-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f7d342dac720877112867a22491e466baa5222e0a8512a6b7d7bbdead0c32e4f
MD5 d127e7f3ef5dcc183f48e22cbb5152dd
BLAKE2b-256 4b9da448ee0886aa517e6371fc8414d7c3a44ef20da4ba1bba186ee48d88d4f9

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: janusx-1.0.13-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 923.2 kB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.9.4

File hashes

Hashes for janusx-1.0.13-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7b9a12095c90649b39c5973cc4360b8f8060851e2532da9ac765a79fcca26f14
MD5 6a3c05d2ca8b1edefa1173152e54305e
BLAKE2b-256 500a7f4b7f0938fbd2d58871dfe2365d4c746f2242e590ce2966166aaac61570

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for janusx-1.0.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6d1568836e51b0218ddf5d96872049ea7ed5ab1169a4d026f6a7e7ad3bb2cb96
MD5 490e56f88ed35eabc60dd1de8a42839e
BLAKE2b-256 453dc71b65f1cde5a3d5bb9c99cdbb1519a0475df25573d50109f0580aa1dae7

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for janusx-1.0.13-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 08520f1008286bded70bd471e5b152fb984e96dd9d6bffc2a90e532e93ee0f9d
MD5 5659fc251942c5db00c2f8eafa1ca8b3
BLAKE2b-256 c613e20cd6a29ae84651cffd80ad2f3f183a4eda5664e0315ee9b4a784421e28

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: janusx-1.0.13-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 923.3 kB
  • 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.13-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 9649c1f3debfc32432e4afaecc4b2a182aa2e2ac6651617a11e640388ed550f4
MD5 ab81988d6526a3a48a68188095d9f181
BLAKE2b-256 d632da2fec5fa842f66bba4a84df3532d854140b89129370c5f43d5bc67fd72f

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for janusx-1.0.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 84a00775dbae3c946fe027979a00a4c68f5161aa6b2a4c209f7c46f01f563639
MD5 a8b19f6cc79459a07016212548f69c0e
BLAKE2b-256 742307a37c209df3d47b38db5d89a8201931b1b178f3fe3a157672df54f9f1ed

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for janusx-1.0.13-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bb40606b50251629912b6abe6a885692937847567d5b56205bd27a4cdd6ed722
MD5 6b0ec810570c0afd18615860a6300987
BLAKE2b-256 803b3bd1e59ccc4f5afc66f4dec83ba2328c21866e84186e0a1be252a9c73eb1

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: janusx-1.0.13-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 925.6 kB
  • 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.13-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 f439082043383b45af1727ba18c013e2428525a034bbf162086859a40fd85579
MD5 f50e2c5e163d70f059787f061e5ec265
BLAKE2b-256 7deae5d6a3c676d8132027311c33df62653c5ed92c9b0da8086c29dc2ec8c77f

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for janusx-1.0.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 769fdc23353acc6550ff23ccf471f7131adb0ee4462aa0a874cb359ab8b56475
MD5 b66d07e379af41f982502d8a6b69e357
BLAKE2b-256 81e23cc243946994f8249ccb0a5026047b8574498db56e6f8206bba3e523eea2

See more details on using hashes here.

File details

Details for the file janusx-1.0.13-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for janusx-1.0.13-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a2872ff99db4186089776b1d46cb1581c861313c020c739124a71da47c7d5d17
MD5 9b274dd158b803bcd3ea667d2fc3d8de
BLAKE2b-256 a6868d73c99e4d17e496c3678c1b0c20a252d5edfcb44718ff6516bb1934df3a

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