Version 7.6.4
Updates for 7.6.4
- Added elapsed wall time of algorithm run to the Stats List editor if a GeneralAlgorithmRunner is a parent of it.
- Updated the manual so that all algorithms, tests, and scores have documentation in the Search box in the interface.
- Added a method to MarkovCheck to print out a Markov check result as a string for use in Causal Command.
- Resolved all JavaDoc warnings.
- Made the handling of threads more uniform, using a ForkJoinPool for everything. A new ForkJoinPool is created for each algorithm's run, allowing all threads for that pool to be stopped by calling shutdownNow() on the pool when the current thread is interrupted.
- For parallelized algorithms, added (where not already available) a parameter to specify the number of threads to use.
- For bootstrapping, also added a parameter for the number of threads to use (for the bootstrapping itself).
- Fixed a long-standing bug in the interface where clicking the stop button would not stop all threads associated with a multi-threaded algorithm.
- Added a parameter for the number of threads to BFCI and GFCI since BOSS and FGES have this parameter.
- Fixed the stop button in the interface so that partial work is not returned if an algorithm is stopped.
- Added a method to test whether a given graph is a legal CPDAG.
- Set as default for bootstrapping not to include the original dataset as an extra sample.
- Cleaned up the TetradLogger class to use immediate logging throughout the code.
- Cleaned up logging for PC and FCI and several other algorithms.
- Moved the session package from the lib package to the GUI package.
- Corrected null and alternative hypotheses for Bayes Estimator.
- Increased the factor for off-peak randomizations for rows in CPTs for BayesIM randomization.
- Improved deserialization procedure for LoadSessionAction.
- Reduced the size of the initial application windows.
- Fixed the stop button in the interface so that partial work is not returned if an algorithm is stopped.
- Made a correction to the whitening step of FastICA, affecting ICA LiNGAM and ICA LiNG-D.
- Did another cleanup/documentation update pass through the search package using IntelliJ's AI Assistant.
- Did another cleanup/documentation update pass through the test package using IntelliJ's AI Assistant.
- Fixed bug in SemSimulation where when different graphs were specified, data would not be simulated using the novel graphs.
- Refactored the generalized SEM editors.
- In the generalized SEM IM, for simulation, switched to a recursive method for acyclic models; the Fisher method is only used for cyclic models.
- Fixed bug in generalized sem PM where edits to formulas would eventually cause Tetrad to hang.
- Refactored GeneralizedSemSimulation and SemSimulation.
- Revised the ICA-LiNGAM and ICA-LiNG-D classes again for clarity and to fix some reported issues.
- Revised the Direct-LiNGAM class for speed and accuracy.
- Replaced the previous implementation of bootstrapping with a new one.
- Did more JavaDoc documentation work to resolve all JavaDoc errors and warnings.
- Fixed issue in IDA preventing all combinations of siblings from being explored.
- Added IDA check, plus a UI for it in the Tetrad app.
- Remembered opening window size and position from the last size/position the user set.
- We have added a UI for the Algcomparison API, which lets the user do simulation studies for simulation types and algorithm types from Tetrad with multiple combinations of parameter values. To use it, place a Comparison box on the workbench in the UI and follow the instructions in the Help tab.
- Fixed the BayesIm editor so that Bayes IM files in Tetrad format can be loaded and saved using the supplied menu items.
- Made a version of MlBayesIm that can store very large CPTs, not storing NaNs.
- Correspondingly, made a version of MlBayesEstimator that just stores count, not storing 0's, so it is suitable for very large models.
- Fixed an issue with the display of random 2-factor MiM models.
- Updated deprecated methods in the code.
- Added a parser and renderer for the Bayes Interchange Format (BIF) to load/save Bayes IMs.
- Did some work to get algorithms to reclaim resources when finished or canceled.
- Added parsers/renderers in the interface for the amat.cpdag and amat.pag graph matrix types used in PCALG.
- Adjusted the m-separation algorithm so that it can correctly infer m-separation facts from CPDAGs and PAGs; there were some issues that surfaced (rarely) in cases where an arrow was into a directed or nondirected edge in the graph.
- Added a link from a graph-containing box to Algcomparison in the UI to let the user specify a specific graph for the comparison.
- New items were added to the Graph menu in the Graph box. There is now a Highlight menu to highlight certain features of a graph. (The highlight features have been expanded.)
- Added a Check Graph Type menu to check whether a graph is a legal DAG, CPDAG, MPDAG, MAG, or PAG graph type.
- Added a Manipulate Graph menu item to manipulate graphs (apply Meek rules, revert to CPDAG, pick random DAG in CPDAG, apply final FCI rules, revert to PAG, pick Zhang MAG in PAG, in addition to previous items to correlate or uncorrelate exogenous variables).
- Added a menu item to add or remove PAG edge specialization markups.
- Added a menu item to display PAG edge type information.
- Added a new experimental algorithm called LV-Lite, a score-based correlate of FCI. This algorithm has similar precision to BFCI but better recall and is considerably faster than BFCI for similar cases.