v0.2.0 - Multi-trait Support & Usability Improvements
New Features
Multi-trait Phenotype Support
- Analyze multiple traits in a single PANICLE call - pass a phenotype file with ID + multiple trait columns
- Results are organized by trait:
results['Trait1']['GLM'],results['Trait2']['MLM'], etc. - Single-trait usage remains fully backward compatible
Automatic Sample Alignment
- PANICLE now automatically matches sample IDs between phenotype and genotype files
- Samples present in only one file are excluded with clear reporting
- Per-trait exclusion of individuals with missing or non-finite phenotype/covariate values
Convenience Methods
AssociationResults.manhattan_plot()and.qq_plot()methods for quick visualization directly from results
Improved Data Loading
- Genotype file paths now work directly in
PANICLE()(VCF, PLINK .bed, HapMap) - Loader functions (
load_genotype_vcf,load_phenotype_file, etc.) re-exported from top-levelpaniclenamespace - Case-insensitive and whitespace-tolerant format/trait name matching
Bug Fixes
- Fix unsafe float equality comparisons in LD pruning (BLINK/FarmCPU)
- Suppress spurious floating-point warnings on Apple Silicon (arm64)
- Fix Python 3.9 compatibility (union type syntax)
- Fix mutable default argument in
PANICLE()method parameter
Improvements
- Replace
print()statements with Pythonloggingmodule throughout - Vectorized IBS kinship computation (faster than nested loops)
- Default methods changed to
GLM, MLM, FarmCPU(removed BLINK from defaults) - Better error messages when traits are not found (shows available columns)
- Added CITATION.cff for easy citation via GitHub
Documentation
- Added Python API quickstart with examples in README
- Added CLI usage section with options table
- Fixed docstring/code mismatches