v1.2.0
BioFindr v1.2.0
Breaking Changes
There are no breaking changes to the public API in this release. However, users who accessed internal (unexported) functions or module-level constants by name should note:
- The internal module-level string constants
corr,link,med,relev, andpleio(accessible as e.g.BioFindr.corr) have been removed - Internal functions have been renamed to follow Julia's snake_case convention:
groupmeans→group_means,realLLR_col→real_llr_col,llrstats_col→llr_stats_col - Source files renamed for consistency:
realLLR.jl→real_llr.jl,randomLLR.jl→random_llr.jl(plus corresponding test and documentation files)
New Exports
LBeta,coerce_scitypes!, andgenerate_test_dataare now exported (they were previously accessible but unexported despite being used prominently in the documentation)
Bug Fixes
lbeta.jl:logpdfincorrectly returned0.forx < 0; corrected to-Inf(the log-probability of an impossible event) (#25)posteriorprobs.jl: All fivetry/catchblocks previously caught every exception, silently masking real bugs. They now only catchAssertionError; all other exceptions are rethrown (#25)findr.jl:findr(dX, dG)with a categorical genotype columndGsilently produced a result matrix ofCategoricalValueobjects instead of integers. The function now validates the scitype ofdGand useslevelcode()for correct integer conversion (#25)utils.jl:getpairspreviously caused aMethodErrorwhen column names in the two input data frames did not match; it now throws an informativeErrorException(#25)utils.jl:symprobsdocstring incorrectly claimed the default combination method was"prod"; corrected to"none"(#25)utils.jl:qvaluenow clamps q-values to the interval[0, 1]and replaces noisy@infologging with@debug(#25)
Performance Improvements
utils.jl(group_means):findallis now computed once per group instead of evaluating a membership mask three times (#25)supernormalization.jl(supernormalize): The quantile lookup table is now built once per column length instead of issuing onequantile()call per element (#25)posteriorprobs.jl(pi0est): The λ-grid search now uses O(log n)searchsortedlastinstead of an O(n) linear scan (#25)
Dependency Changes
- Add
CategoricalArraysas an explicit runtime dependency (it was previously loaded as a hidden transitive dependency via DataFrames) (#25) - Move
Printffrom[deps]to[extras](test-only) (#25) - Remove
DocumenterandLiveServerfrom runtime[deps]— these are documentation-only tools (#25) - Bump compat for
MetaGraphsNextto include version 0.8 (#23) - Remove
Manifest.tomlanddocs/Manifest.tomlfrom the repository; addManifest.tomlto.gitignore(#25)
New Tests
Total test count increased from 145 to 221 (#25):
test/findr_tests.jl— comprehensive tests for allfindr()andfindr_matrix()overloads (the primary public API previously had zero tests)test/dagfindr_tests.jl— tests for all threedagfindr!methods, including cycle-freeness assertionstest/utils_tests.jl— expanded with tests forqvalue,globalfdr,globalfdr!,stackprobs,symprobs,combineprobs, andgetpairs
Documentation
- Complete previously unfinished ("TBW") docstrings in
bayesiannets.jl(#25) - Restore
push!(LOAD_PATH, "../src/")indocs/make.jlto ensure the local source is used during documentation builds rather than the registered package version (#25)
CI
- Upgrade all GitHub Actions to their latest versions (#25)
- Test against Julia
1(latest stable) instead of a pinned minor version (#25)
Full Changelog: v1.1.0...v1.2.0
This release has been identified as a backport.
Automated changelogs for backports tend to be wildly incorrect.
Therefore, the list of issues and pull requests is hidden.