Genetic Recombination Imputation Tool Set
- pixi (v0.5+)
- NVIDIA-based GPU hardware with CUDA (v12+)
- For
gpuenvironment only (see next section)
- For
- Linux or macOS OS environment preferred
Retrieve project code
git clone https://github.com/maize-genetics/grits.git
cd gritsOption A (preferred) - set up virtual environment (pixi)
# For CPU only
pixi install
# For Linux + GPU machines
pixi install --environment gpuOption B - set up virtual environment (conda)
conda env create -f environment.ymlConda:
python impute.py --input <input_file> --output <output_file> --model <imputation_method>Pixi:
pixi run -- python impute.py --input <input_file> --output <output_file> --model <imputation_method>- Node.js
- Rust (with
wasm32-unknown-unknowntarget for web builds) - wasm-pack (for web builds only)
If running this for the first time:
# First install pixi
# Next, run the pixi install script
pixi install
# Initialize npm environment
npm install
# Set up wheelhouse
npm run download-python
npm run build-wheelhouse
# Run the dev container of the Tauri app
npm run tauri devFor subsequent runs, just use npm run tauri dev.
The PS4G and BED visualization components can be built as a standalone static web application. File parsing runs entirely client-side via Rust compiled to WebAssembly -- no server required.
# Add the WASM compilation target
rustup target add wasm32-unknown-unknown
# Install wasm-pack
cargo install wasm-pack
# Install npm dependencies
npm install# Start the Vite dev server in web mode (port 3001)
npm run dev:web# Build WASM + TypeScript + Vite to dist-web/
npm run build:web
# Preview the production build locally
npm run preview:webThe dist-web/ directory is a fully static site that can be deployed to
GitHub Pages, Netlify, Vercel, S3, or any static file host.
| Command | Description |
|---|---|
npm run dev |
Vite dev server for Tauri (port 3000) |
npm run dev:web |
Vite dev server for web (port 3001) |
npm run build |
Production frontend build for Tauri (dist/) |
npm run build:web |
Full web pipeline: WASM + TS + Vite (dist-web/) |
npm run build:wasm |
Build only the WASM module (src/wasm/pkg/) |
npm run preview:web |
Serve the dist-web/ production build locally |
npm run tauri dev |
Launch the full Tauri desktop app in development mode |
pytest --cov=src --cov-report=term-missing --cov-report=html