Skip to content

Tetrad-7.1.2-2

Compare
Choose a tag to compare
@kvb2univpitt kvb2univpitt released this 08 Jun 21:23
· 3155 commits to master since this release
13b64f5

This release contains the following fixes:

  1. Fixed a problem in the data editor in the GUI where if you delete a column sometimes it would just delete the variable name instead.

  2. Changed defaults for (coef low, coef high) to (0.0, 1.0).

  3. Renamed “depth” back to “maximum size of conditioning set”.

  4. Fixed an issue with knowledge where for oracle searches the knowledge wan’t being passed into the algorithm.

  5. Fixed a problem in PC where an exception was being thrown because of a null pointer in a map.

  6. Revised method for selecting random seeds.

  7. Re-added SemBicTest as per request.

  8. Non-Gaussian orientation methods like R3 were not working; fixed this.

  9. Fixed a null pointer exception in PC.

  10. Knowledge wasn’t being passed to the search box in the GUI app; this has been fixed.

  11. Fixed a bug in FCI orientation where some circles were being prevented from being reoriented as arrows illegitimately.

  12. Fixed some bugs in Degenerate Gaussian and Conditional Gaussian scores (for the mixed case).

  13. Fixed bugs affecting equality judgments for edges and graphs.

  14. Fixing default linear, Gaussian score to BIC, penalty 2.

  15. Per request, removed TsImages and renamed TsFCI to SvarFCI and TsGFCI to SvarGFCI to align with publication.

  16. Consolidated internal methods for getting a DAG from a CPDAG.

  17. Fixing the problem where for a fixed IM you can’t get a new dataset when you click Simulate.

  18. Changed “Pattern” to “CPDAG” throughout the code for consistency.

  19. Added a new algorithm, GRaSP, to the search box, with manual entry.

  20. Fixed nonparanormal transform so that it copies over discrete columns.

  21. Turning off randomness inside the algorithm for GRaSP (not for initial permutations per run)

  22. Set GRaSP so that by default it’s not random.

  23. Debugged forbidden knowledge in GRaSP

  24. Fixed a problem with testwise deletion where correlation matrix calculation was throwing an exception for missing data

  25. Separated out PC, CPC, PC-Max in place of PC-All.

  26. Put edge display in the graph editor into a separate tab.

  27. Fixed discrete to continuous transform so that it uses actual numerical discrete values (instead of indices) if all categories are numerical.

  28. Fixed knowledge so that it can be loaded in the interface without a parent source of variables.

  29. In the code, got rid of the problematic CpdagToDag, replaced it with a call to the dagFromCpdag method in SearchGraphUtils

  30. Fixing the problem where for a fixed IM you can’t get a new graph when you click Simulate.

  31. Moved Knowledge up to after Search in the Session window to better associate it with search.

  32. Passed knowledge into GRaSP.

  33. Added GRaSP-FCI.

  34. Adjusted options for FASK for non-skew adjacency search.

  35. Fixed the search box so that it can take as inputs a graph source, data, and knowledge.

  36. Fixed FASK so that it can take both a test and a score (score for FGES option).

  37. Allow non-Gaussian errors in the SEM IM.

  38. Added citation instructions to the manual.

  39. Fixed a bug in the hashcode methods of Edge and EdgeListGraph where node order was being checked prior to giving the equality problem to the equals() method.

  40. Fixed log4j vulnerability

  41. Fixed a bug in FCI orientation where some circles were being prevented to being reoriented as arrows illegitimately.

  42. Fixed a bug in the Data Editor where if you selected a range of columns but the mouse was released in a variable name field, the variable name would be deleted

  43. Fixed Knowledge Box bug where changes were detected when not changes were made.

  44. Removed ineffectual calculator menu item from the data editor.

  45. Fixed problem with FGES not honoring single thread request.

  46. Made simulation a graph source

  47. Fixed size of QQ plot.

  48. Changed “More information on graph edge types” to “More information on graph edge types and colorings” to avoid confusion.

  49. Eliminated uses of deprecated DataReader from code.

  50. Added directory structure instructions to the formatting file in examples repository.

  51. Adjusted graph text loading algorithms so that numbers aren’t needed for loading graph text files.

  52. Fixed sizes of histograms and scatterplots.

  53. Fixed quality of saved PNGs.

  54. Fixed knowledge so that if you change the variables for a dataset knowledge is cleared and the new variables are used. Otherwise the knowledges is kept.

  55. Fixed a problem in FAS (and so PC, FCI, etc.) where the search was not always doing depth 0. (This is a novel problem.)

  56. Fixed a problem with Fisher Z where it was sometimes using the covariance matrix instead of the correlation matrix to calculate conditional independence using the precision matrix method.

  57. Fixed the problem with the run button not always being re-selected in the search.

  58. Disabled remote job execution to allow the Tetrad GUI to launch properly.

  59. Fixed an infinite loop in the possible d-sep search in FCI.

  60. Reintroduced a switch for FCI to turn off the possible d-sep search (default on).

  61. Removed the Linear Fisher simulation model. Again. Somehow it got back in.

  62. Made sure the in the manual it is stated that for the SVar algorithms the time lag converter needs to be used to format the data.

  63. Fixed the graph editor so that it remembers the last layout that was done.

  64. Added dialogs to make it clear to the user when they are simulating a new dataset; allows them to cancel the operation.

  65. Ensured that all algorithms in the Search box have at least a minimal description in the description box there (gotten from the manual).

  66. Fixed size of Paths dialog so it fits on a small screen.

  67. Added FASK-PW as a pairwise algorithm.

  68. Fixed edges panel in Search to be a separate tab.

  69. Adjusted the size of the graph editor in the search box so that it fits on a small screen.

  70. Added colors to the Compare to DAG/PAG/CPDAG menu items for emphasis.

  71. Set random graph generator for GraphEditor to the same as that of the other graph editors; MIM and scale-free graphs were not being generated there.

  72. For FOFC, added an independence test (in addition to the tetrad test) and print out (if not null) whether for each cluster the variables in the cluster are marginally dependent pairwise.

  73. Switched edges display in time lag graph editor from split pane to tabbed pane.

  74. Changed name of Edit menu in time lag graph editor to “Number-of-Lags” and put the number of lags in the name of the menu.

  75. Added a confirm messages to the Save As action to make sure the user wants to save a session to a particular directory, to avoid common mistakes like this.

  76. Increased the snap-to-grid grid size to 20 pixels (from 15) to make it a little more obvious when you’re aligning boxes in the graph editor.

  77. Added annotations for relevant scores/tests. The new categories are “Linear/Gaussian”, “Mixed Discrete/Gaussian”, “General”, and “All”.

  78. Adjusted Search box to reflect the new categories for scores/tests.

  79. Changed “Number of latent variables” in interface to “Number of additional latent variables” for clarity.

  80. Added an Erdos-Renyi graph type (edge probability fixed, # edges not fixed).

  81. Relabeled Random Forward and Erdos-Renyi graphs types to specify “Fixed Average Degree” and “Fixed Edge Probability”, respectively, for clarity.

  82. Fixed test/score filters and the spacing for them in the Search box.

  83. Added an algorithm description for FASK-PW.

  84. Fixed GRaSP so that it sets an attribute for score rather than number of edges.

  85. Went through long descriptions in the manual and shortened ones that were too long to appear in the interface properly (“Twitter limit”, 140 characters).

  86. In the code, changed “initialGraph” to “externalGraph” throughout and removed dangling uses of it in PC, FGES, etc. Still used for pairwise algorithms.

  87. Fixed problem where the specification for the non-Gaussian error type was not always being used in the SEM IM simulation.

  88. Fixed an issue in FASK where some 2-cycles were being inferred against claims in the documentation.

  89. Fixed the stats table so that the parameter editor remembers the previously selected default model and that if a Simulation is one of the parents that is taken to be the default model.

  90. Fixed an issue with Junction Tree updater where it was showing a node index problem.

  91. Fixed an FCI knowledge issue found by Dan--actually other fixes I did appear to have solved this.

  92. Fixed the SEM Estimator Editor so that the display window resizes when you drag the containing window to a different size.

  93. Fixed an issue in FCI-Max (orientations from background knowledge were not being done).

  94. Removed the Layered Drawing layout from the layouts menu.

  95. Made Junction Tree Updater the default discrete updater.

  96. Expanded instructions for selecting default initialization for Bayes IM: “Manually: Probabilities tables initially blank” versus “Randomly: Random probabilities are assigned, which can then be edited”, defaulting to Randomly.

  97. Changed default number of categories for Bayes PM to 3 (trinary).

  98. Fixed broken functionality in Bayes PM initiialization and set the choices for Bayes PM initialization to 3-valued or range (default 2-4).

  99. Changed default for Dirichlet Bayes IM to symmetric prior.

  100. Fixed initialization bug for estimating an ML Bayes model from a Bayes PM model and a discrete dataset, when the IM is Dirichlet.

  101. In text graph loading, ignoring attributes saved out with file, which were preventing loading. (Maybe want to parse these later.)

  102. Re-added Discrete BIC score to the list of discrete scores.

  103. Fixed issue in Junction Tree Updater where updates done by the learning algorithm were not shown in the interface.

  104. Moved the Random Graph menu item to the top for every graph editor, in the respective Graph menus.

  105. Fixed the Edge tab in the graph editor so that directed edges aren’t flipped to point right to left for alphabetic reasons.

  106. Removed the following buggy session node links: Dirichlet Bayes IM --> Bayes IM, Bayes IM --> Bayes IM, Sem IM --> Sem IM, SEM Estimator -> SEM IM.

  107. Removing GLASSO from the list of non-experimental algorithms, since it doesn’t work very well. It still performs identically to the FORTRAN implementation it’s translated from and is available as a non-experimental algorithm.

  108. In the Search box, adjusted the list of algorithms so that only one can be selected at a time. (Was confusingly multiple selection.)

  109. Fixed and refactored Build Pure Clusters (BPC) and re-added it to the list of non-experimental algorithms.

  110. Added missing items to the manual (Junction Tree, BPC, GRaSP, GRaSP-FCI, new image for the Stats List Editor.

  111. Additional fixes starting 2022-3-29:

  112. Cleaned up edu.cmu.tetrad packages.

  113. Cleaned up edu.cmu.tetradapp packages.

  114. Repaired and re-added CStaR to the interface as experimental. To see the table you need to open the logging window; it is also printed to the command line.

  115. Made printing of p-values for independence tests uniform across Tetrad.

  116. Set seed on TestCellProbabilities so that it would return a consistent result.

  117. Changed the name of the main “About” menu to the more standard “Help”.

  118. Added a menu item to to the main Help menu to launch the HTML manual in the development branch.

  119. Adjusted copyright notices throughout code.

  120. Re-added the underlinings display, to show ambiguous triples, underlinings, and dotted underlinings in a graph. It’s re-added to the Graph menu in the Graph Editor.

  121. Fixed a bug introduced in this version where Display Subgraphs could not be shown as a child to Search.

  122. Re-classified grasp-tol as experimental. Verified that the experimental algorithms can be made to show up by modifying the settings.

  123. (Re-)set simulation box to show data after simulation after a new simulation is done.

  124. Fixed some inconsistencies in the bootstrapping API, where bootstrapping parameters were not being passed or honored correctly.

  125. Fixed GRaSP and GRaSP-FCI so that they use the tolerance depth parameter.

  126. Fixed a null pointer preventing the cluster editor from opening with no parents.

  127. Fixed a problem in which selected scores and tests in the Search box were not remembered when doing a new search with new data.

  128. Commented out the Independence Facts knowledge option, as it’s not working. This is supposed to let the user store a list of independence facts entered manually.

  129. Re-added CCD (Cyclic Causal Discovery) to the interface.

  130. Added a description for CCD to the manual.

  131. Added a note to the manual warning of coefficients that are too large for cyclic models.

  132. Switched DAG and SEM Graph editors over to using the tabbed panes for the “Edges” displays.

  133. Added Peter’s algorithm flowchart to the Help menu.

  134. Adjusted copyright text in the Help menu and the main copyright notice in the repository to reflect the current year.

  135. Fixed typo in text that comes up if you try to launch a session box with the wrong inputs.

  136. Added a list of contributors to the project to the Help menu.

  137. Changed “Save session to directory…” in a save dialog to “Save to directory…” since this method is used for more than sessions.

  138. Renamed MuiltiFask bak to FASK-Vote (to align with internal algorithm).

  139. Fixed a problem with FASK and FASK-Vote where bootstrapping was throwing an exception.

  140. Adjusted random graph editor so that connected graphs are returned unless none can be found, in which case an empty graph is returned.

  141. Fixed wording, “Yes if adding an original dataset as a bootstrapping” to “Yes if adding the original dataset…“.

  142. Fixed a problem introduced in the file cleanup where you couldn’t launch a time lag graph editor.

  143. Added a ‘timeLag’ parameter to all relevant causally insufficient and sufficient algorithms to automatically apply the time lag transform.

  144. Adjusted manual entries for the new time lag parameters.

  145. Compiling under Java JDK 1.8 to fix a data loading problem reported by several people. (Joe-a culpa.)

  146. Clarified instructions in the manual for using the (perhaps confusing) standardized SEM IM editor.

  147. The search box was not always formatting time lag data using the knowledge tiers; fixed this.

  148. Added parameter to SEM BIC Score and EBIC.Score to allow covariance matrix to not be precomputed.

  149. Improved parallelization for FGES.

  150. Fixed a variety of bugs in the bootstrapping code.

  151. Changed bootstrapping type to 1, 2, 3 (was 0, 1, 2).

  152. Fixed parallelization for bootstrapping code.

  153. Fixed all scores so that they return NaN if the score can’t be calculated (throws exception, calculated as NaN, or calculated as infinite; the latter is not known to be actually infinite numerically).

  154. Fixed it so that if you close all sessions, a new one automatically appears.

  155. Switched to common pool for parallelizing throughout code.

  156. Fixed Javadoc errors (not warnings) so that Javadoecs now builds.

  157. Added maven-javadoc-plugin to Maven pom.xml so that javadocs will be attached to release. This is a requirement for release to the public Maven repository.

  158. Added plugin maven-source-plugin to Maven pom.xml so that sources will be attached to release. This is a requirement for release to the public Maven repository.

  159. Fixed a bug in the bootstrapping where for a bootstrap with 100 repttitions, say, for FGES, the first 11 models and the last were identical but they were otherwise random.

  160. Added the SP (Sparsest Permutation) algorithm, which can be used for small models.

  161. Added the SP-FCI (GFCI wrapper for the Sparsest Permutation) algorithm, which can be used for small models.

  162. Fixed error message if user tries to estimate a time lagged dataset using non-time-lagged data to recommend that they convert the data to time lagged data using the data box first.

  163. Made a more descriptive error message for when MimBuild fails due to estimation degrees of freedom being too low.

  164. Adding an informative error message if the user tries to create a standardized SEM IM, which is currently incoherent.

  165. Fixed it so that knowledge for a Time Lag Graph can be retried from it by attaching a Knowledge box.

  166. Fixed is to that if a d-separation test or score is used as input to a search algorithm, and the source graph has knowledge tiers defined in the variables, and knowledge is not otherwise defined, the tiered knowledge is used.

  167. Fixed it so that if an algorithm that takes both a test and a score is run from d-separation, the graph is set for both the test and the score.

  168. Fixed bug where if a SEM IM was created with non-Gaussian errors through the Graph->PM->IM->Simulation route, variables would still be simulated as Normal even if non-Gaussian errors were specified.

  169. For MimBuild, switched pattern algorithm to GRaSP.

  170. Made a better error message for the case where the user tries to create a standardized SEM IM with a time lag model with latent variables.

  171. Changed method of randomly initializing rows in a Bayes IM conditional probability table (CPT) to use the Beta(alpha, beta) distribution to pick values, where beta = # columns and alpha = beta / 4.0.

  172. Deleted many extraneous branches in the GitHub repository.

  173. Revised project README file to use current information.

  174. Updated the IntelliJ WIKI to use current information.

  175. Changed the Tetrad version for the upcoming release to 7.1.0.

  176. Fixed method in FOFC for generating structure graph from a clustering to handle the case where the clustering is empty.

  177. Pulled over TestGrasp, GraphoidAxioms, and related code from source branch.

  178. Fixed a bug in the GUI cycle checker.

  179. Fixed p-value lookup in KCI.

  180. Removed dependency on log4j.

  181. Added average degree and density to the Graph Properties dialog.

  182. Fixed bootstrapping code for IMaGES.

  183. Re-added the 'aggressive cycle checking' parameter to Meek rules, checking for the existence of semidirected paths, and set FGES to use it by default.

  184. Added tight binding for independence facts, independence results, and p-values throughout the code, for improved parallelization.

  185. Added a (parallelized) Markov Checker, to check independence facts implied by the Markov Assumption.

  186. Fixed graph copy/layout so you can once again copy/paste a graph from one Graph box to another by creating a separate clipboard for Layouts.

  187. Removed some profligate copies of Layouts to the layout clipboard.

  188. Work on experimental algorithm BOSS.

  189. Fixed an issue with FCI that was preventing some colliders from being oriented.

  190. Fixed "enabled experimental" so that the Tetrad app remembers the setting from run to run.

  191. Fixed causal order method to find a causal order as close to a given order of nodes as possible.