Skip to content

Version 7.2.0

Compare
Choose a tag to compare
@jdramsey jdramsey released this 14 Feb 22:01
· 2595 commits to development since this release
4e196dd

Issues/updates for 7.2.0

  1. Fixed an issue with converting DAGs to CPDAGs with background knowledge for GRaSP, BOSS, SP, etc.
  2. Added a Wiki page https://github.com/cmu-phil/tetrad/wiki/Dealing-with-Tetrad-on-a-Mac--security-issues. This will be kept up to date if new details emerge.
  3. Switched beta distribution sampling to library method.
  4. Re-added menubar in SEM Estimator Editor, so that graph images can be saved there and the SEM IM being edited can be saved as XML, amont other things.
  5. Fixed a bug in GraphUtils which was doing the wrong check for the existsInducingPath(.) check.
  6. Added test for legal PAG and added this check to the relevant latent variable algorithms.
  7. Added facility in legal PAG check to return a reason why a graph is not a legal PAG, so the user can check.
  8. Removed the random element of the PAG to MAG converter so that exactly the same MAG is returned every time. This is so that those interested in why graphs are not labeled by the machine as legal PAGs can look to see which implied MAG is being judged.
  9. Added a legal MAG method factored out from the legal PAG method.
  10. Removed graph type enum--already have legal graph checks for DAG, DG, MAG, PAG, will add one for CPDAG, so will just check against the legal graph definition in the appropriate places.
  11. Implemented Zhang 2008 Theorem 2 as a revised PAG to MAG algorithm; substituting this for previous PAG to MAG algorithm.
  12. Fixed a bug in the nonparanormal transform where infinite transformed values (due to overflow of the inverse Normal distribution) were messing up the nonparanormal transform calculation and the histogram. Set these to the max or min of the data without the infinite values.
  13. Switching data saving to false by default for algcomparison.
  14. Setting parallelism down to # processors in algcomparison to accommodate large memory processes.
  15. Replaced "-" by "0.0" in algcomparison tables to simplify further statistical analysis of that data.
  16. Fixed a bug preventing checkout of development branch on Windows.
  17. Did some refactoring in the code to bring it more up to date: (a) Factored out underlining code from graph into separate class, Underlines, (b) factored out all path-checking graph code into a separate class, Paths, (c) factored out all graph persistence code into GraphPersistance, (d) factored out all data persistence methods into SimpleDataLoader, (e) moved highlighting from graphs to Edge, (f) turned Endpoint into a java enum, (g) Cleanup up all of these classes and organize their methods. This is to help people using the code to work. GraphUtils and DataUtils are what's left over now from these moves. Made all necessary changes in the codebase to accommodate these changes.
  18. Refactoring: Deleted classes from an old GraphConstraint API for checking graph features, no longer being used.
  19. Refactoring: Moved methods for generating random graphs into RandomGraph.
  20. Made the implementation of the uniform random graph generator private in RandomGraph.
  21. Moved all layout code in the tetrad.graph package into tetrad.graph.LayoutUtil
  22. Rewrote the Dag class to simply wrap EdgeListGraph and ensure that only directed nodes can be added that don't create cycles (using Paths).
  23. Add a menu item in the GUI to only check to see if a graph is a legal PAG (and color it) on demand.
  24. Closed several stale issues in the issues list. If anyone was hoping for any of those issues to be fixed, please open new issues with up-to-date information, as the codebase has changed considerably since, say, four years go.
  25. Added experimental algorithm, PAG-Sampling-RFCI.
  26. Added seed parameter for Sem Simulation, Bayes Net Simulation, and Conditional Gaussian Simulation, allowing (when set to something other than -1) for the exact same graphs and datasets to be simulated. This can be useful to try new algorithms on the same data as before.
  27. Switched Math to FastMath throughout the codebase. Should speed things up.
  28. Exposed 'alpha' parameter for both FOFC and BPC; for FOFC in addition exposed the 'checkSignificance' parameter for checking the significance of clusters.
  29. Fixed a bug in bootstrapping where if you set a seed results would different depending on whether you selected verbose or not.
  30. Fixed a bug in the knowledge editor where if a variable name didn't satisfy a certain spec, dragging and dropping between tiers would fail. Fixed this by no longer checking the variable name specs, so that for instance variable names with quotation marks will work. ":" is still treated differently (it indicated lag).
  31. Started a class called GraphTools to collect up some graph methods from graph theory.
  32. Printing out p-values to log for FOFC and BPC for the clusters returned by the algorithms.
  33. Fixed a residual issue in Edgewise comparison, where edge substitutions were reported in an unintuitive order.
  34. Added a class, MillisecondPrecision, that returns wall time, user time, or CPU time uniformly in milliseconds, with a class that will return one of these three according to an enum that is set. Refactored all timing code throughout to use this class.
  35. In particular, algcomparison class now uniformly returns CPU times, so that if the ElapsedTime() stat is added to the table it will be in CPU time.
  36. Added an experimental algorithm, BDCE (BOSS Divide and Conquer, Experimental).
  37. Fixed an issue in RFCI where with the same data and independence test (e.g., Fisher Z) different results were obtained on different runs. The problem was that a non-stable version of FasConcurrent was being used. Substituted the non-concurrent FAS instead.
  38. Adjusted the Paths.causalOrdering method (now called validOrder) so that it gives a valid causal order for either a DAG or a CPDAG. (Was just DAG.)
  39. Fixed an issue preventing FGES from running sometimes in concurrent settings, where multiple copies of FGES are run in parallel.
  40. Setting the default for 'verbose' to 'false'; to see the verbose output, the user will have to turn the verbose output on (in causal-cmd, select the --verbose flag). This is critical for bootstrapping and for causal-cmd.
  41. Fixed the verbose output from bootstrapping so that if verbose is set to default (which is now is by default) only the final graph with edge probability counts is printed.
  42. Fixed an array out-of-bounds error in ProbabiliticTest; now RFCI with ProbabilisticTest returns consistent results.
  43. Cleaned up the use of external graphs throughout the code.
  44. Took out legal PAG reasoning in Edgewise comparison; this hangs the interface for large graphs.
  45. Removed path statistics from the Stats List comparison in the GUI, as they hang the interface for a large graph.
  46. Changed default for Zhang-Shen risk bound to 0.1.
  47. For causal-cmd, a mechanism has been set up for specifying an external graph for an algorithm. Use the --external-graph parameter.
  48. Cleaned up the API in Tetrad for dealing with external graphs. This included pairwise orientation algorithms like R3, RSkew, etc.
  49. Adjusted code for FGES in the interface (and causal-cmd) so that it can use an external graph as a bound graph. That is, if you give it an external graph, it will give an orientation of that graph consistent with the data, as a CPDAG.
  50. Set the default penalty discount for the Kim et al. score to 1.
  51. Fixed a bug for the SEM and Bayes simulations where if you did a simulation and re-opened the simulation box some parameters would disappear.
  52. Made some adjustments to the GUI to allow comparison boxes to open without hanging for large, dense graphs.
  53. Fixed some instability in the RFCI algorithm.