Skip to main content

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

Project description

JanusX

简体中文(推荐) | English

Project Overview

JanusX is a high-performance, ALL-in-ONE suite for quantitative genetics that unifies genome-wide association studies (GWAS) and genomic selection (GS). It incorporates well-established GWAS methods (LM, LMM, and FarmCPU) and a flexible GS toolkit including GBLUP and various machine learning models. It also combines routine genomic analyses, from data processing to publication-ready visualisation.

It provides significant performance improvements over tools like GEMMA, GCTA, and rMVP, especially in multi-threaded computation.

Installation

PyPI

pip install janusx

From Source

git clone https://github.com/FJingxian/JanusX.git
cd JanusX
pip install .

Building from source requires a Rust toolchain (maturin will compile the native core).

Pre-compiled Releases

We provide pre-compiled binaries on the GitHub Releases page for Windows, Linux, and macOS. Download and extract the archive, then run the executable directly.

Running the CLI

jx -h
jx <module> [options]

Note that running jx -h might take a while at first! This is because the Python interpreter is compiling source code into the pycache directory. Subsequent runs will use the pre-compiled code and load much faster!

Available Modules

Module Description
gwas Unified GWAS wrapper (LM/LMM/fastLMM/FarmCPU)
gs Genomic Selection (GBLUP, rrBLUP, BayesA/B/Cpi)
postGWAS Visualization and annotation
grm Genetic relationship matrix calculation
pca Principal component analysis
sim Genotype and phenotype simulation

Quick Start Examples

GWAS Analysis

# Using unified gwas module (select one or more models)
jx gwas --vcf data.vcf.gz --pheno pheno.txt --lmm -o results

# Run multiple models at once
jx gwas --vcf data.vcf.gz --pheno pheno.txt --lm --lmm --fastlmm --farmcpu -o results

# With PLINK format
jx gwas --bfile genotypes --pheno phenotypes.txt --grm 1 --qcov 3 --thread 8 -o results

# With diagnostic plots (SVG)
jx gwas --vcf data.vcf.gz --pheno pheno.txt --lmm --plot -o results

Genomic Selection

# Run both GS models
jx gs --vcf data.vcf.gz --pheno pheno.txt --GBLUP --rrBLUP -o results

# Specific models
jx gs --vcf data.vcf.gz --pheno pheno.txt --GBLUP -o results

# Bayesian GS models
jx gs --vcf data.vcf.gz --pheno pheno.txt --BayesA --BayesB --BayesCpi -o results

# With PCA-based dimensionality reduction
jx gs --vcf data.vcf.gz --pheno pheno.txt --GBLUP --pcd -o results

Visualization

