A large scale restructuring of the code base to improve efficiency and usability.
Changed
- Moved plotting script to its own separate module.
- Updated some method names / commandline flags to be consistent throughout.
- Updated the
VIPRSclass to allow for more flexibility in the optimization process. - Removed the
VIPRSAlphamodel for now. This will be re-implemented in the future,
using better interfaces / data structures. - Moved all hyperparameter search classes/models to their own directory.
- Restructured the
viprs_fitcommandline script to make the code cleaner,
do better sanity checking, and introduce process parallelism over chromosomes.
Added
- Basic integration testing with
pytestand GitHub workflows. - Documentation for the entire package using
mkdocs. - Integration testing / automating building with GitHub workflows.
- New self-contained implementation of E-Step in
CythonandC++.- Uses
OpenMPfor parallelism across chunks of variants. - Allows for de-quantization on the fly of the LD matrix.
- Uses BLAS linear algebra operations where possible.
- Allows model fitting with only
- Uses
- Benchmarking scripts (
benchmark_e_step.py) to compare computational performance of different implementations. - Added functionality to allow the user to track time / memory utilization in
viprs_fit. - Added
OptimizeResultclass to keep track of the info/parameters of EM optimization. - New evaluation metrics
pseudo_metricshas been moved to its own module to allow for more flexibility in evaluation.- New evaluation metrics for binary traits:
nagelkerke_r2,mcfadden_r2,
cox_snell_r2liability_r2,liability_probit_r2,liability_logit_r2. - New function to compute standard errors / test statistics for all R-Squared metrics.