Skip to content

v1.2.0

Choose a tag to compare

@github-actions github-actions released this 16 Apr 08:47
f20bcad

BioFindr v1.2.0

Diff since v1.1.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, and pleio (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!, and generate_test_data are now exported (they were previously accessible but unexported despite being used prominently in the documentation)

Bug Fixes

  • lbeta.jl: logpdf incorrectly returned 0. for x < 0; corrected to -Inf (the log-probability of an impossible event) (#25)
  • posteriorprobs.jl: All five try/catch blocks previously caught every exception, silently masking real bugs. They now only catch AssertionError; all other exceptions are rethrown (#25)
  • findr.jl: findr(dX, dG) with a categorical genotype column dG silently produced a result matrix of CategoricalValue objects instead of integers. The function now validates the scitype of dG and uses levelcode() for correct integer conversion (#25)
  • utils.jl: getpairs previously caused a MethodError when column names in the two input data frames did not match; it now throws an informative ErrorException (#25)
  • utils.jl: symprobs docstring incorrectly claimed the default combination method was "prod"; corrected to "none" (#25)
  • utils.jl: qvalue now clamps q-values to the interval [0, 1] and replaces noisy @info logging with @debug (#25)

Performance Improvements

  • utils.jl (group_means): findall is 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 one quantile() call per element (#25)
  • posteriorprobs.jl (pi0est): The λ-grid search now uses O(log n) searchsortedlast instead of an O(n) linear scan (#25)

Dependency Changes

  • Add CategoricalArrays as an explicit runtime dependency (it was previously loaded as a hidden transitive dependency via DataFrames) (#25)
  • Move Printf from [deps] to [extras] (test-only) (#25)
  • Remove Documenter and LiveServer from runtime [deps] — these are documentation-only tools (#25)
  • Bump compat for MetaGraphsNext to include version 0.8 (#23)
  • Remove Manifest.toml and docs/Manifest.toml from the repository; add Manifest.toml to .gitignore (#25)

New Tests

Total test count increased from 145 to 221 (#25):

  • test/findr_tests.jl — comprehensive tests for all findr() and findr_matrix() overloads (the primary public API previously had zero tests)
  • test/dagfindr_tests.jl — tests for all three dagfindr! methods, including cycle-freeness assertions
  • test/utils_tests.jl — expanded with tests for qvalue, globalfdr, globalfdr!, stackprobs, symprobs, combineprobs, and getpairs

Documentation

  • Complete previously unfinished ("TBW") docstrings in bayesiannets.jl (#25)
  • Restore push!(LOAD_PATH, "../src/") in docs/make.jl to 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.