[Paper Review] Causal Discovery Toolbox: Uncover causal relationships in Python
The Causal Discovery Toolbox (CDT) is an open-source Python framework that unifies pairwise and multivariate causal discovery algorithms, enabling end-to-end learning of causal graphs and mechanisms from observational data with optional R integration and GPU support.
This paper presents a new open source Python framework for causal discovery from observational data and domain background knowledge, aimed at causal graph and causal mechanism modeling. The 'cdt' package implements the end-to-end approach, recovering the direct dependencies (the skeleton of the causal graph) and the causal relationships between variables. It includes algorithms from the 'Bnlearn' and 'Pcalg' packages, together with algorithms for pairwise causal discovery such as ANM. 'cdt' is available under the MIT License at https://github.com/Diviyan-Kalainathan/CausalDiscoveryToolbox.
Motivation & Objective
- Provide an open-source Python framework for causal discovery from observational data and domain knowledge.
- Recover both the causal graph skeleton and the causal mechanisms.
- Integrate algorithms from R packages (bnlearn, pcalg) and Python-native methods.
- Support end-to-end pipeline from undirected skeleton to directed causality.
- Enable easy extension and hardware acceleration (GPU) for scalable analysis.
Proposed method
- Include 17 skeleton identification algorithms (7 independence-test based, 10 for skeleton recovery).
- Include 19 causal directed graph algorithms (10 graphical, 9 pairwise).
- Unify pairwise and multivariate approaches within a single networkx.Graph-based framework.
- Provide R integration via wrappers to run R scripts from Python and retrieve results.
- Leverage PyTorch for GPU acceleration and automatic hardware detection.
- Offer an end-to-end pipeline: infer undirected graph, then constrain causal discovery to the skeleton.
Experimental results
Research questions
- RQ1How can a single Python package unify pairwise and multivariate causal discovery methods?
- RQ2How effectively can R-based causal discovery algorithms be integrated into Python workflows?
- RQ3What performance and scalability gains are achieved via end-to-end skeleton-first causal discovery and GPU acceleration?
- RQ4Can the toolkit be extended to handle interventional and time-series data in future work?
- RQ5What mechanisms ensure reproducibility and extensibility of the CDT library across platforms?
Key findings
- CDT provides an open-source Python framework with end-to-end causal discovery capabilities.
- It unifies pairwise and multivariate approaches, returning graphs as networkx.Graph objects.
- The package integrates 17 skeleton-detection algorithms and 19 causal-directed-graph algorithms, with R wrappers for cross-language access.
- GPU acceleration is supported via PyTorch and hardware autodetection.
- A modular design with testing, continuous integration, and Docker/PyPI deployment supports extensibility and sustainability.
- Future plans include GPU-optimized implementations and handling interventional/time-series data.
Better researchstarts right now
From reading papers to final review, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.