Skip to content

Releases: tmichoel/BioFindr.jl

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 07 Jul 12:58
85c3270

BioFindr v1.4.0

Diff since v1.3.0

Breaking Changes

There are no breaking changes in this release.

New Features

  • Add fit_mixdist_hist function in posteriorprobs_hist.jl: a histogram-based LLR-to-posterior-probability conversion ported from the original Findr C implementation. The function supports all five BioFindr tests (:corr, :link, :med, :relev, :pleio) and uses unequal-bin histogram construction with iterative bin-edge refinement to match the null distribution (#29)
  • pprob_col now accepts method="hist" as a third mixture-fitting option in addition to the existing "kde" and "moments" options (#29)

Behavior Changes

  • The fallback method used when method="moments" raises an AssertionError in pprob_col is changed from KDE to histogram (fit_mixdist_hist) (#29)
  • The default method for pprob_col remains kde (a previous intermediate commit set it to hist; this was reverted back to kde before release)

Dependency Changes

  • Add Interpolations as a runtime dependency (required by fit_mixdist_hist for spline interpolation during histogram construction) (#29)
  • Bump compat for Interpolations to include version 0.16 (#30)

Tests

  • Add a fit_mixdist_hist test set in test/postprobs_tests.jl covering all five BioFindr test types, validating that posterior probabilities are in [0, 1] and are non-decreasing with respect to the LLR values (#29)
  • Update existing pprob_col test sets to explicitly test the "hist" method and verify fallback-from-"moments" behaviour (#29)

Documentation

  • Add a new ## Histogram-based conversion of the mixture distribution section in docs/src/posteriorprobs.md with API docs for fit_mixdist_hist (#29)
  • Update docs/src/index.md to mention all three posterior-probability estimation approaches (histogram, moments, KDE) (#29)
  • Update the note at the end of docs/src/posteriorprobs.md to reflect that the histogram method is available as an option (#29)

Full Changelog: v1.3.0...v1.4.0

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 04 Jun 12:25
e2f050d

BioFindr v1.3.0

Diff since v1.2.0

Breaking Changes

There are no breaking changes in this release.

Behavior Changes

  • Change the default LLR mixture-distribution fitting method from moments to kde across public inference entry points (findr, findr_matrix, and pprob_col) and update docstrings accordingly (#27)
  • Update posterior-probability tests to validate the new default behavior while keeping explicit method="moments"/method="kde" support (#27)

Documentation

  • Clarify posterior-probability docs to highlight that kernel density estimation is now the default method and how to switch methods explicitly (#27)
  • Minor markdown cleanup in docs/src/posteriorprobs.md (#27)

Logging

  • Reduce noise when π₀ = 1 in KDE fitting by changing a warning log to debug level in fit_mixdist_KDE (#27)

Full Changelog: v1.2.0...v1.3.0

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.

v1.1.0

Choose a tag to compare

@github-actions github-actions released this 09 Apr 12:16
a784e45

BioFindr v1.1.0

Diff since v1.0.5

Breaking Changes

There are no breaking changes in this release.

Changes

  • Broaden function type signatures from concrete to abstract array/float types for improved interoperability (e.g., with JuliaCall): Array{T} → AbstractArray{T}, Vector{T} → AbstractVector{T}, Matrix{T} → AbstractMatrix{T} across realLLR.jl, posteriorprobs.jl, utils.jl, findr_matrix.jl, and findr_pvalues.jl (#22)
  • Fix inconsistency in findr_matrix overloads where implementations used T<:Real while docstrings declared T<:AbstractFloat; all overloads now consistently use T<:AbstractFloat (#22)
  • Update dependency manifests
  • Update Julia version in CI workflow

Full Changelog: v1.0.5...v1.1.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.

v1.0.5

Choose a tag to compare

@tmichoel tmichoel released this 21 May 12:03

What's Changed

  • Catch error in kernel density estimation when $\pi_0=1$ by returning zero posterior probabilities
  • CompatHelper: add new compat entry for ScientificTypes at version 3, (keep existing compat) by @github-actions in #20

Full Changelog: v1.0.4...v1.0.5

v1.0.4

Choose a tag to compare

@github-actions github-actions released this 08 Jun 19:15

BioFindr v1.0.4

Diff since v1.0.3

  • add option to perform causal inference for a subset of regulators without having to modify the input data

v1.0.3

Choose a tag to compare

@github-actions github-actions released this 27 Apr 07:48

BioFindr v1.0.3

Diff since v1.0.2

added dagfindr! to exported functions

v1.0.2

Choose a tag to compare

@github-actions github-actions released this 26 Apr 11:29

BioFindr v1.0.2

Diff since v1.0.1

Added functions and documentation for DAG reconstruction

v1.0.1

Choose a tag to compare

@github-actions github-actions released this 26 Apr 09:32

BioFindr v1.0.1

Diff since v1.0.0

Merged pull requests:

  • CompatHelper: add new compat entry for Graphs at version 1, (keep existing compat) (#18) (@github-actions[bot])
  • CompatHelper: add new compat entry for MetaGraphsNext at version 0.7, (keep existing compat) (#19) (@github-actions[bot])

Closed issues:

  • TagBot trigger issue (#17)

Renaming to BioFindr

Choose a tag to compare

@tmichoel tmichoel released this 06 Feb 08:50

The package and repository have been renamed from Findr.jl to BioFindr.jl to bring it inline with Julia package naming guidelines. See this issue for details.

Full Changelog: v0.2.0...v1.0.0