# Generate Manhattan and QQ plots
jx postGWAS -f results/*.lmm.tsv --threshold 1e-6

# With SNP annotation
jx postGWAS -f results/*.lmm.tsv --threshold 1e-6 -a annotation.gff --annobroaden 50

manhanden&qq

Test data in example is from genetics-statistics/GEMMA, published in Parker et al, Nature Genetics, 2016

Population Structure

# Compute GRM
jx grm --vcf data.vcf.gz -o results

# PCA analysis
jx pca --vcf data.vcf.gz --dim 5 --plot --plot3D -o results

Input File Formats

Phenotype File

Tab-delimited, first column is sample ID, subsequent columns are phenotypes:

samples trait1 trait2
indv1 10.5 0.85
indv2 12.3 0.92

Genotype Files

  • VCF: .vcf or .vcf.gz
  • PLINK: .bed/.bim/.fam (use prefix)

Architecture

Core Libraries

  • python/janusx/pyBLUP - Core statistical engine

    • GWAS implementations (LM, LMM, FarmCPU)
    • QK matrix calculation with memory-optimized chunking
    • PCA computation with randomized SVD
    • Cross-validation utilities
  • python/janusx/gfreader - Genotype file I/O

    • VCF reader
    • PLINK binary reader (.bed/.bim/.fam)
    • NumPy format support
  • python/janusx/bioplotkit - Visualization

    • Manhattan and QQ plots
    • PCA visualization (2D and 3D GIF)
    • LD block visualization

Native Core (src/)

Rust kernels for fast linear algebra and association testing.

CLI Entry Points (python/janusx/script/)

Each module corresponds to a CLI command. The launcher script (jx) dispatches to script/<name>.py.

Key Features

  • Two Core Functions: Unified GWAS and GS workflows in one tool
  • Easy to Use: Simple CLI interface, minimal configuration required
  • High Performance: Optimized LMM computation with multi-threading

Key Algorithms

GWAS Methods

Method Description Best For
Linear Model (LM) Standard GLM for association testing Large datasets without population structure
Linear Mixed Model (LMM) Incorporates kinship matrix to control population structure Most GWAS scenarios
fastLMM Fixed-lambda mixed model for speed Fast approximate screening
FarmCPU Iterative fixed/random effect alternation High power with strict false positive control

GS Methods

Method Description Best For
GBLUP Genomic Best Linear Unbiased Prediction Baseline prediction
rrBLUP Ridge Regression BLUP Additive genetic value estimation
BayesA Marker effects with scaled-t prior Polygenic traits with heavier tails
BayesB Variable selection with marker-specific variance Sparse genetic architecture
BayesCpi Variable selection with shared variance Sparse architecture with shared variance

Kinship Methods

  • Method 1 (VanRaden): Centered GRM (default)
  • Method 2 (Yang): Standardized/weighted GRM

Python Version

Requires Python 3.10+

Test Data

Example data in example/ directory from Parker et al, Nature Genetics, 2016 (via GEMMA project)

Citation

@software{JanusX,
  title = {JanusX: High-performance GWAS and Genomic Selection Suite},
  author = {Jingxian FU},
  url = {https://github.com/FJingxian/JanusX}
}

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.10.tar.gz (2.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.10-cp313-cp313-win_amd64.whl (563.8 kB view details)

Uploaded CPython 3.13Windows x86-64

janusx-1.0.10-cp313-cp313-manylinux_2_28_x86_64.whl (670.1 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

janusx-1.0.10-cp313-cp313-macosx_11_0_arm64.whl (593.5 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

janusx-1.0.10-cp312-cp312-win_amd64.whl (564.6 kB view details)

Uploaded CPython 3.12Windows x86-64

janusx-1.0.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (670.0 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

janusx-1.0.10-cp312-cp312-macosx_11_0_arm64.whl (593.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

janusx-1.0.10-cp311-cp311-win_amd64.whl (565.0 kB view details)

Uploaded CPython 3.11Windows x86-64

janusx-1.0.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (669.1 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

janusx-1.0.10-cp311-cp311-macosx_11_0_arm64.whl (594.7 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

janusx-1.0.10-cp310-cp310-win_amd64.whl (564.8 kB view details)

Uploaded CPython 3.10Windows x86-64

janusx-1.0.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (669.7 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

janusx-1.0.10-cp310-cp310-macosx_11_0_arm64.whl (594.5 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for janusx-1.0.10.tar.gz
Algorithm Hash digest
SHA256 b02685e12ed12147aeaf51df3e4356ffa39cc5b1e0b8261b5ace978d9230142e
MD5 0c163d2637c2aa76b4fd41a5d9a1c527
BLAKE2b-256 13eefbc5e47d01b52a6865fc2dd37d1d32ba5f2002cc528d132b900a6ea01d98

See more details on using hashes here.

File details

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

File metadata

  • Download URL: janusx-1.0.10-cp313-cp313-win_amd64.whl
  • Upload date:
  • Size: 563.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.10-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 0c3acdad3ef22634a4073a6c6802560b1e174c481d55d32ac68902dca2b90853
MD5 99abd0808aa2d5700bb6d5fa5aecb59b
BLAKE2b-256 2d8077e33152407853ff5e46b73c8bc351ae9cf8003b7fcee1b90ade202ef1df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.10-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dd26fa01f2e7502427d2be74f9c4096e771dbee84fbdb083e4e5636f9c34a202
MD5 e6aef0790f9d31148e634c1a50ed9c29
BLAKE2b-256 02459767c4b7f5906ecb5e0db5270b2331dc4b9e9c819a27194a33872e0a43a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.10-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0a742416e532fa70b0b132f5985c42249a1f5b6908b24455cc88aca8cafd0f37
MD5 70121c02b6897f9538eb00147930a325
BLAKE2b-256 053f264b94bcb12d50ba2d103199dd6066770462bfc6ab70cb3d58fa75de36ef

See more details on using hashes here.

File details

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

File metadata

  • Download URL: janusx-1.0.10-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 564.6 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.10-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0ad915f0e1afdad226ee46280341c4b89131d3b8a227e907213f0a717c0cdf1e
MD5 49db12f5d8b3d9fe72a5487a8d34b8ec
BLAKE2b-256 97993adedb4783c95128ffd909c85699ee74d1672e97bfbeceee13f5c582427e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.10-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 6079a6b48cde45b766ce8cdda5744741050b8501c3e0e2a4cab72453905b45bf
MD5 0edd905a31af02bc4bd8e5c454f90d4f
BLAKE2b-256 22d6daf9c6f075ce702a0c099d6d05e636be8fbb1c5b69bb41df568acb6b361e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.10-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 edce4fd9712ba5d0f0457516aa9deb6d0c41a637d25b63451da3cd5ae3185da5
MD5 bd17ed83fbfa9a9f3f06356f879f3d53
BLAKE2b-256 beb822c75f169a1a5ce2e047b5f73d2781b8c2a2b72c984993bdceaf93a2da06

See more details on using hashes here.

File details

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

File metadata

  • Download URL: janusx-1.0.10-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 565.0 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.10-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5a01c048cc1757bd4c31f23a9dc56494631bdb22b39717972fad126c2745a96c
MD5 b01c9732912eb926296da124a2b36467
BLAKE2b-256 e0f9c5174e87ee9599fe76250a6fe4da887de24e67ec9e911cda5efe6355683c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.10-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3717cef9207768ab793ad17f37a59f8e44e7797881c912a730ca6b11b7a0fee9
MD5 7fe506f64c8fc1d7e53ede57ae8f8082
BLAKE2b-256 68f7db0273168a7d7508e214888b94b8b54769bc49074a8a9dc6cee05c067258

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.10-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 598f4e118703b17e054ac15efea9992a0ba55d9a225d9a57759d58888a580dfc
MD5 02a3348fd1a5305095a6fc932cfe6341
BLAKE2b-256 dc69058ac947fd9a54a453860a6e91b9890b44ae2945e51c4ce7d1b915682a43

See more details on using hashes here.

File details

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

File metadata

  • Download URL: janusx-1.0.10-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 564.8 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.10-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1a0962dccc8be7662f77f8dc527cc6ecdb5127a81ff4a68de8c39e2c62f868dd
MD5 9d7d64fa96ca0b404f53a8444f1c1435
BLAKE2b-256 b2157c352702946ce9ccc7b18120e862a1d5cd0f6299ad4132ee641fd126e754

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.10-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c47523b49bb79aaf148fee6212d1068b9278529434ad7539f88be2fa54c6ad39
MD5 424e1ce9038b4df75206356e859c9ebf
BLAKE2b-256 86d11d14845c9e269d2e9e6ea4e879ef4bc241670b39e1414fb6eb6b134c084d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for janusx-1.0.10-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 046eb42a8af3eafcf47d1a2d76b1f976fb2939cc730715f72bc4305baec299d3
MD5 37b1a5a96eff5eea8c45169d79cf9474
BLAKE2b-256 8b4e48b310d74d01d9186037869938492adc94143dc22b4805f075839335a30d

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