Running SAIGE-QTL Scripts
This guide shows how to execute SAIGE-QTL analysis scripts in different computing environments. Choose the method that matches your installation approach.
Available Scripts
SAIGE-QTL provides four main R scripts for the complete analysis pipeline:
| Script | Purpose | When to Use |
|---|---|---|
step1_fitNULLGLMM_qtl.R | Fit null Poisson mixed model | Required first step for all analyses |
step2_tests_qtl.R | Perform association tests | Main analysis step for variant testing |
step3_gene_pvalue_qtl.R | Calculate gene-level p-values | Optional, for gene-based rare variant tests |
makeGroupFile.R | Create variant group files | For set-based rare variant analyses |
📁 Script Location: All scripts are in the ./SAIGEQTL/extdata directory
Quick Reference
| Environment | Command Prefix | Working Directory |
|---|---|---|
| Pixi | pixi run Rscript extdata/ | ./SAIGEQTL/ |
| Docker | docker run -v $PWD:/extdata -w /extdata wzhou88/saigeqtl:latest | ./SAIGEQTL/extdata |
| Singularity | singularity exec --bind $PWD:/extdata saigeqtl_latest.sif | ./SAIGEQTL/extdata |
🚀 Pixi Environment
Recommended method - Provides reproducible environments with automatic dependency management.
Prerequisites
- Navigate to the SAIGEQTL root directory (containing
pixi.toml) - Ensure pixi is installed and environment is set up
Basic Usage
cd ./SAIGEQTL
pixi run Rscript extdata/step1_fitNULLGLMM_qtl.R [options]
Getting Help
pixi run Rscript extdata/step1_fitNULLGLMM_qtl.R --help
Remote Directory Usage
If you’re outside the SAIGEQTL directory:
pixi run --manifest-path=/full/path/to/SAIGEQTL/pixi.toml Rscript extdata/step1_fitNULLGLMM_qtl.R [options]
How It Works
pixi runactivates the reproducible environment defined inpixi.toml- Scripts are referenced by their relative path:
extdata/script_name.R - All dependencies are automatically managed
🐳 Docker Environment
Container-based method - Pre-built environment, no local installation required.
Prerequisites
- Docker installed and running
- Navigate to the SAIGEQTL/extdata directory
Setup
cd ./SAIGEQTL/extdata
Basic Usage
docker run -v $PWD:/extdata -w /extdata wzhou88/saigeqtl:latest step1_fitNULLGLMM_qtl.R [options]
Getting Help
docker run -v $PWD:/extdata -w /extdata wzhou88/saigeqtl:latest step1_fitNULLGLMM_qtl.R --help
How It Works
-v $PWD:/extdatamounts your current directory into the container as/extdata-w /extdatasets the container’s working directory to/extdata$PWDautomatically resolves to your current directory path- All input/output files must be in the mounted directory
🧊 Singularity Environment
HPC-friendly method - Container solution compatible with high-performance computing clusters.
Prerequisites
- Singularity/Apptainer installed
- Access to
saigeqtl_latest.sifimage file - Navigate to the SAIGEQTL/extdata directory
Setup
cd ./SAIGEQTL/extdata
Basic Usage
singularity exec \
--bind $PWD:/extdata \
--cleanenv saigeqtl_latest.sif \
step1_fitNULLGLMM_qtl.R [options]
Getting Help
singularity exec \
--bind $PWD:/extdata \
--cleanenv saigeqtl_latest.sif \
step1_fitNULLGLMM_qtl.R --help
How It Works
--bind $PWD:/extdatagives the container access to your local directory--cleanenvensures a clean environment inside the container- The
.siffile path may need to be absolute if not in your PATH - Ideal for HPC environments where Docker isn’t available
📝 Important Notes
File Locations and Access
- Script location: All R scripts are in
./SAIGEQTL/extdata - Data access: Ensure input/output files are in directories accessible to your chosen environment:
- Pixi: Files can be anywhere accessible from your system
- Docker/Singularity: Files must be in bound/mounted directories
Command Structure
- Replace
[options]with actual script arguments (e.g.,--phenoFile,--genoFile,--covarColList) - Use
--helpwith any script to see all available parameters - The command patterns above work for all four SAIGE-QTL scripts - just change the script name
Universal Script Support
All examples above work with any of these scripts:
step1_fitNULLGLMM_qtl.R # Null model fitting
step2_tests_qtl.R # Association testing
step3_gene_pvalue_qtl.R # Gene-level analysis
makeGroupFile.R # Group file creation
🚀 Next Steps
- Start with Step 1 - Fit your null models with detailed examples
- Choose your analysis type:
- cis-eQTL analysis - Local variant testing
- Genome-wide analysis - Comprehensive variant screening
💡 Tips for Success
- Test first: Always run scripts with
--helpto verify they work in your environment - Path management: Use absolute paths for input/output files when possible
- Resource planning: Ensure adequate memory and storage for your dataset size
- Error checking: Review log files and error messages carefully for troubleshooting