- Release to CRAN.
- Conditioning on a (very) large number of contributors can lead to a memory fault.
- Minor changes to fulfill CRAN requirements.
- Faster post-processing in R for datasets with large number of variables.
Preparation of new release on CRAN, consolidating long-pending breaking changes:
-
Harmonization of exported function names using
camel case
. -
Harmonization of parameters and return values using
snake case
. -
Harmonization of abbreviations.
All the documentation has been updated accordingly, in case of issue when upgrading to this version, please consult the help of the relevant function for more information about its interface.
For the core miic()
function, the main breaking changes in the interface
(when upgrading from the 1.5.3 release on CRAN) are:
in the parameters:
-
cplx
: renaming of the complexity term"mdl"
→"bic"
-
ori_proba_ratio
→ort_proba_ratio
in the miic object returned:
-
all.edges.summary
→summary
Nxy_ai
→n_xy_ai
log_confidence
→info_shifted
infOrt
→ort_inferred
trueOrt
→ort_ground_truth
isOrtOk
→is_inference_correct
isCausal
→is_causal
proba
→p_y2x
,p_x2y
consensus
→ort_consensus
-
orientations.prob
→triples
NI3
→ni3
Error
→conflict
Still compared to 1.5.3, another important change in the behavior of miic()
is that, by default, miic()
no longer propagates orientations
and allows latent variables discovery during orientation step.
- tMIIC version for temporal causal discovery on stationary time series:
new mode of
miic()
to reconstruct networks from temporal stationary datasets (Simon et al., eLife 2024).
The temporal mode ofmiic()
is not activated by default and can be enabled by setting the newly added parametermode
to"TS"
(Temporal Stationary). A tuning of the temporal mode is possible through a set of new parameters:max_nodes
,n_layers
,delta_t
,mov_avg
andkeep_max_data
.
-
The discretization of continuous variables has been improved when dealing with variables having a large number of identical values.
-
Fix for memory overflow on shared memory space.
- Addition of the 'is consequence' prior knowledge. Consequence variables are
excluded from the possible contributors, edges between consequences are
ignored and edges between a non consequence and a consequence are pre-oriented
toward the consequence.
Information about consequence variables can be provided tomiic()
in thestate_order
, by supplying anis_consequence
column.
- iMIIC version introducing contextual variables, genuine vs putative causes
and multiple enhancements to deal with very large datasets (Ribeiro-Dantas et al., iScience 2024).
Information on contextual variables can be provided tomiic()
in thestate_order
, by supplying anis_contextual
column and genuine vs putative causes can be tuned by the newly added parameterort_consensus_ratio
.
-
Enhancement of orientations using mutual information supremum principle for finite datasets (Cabeli et al., Why21 at NeurIPS 2021).
The use of enhanced orientations is controlled by the newly added parameternegative_info
ofmiic()
and is activated by default. -
By default,
miic()
does not propagate orientations anymore and allows latent variables discovery during orientation step.
- Release to CRAN
-
Further refactoring of the C++ code for the computation of information.
-
Fix minor bugs in the continuous computation.
-
Fix incompatibility with older versions of GCC (std::align).
-
Fix various bugs in the computation of information in the presence of NA values in the dataset.
-
An overhaul of the C++ code base, better memory management, computation time and code readability.
-
Add a column
consensus
to the reconstructed graph's edges summary associated with the optionconsistent
, and a new parameterconsensus_threshold
accordingly. -
Add a parameter
ori_proba_ratio
to have more control on the orientation of edges.
-
Faster post processing in R.
-
Rework plot functionality.
-
Fix a bug in the orientation part about the log score.
-
Refactor of the C++ code base (orientation).
-
Various fixes of memory leaks and ambiguous function calls (at least for all that appear in CRAN check).
-
Refactor of the C++ code base (confidence cut).
- Error when running the cosmicCancer example on CRAN's Solaris system.
- Move from BitBucket to GitHub, the repo is now public.
Not released. A failed attempt to fix the check errors (though submitted to CRAN).
- Standardize the API naming convention:
snake_case
for parameters andcamelCase
for functions. This should have led to a major version increment to v2.0.0 given the previous version on CRAN is v1.0.3. But v1.0.3 and earlier versions were not properly maintained and versioned under a version control system (so we actually forgot to take them into consideration when releasing this version).
-
The method now works with continuous variables (solely or mixed with discrete variables), thanks to the discretization method as described in Cabeli et al., PLoS Comput. Biol. 2020.
-
Add an option
consistent
to improve the reconstructed graph's interpretability based on schemes as described in Li et al., NeurIPS 2019.
-
Various fixes of memory leaks and typos.
-
Major refactoring of the old C++ code base (still WIP) to improve readability and flexibility, and to enforce proper coding style and documentation.
-
Enforce proper coding style for the R code base.
- Still have some memory leaks and CRAN check errors and notes on certain platforms.