NEWS
HiCPotts 1.1.1 (2026-04-21)
All changes involve improving, tidying and simplifying the codes and removing bugs
It also makes it easier for non-statisticians to understand
- run_metropolis_MCMC_betas() is now defined ONLY in R/RcppExports.R
(plus its C++ backend). The duplicate R version in R/MCMC_chain.R
has been deleted; it referenced an undefined mc_cores variable and
used the wrong PACKAGE = "HMRFHiC" tag. Same for pz_123() in the
now-deleted R/potts_posterior.R.
- likelihood_combined() for components 2 and 3 more simplified and efficient to evaluates the density
on EVERY observation in the component. This makes it easier for non-statisticians to understand
- ZIP/ZINB zero-probability is now log(theta + (1-theta) * exp(-mu))
where mu = exp(eta) is the Poisson/NB mean. 1.0.0 used exp(-eta). Changed in both R/likelihood.R and
src/potts_posterior.cpp.
- Neighbours_combined() (C++) rewritten to simplify the comparing of the
reference configuration (current state or proposed state) to each of
the four shifted copies of the current state.
- run_metropolis_MCMC_betas() ABC step for gamma uses the PROPOSED
gamma to simulate synthetic data. 1.0.0 used chain_gamma[iter]. This helps to
improve the accept/reject step.
- The ABC tolerance epsilon and the distance statistic are now on the
same scale: mean |y - synthetic| (or RMS for distance_metric =
"euclidean"), and epsilon defaults to the 10% quantile of per-cell
|y - synthetic|. 1.0.0 compared a mean-difference distance against
the 20% quantile of exp(|y - synthetic|).
- The Metropolis-Hastings ratio for the regression coefficients no
longer includes a proposaldensity_combined() term. The proposal is
a symmetric Gaussian random walk, for which the proposal-density
ratio cancels.
- prior_combined() is now more DETERMINISTIC given the same parameters,
data, and component assignments. 1.0.0 called rnorm() and rgamma()
inside the prior, so pi(theta) changed between calls and the MH
acceptance ratio was stochastic.
- compute_HMRFHiC_probabilities() no longer caps interactions
at 500. The previous behaviour is available via max_interactions =
500L. burnin is now an integer that includes the last MCMC sample
(fixes fractional-index warnings when iterations is odd).
- A new consistent_dist = TRUE default in compute_HMRFHiC_probabilities()
uses the same emission distribution for all three components. Pass
consistent_dist = FALSE for the previous 1.0.0 behaviour (ZIP/ZINB
only for component 1, others reduced to Poisson/NB).
- compute_HMRFHiC_probabilities() now uses log-sum-exp normalisation,
avoiding underflow for very small component densities.
- On Windows, mc_cores > 1 now emits a warning and falls back to 1
(parallel::mclapply does not fork on Windows).
- get_data() now raises an informative error when passed a .hic file
(these are not HDF5 and were failing silently inside h5ls).
- The slice-rebin path in get_data() now aggregates duplicate entries
produced by splitting a larger native bin into smaller target bins,
instead of silently keeping only the last.
- posterior_combined() now calls likelihood_combined() with named
arguments, eliminating positional fragility.
- process_data() now defaults to standardization_y = FALSE. When
scaling is requested, it emits a warning because min-max rescaling
of count data breaks the count-regression assumption.
PACKAGE METADATA
- BSgenome.Dmelanogaster.UCSC.dm6 moved from Imports to Suggests.
Installing HiCPotts no longer forces users of other species to
download the Drosophila genome.
- strawr removed from Imports (it was never called). Added to
Suggests for users wanting to handle raw .hic files themselves.
- DESCRIPTION license tag (GPL-3), README badge (MIT), and documented
R version (>= 4.2) reconciled: GPL-3 and R (>= 4.5) are now the
package's authoritative values.
- Vignette updated: correct function name (get_data, not
prepare_data); user_fixed_priors example restructured with correct field names;
ZIP/ZINB chunk consistency fixed.
TESTING
- tests/testthat replaced with a suite that verifies numerical
correctness (closed-form Poisson/NB/ZIP densities, hand-computed
neighbour counts, and regression tests for every fix above).