-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Purpose
Primary objective is to migrate the FGES component of the Kumu causal discovery workflow into a Python-based PyKumu notebook, as discussed. This work focuses on reproducing the FGES search end to end using PyTetrad and JPype, while maintaining parity with the existing R + Causal Command implementation.
Process
Reproduce the FGES search in Python using PyTetrad + JPype, matching the behavior of the existing R + Causal Command workflow.
Use the same dataset (null_variable_dt.csv) and parameters currently defined in the Kumu .Rmd.
Map R-based configurations to Python equivalents, including:
-
SEM BIC score configuration
-
Bootstrapping settings
-
FGES algorithm flags
Start from existing PyTetrad scripts (e.g., run_with_bootstrapping.py) and inspect related function definitions in TetradSearch.py to ensure parameters are correctly passed.
Where parameters are missing or unclear:
-
Trace their usage through the PyTetrad codebase
-
Consult the Java Tetrad API documentation as needed to determine correct exposure via JPype
Avoid introducing additional data transformation logic at this stage; focus on parity with the existing workflow.
Iterate with @carlosparadis any gaps, ambiguities, or limitations encountered for later review and discussion.
Task List
-
Reproduce FGES search in Python using PyTetrad and JPype
-
Match dataset and parameter configuration from the Kumu .Rmd (SEM BIC, bootstrapping, FGES flags)
-
Review and validate PyTetrad scripts and TetradSearch.py parameter handling
-
Trace or document missing/unclear parameter mappings via PyTetrad or Java Tetrad API
-
Produce a working PyKumu .ipynb notebook running FGES end to end
-
Document gaps, ambiguities, or behavioral differences for follow-up