Releases: Jianhua-Wang/credtools
Releases · Jianhua-Wang/credtools
v0.5.0
Added
- MESuSiE (Multiple Ancestry Sum of Single Effects) multi-ancestry fine-mapping tool, integrated via Rscript subprocess following the SuSiEx wrapper pattern
- Identifies both shared and ancestry-specific causal variants across populations
- Credible set classification (shared/population-specific) stored in
parameters["cs_types"] - Automatic cross-population SNP alignment and LD matrix subsetting
- R environment validation with clear installation guidance on error
- MESuSiE installation documentation covering native R, conda, and HPC module environments
- MESuSiE sections in fine-mapping docs and multi-input tutorial with usage examples
v0.4.10
Changed
- Reverted RSparsePro eigendecomposition optimization from v0.4.9 to preserve result consistency across all datasets
v0.4.9
Changed
- Optimized RSparsePro performance: replace repeated O(p³) matrix inversions with single eigendecomposition in
adaptive_trainloop, achieving 8-10x speedup for typical locus sizes
v0.4.8
Changed
- Optimized CLI startup speed by deferring heavy module imports (pandas, numpy, scipy, sklearn) and internal modules (credtools.credtools, credtools.locus, credtools.meta, credtools.qc) from module level to function level via lazy loading
v0.4.7
Changed
- Increased unit test coverage from 76% to 87% across 9 modules: credtools.py (59%→100%), credibleset.py (69%→97%), prepare.py (31%→95%), cli.py (34%→61%), plot.py (62%→75%), qc.py (85%→92%), validation.py (90%→97%), headers.py (90%→95%), RSparsePro.py (78%→100%)
Fixed
- Applied black/isort formatting and resolved flake8 lint errors in test files
v0.4.6
Added
- Unit tests for
susie_rss.pyinternal functions (coverage 16% → 82%): 107 tests covering credible sets, statistical gradients, SER, prior variance optimization, initialization, and integration - Unit tests for
multisusie_rss.pyinternal functions (coverage 8% → 65%): 65 tests covering S/SER_RESULTS classes, recovery functions, compute_lbf, optimization, and integration
Changed
- Upgraded
typer>=0.9.0andcojopy>=0.1.4to fix click 8.2 incompatibility
Fixed
- Added D102 and E226 to flake8 ignore list for pre-existing lint issues
v0.4.5
Added
- Outlier SNP detail tracking:
identify_outliers()now returns a DataFrame with per-criterion flags (C1_ld_mismatch,C2_marginal,C3_dentist_s) instead of a plain SNPID list outlier_snps.txt.gzoutput file saved at both per-locus and global levels, recording each outlier SNP with its triggered detection criteria- Updated QC documentation with detailed outlier detection criteria descriptions
Fixed
- Use outer join in
cochran_q()to include all SNPs across cohorts (previously only intersection)
v0.4.4
Added
- Comprehensive unit tests for all wrapper modules (93 new tests): ABF, ABF+COJO, FINEMAP, SuSiE, SuSiEx, MultiSuSiE, RSparsePro
--skipoption to meta command to resume from previous runs
Fixed
- Handle cohorts with no sumstats-LD overlap in QC metrics
- Compute heterogeneity by population in
meta_by_populationmode - Format test files and fix D403 docstring lint errors
v0.4.3
Fixed
- Update uv.lock after version bump
v0.4.2
Added
- Comprehensive unit tests for QC module (
tests/test_qc.py): 80 tests across 17 test classes coveringget_eigen,estimate_s_rss,kriging_rss,compute_dentist_s,compare_maf,snp_missingness,ld_4th_moment,ld_decay,cochran_q,locus_qc,identify_outliers,remove_snps_from_locus,save_cleaned_locus,remove_outliers_and_rerun_qc,locus_qc_summary,qc_locus_cli,safe_qc_locus_cli, andloci_qc— achieving 82% coverage forcredtools/qc.py
Changed
- Rewrote
docs/qc.mdto match actual code: tabbed quick-start examples, Python API example using exampledata, complete CLI parameter reference, QC method descriptions (Kriging RSS, Dentist-S, MAF comparison), accurate output directory structure and column tables, mermaid pipeline diagram, collapsible troubleshooting FAQ, and note that heterogeneity metrics are now incredtools meta