Skip to content

Migrate Workflow from R Kumu to PyKumu (Python) #4

@phuong808

Description

@phuong808

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions