
JWAS is a Julia software platform for analyses of univariate and multivariate Bayesian mixed effects models. These models support routine single-trait and multi-trait genomic prediction and genome-wide association studies using complete, streaming, and incomplete genomic data workflows. JWAS provides Bayesian whole-genome methods including shrinkage estimation, variable selection, annotation-aware marker priors, and dense or block genotype workflows. The features of JWAS include:
- Univariate (single-trait) analysis
- Multivariate (multi-trait) analysis
- No limitations on fixed effects (e.g., herd, year, age, sex)
- Random effects other than markers (e.g., litter, pen)
- Random effects using pedigree information
- Additive genetic effects
- Maternal effects
- Random permanent environmental effects
- Correlated residuals
- Correlated random effects
- Unknown (or known) variance components
- Use of genomic information
- Complete genomic data
- Incomplete genomic data (single-step)
- Dense genotype matrices
- Streaming genotype storage for large marker panels
- Exact fast-block sampling with
fast_blocks - Approximate independent block sampling with
independent_blocks=true
- Bayesian whole-genome marker models
- BayesA, BayesB, BayesC, and BayesR workflows
- Annotated BayesC and Annotated BayesR
- Dense 2-trait Annotated BayesC
Supporting and Citing
We hope the friendly user interface and fast computing speed of JWAS will provide power and convenience for users in both industry and academia to analyze large datasets. Further, as a well-documented open-source software tool, we hope JWAS will also be used by a group of active community members, who will contribute to the source code and help maintain the project. Junior scientists can understand and learn the methodologies for whole-genome analyses by using JWAS and reading the tutorials and source code.
If you would like to help support JWAS, please star the repository on the upper right corner here as such statistic will help to demonstrate the active involvement of the community. If you use JWAS for your research, teaching, or other activities, we would be grateful if you could cite our work following Citing.
The trouble, the error and the new feature
If you have trouble using JWAS, want new features or find errors in JWAS, please post it in our discussion group, open an issue, or contact <qtlcheng@ucdavis.edu>.
Tutorials
Theory
Manual
- Get Started
- Workflow
- BayesC and BayesR Comparison (Single-Trait)
- Annotated BayesC
- Multi-Trait Annotated BayesC
- Annotated BayesR
- Block BayesC (
fast_blocks) - When This Path Is Used
- Single-Trait BayesC Without Blocks
- Single-Trait Block BayesC in JWAS
- Exact Sequential Blocks vs Independent Blocks
- Algorithm Comparison
- Computational Complexity
- Detailed Resource Model (Current
fast_blocksPath) - Worked Large-Scale Example (
N=500,000,P=2,000,000) - What To Watch Closely
- Example: Speed/Memory Tradeoff
- Practical Guidance
- Benchmark
- Prototype-to-Production Benchmarking Guidelines
- When To Use This Page
- Core Principles
- Benchmark Types Required For JWAS
- Recommended Workflow
- Step 1: Define the production target
- Step 2: Build a shared benchmark dataset
- Step 3: Run the production smoke benchmark
- Step 4: Align deterministic setup
- Step 5: Run a one-step controlled replay
- Step 6: Compare production JWAS against local Julia diagnostics
- Step 7: Run long-chain parity
- Step 8: Run multiseed parity
- Step 9: Write the benchmark report
- Required Artifacts
- Common Failure Modes
- Acceptance Checklist
- Worked Example: BayesR
- Practical Recommendation
- Memory Usage (BayesA/B/C Marker Paths)
- Handling Large Genotype Data Without Loading the Full Matrix into Memory
- Scope
- Current JWAS Status
- Notation
- Baseline Complexity (Original BayesC)
- Baseline Memory (Original BayesC)
- Worked Example (
N=500,000,P=2,000,000) - Out-of-Core Working-Set Math (Original BayesC)
- Representation Approaches for Original BayesC
- Fast-Block Implementation (
fast_blocks) in Large-Data Context - What To Watch for
fast_blocks - Speed and I/O Considerations
- Side-by-Side Summary
- Validation Details Needed for Large-Data Streaming
- Practical Takeaways
- Streaming Genotype Backend (BayesC MVP)
- Streaming Genotype Workflow: A Conceptual Walkthrough
- Public functions
- Internal functions