# gCastle: A Python Toolbox for Causal Discovery

arXiv: https://arxiv.org/abs/2111.15155 · HTML: https://mlsanity.com/paper/2111.15155/

## Key facts

- Cited by 61 papers in the map (data through 14 Oct 2026).
- Builds on 19 of its 35 references that are in the map.
- First posted on arXiv 30 Nov 2021.

## Builds on (most cited first, 19 of 19)

- [DAGs with NO TEARS: Continuous Optimization for Structure Learning](https://mlsanity.com/paper/1803.01422/) (2018)
- [DAG-GNN: DAG Structure Learning with Graph Neural Networks](https://mlsanity.com/paper/1904.10098/) (2019)
- [Detecting causal associations in large nonlinear time series datasets](https://mlsanity.com/paper/1702.07007/) (2017)
- [Gradient-Based Neural DAG Learning](https://mlsanity.com/paper/1906.02226/) (2019)
- [Differentiable Causal Discovery from Interventional Data](https://mlsanity.com/paper/2007.01754/) (2020)
- [Learning Sparse Nonparametric DAGs](https://mlsanity.com/paper/1909.13189/) (2019)
- [On the Role of Sparsity and DAG Constraints for Learning Linear DAGs](https://mlsanity.com/paper/2006.10201/) (2020)
- [CAM: Causal additive models, high-dimensional order search and penalized regression](https://mlsanity.com/paper/1310.1533/) (2013)
- [Causal Inference and Causal Explanation with Background Knowledge](https://mlsanity.com/paper/1302.4972/) (2013)
- [Causal Discovery with Reinforcement Learning](https://mlsanity.com/paper/1906.04477/) (2019)
- [DoWhy: An End-to-End Library for Causal Inference](https://mlsanity.com/paper/2011.04216/) (2020)
- [Masked Gradient-Based Causal Structure Learning](https://mlsanity.com/paper/1910.08527/) (2019)
- [CausalML: Python Package for Causal Machine Learning](https://mlsanity.com/paper/2002.11631/) (2020)
- [Differentiable Causal Discovery Under Unmeasured Confounding](https://mlsanity.com/paper/2010.06978/) (2020)
- [A Graph Autoencoder Approach to Causal Structure Learning](https://mlsanity.com/paper/1911.07420/) (2019)
- [Ordering-Based Causal Discovery with Reinforcement Learning](https://mlsanity.com/paper/2105.06631/) (2021)
- [A fast PC algorithm for high dimensional causal discovery with multi-core PCs](https://mlsanity.com/paper/1502.02454/) (2015)
- [On Low Rank Directed Acyclic Graphs and Causal Structure Learning](https://mlsanity.com/paper/2006.05691/) (2020)
- [An Influence-based Approach for Root Cause Alarm Discovery in Telecom Networks](https://mlsanity.com/paper/2105.03092/) (2021)

## Built on by (most cited first, 30 of 61)

- [Causal-learn: Causal Discovery in Python](https://mlsanity.com/paper/2307.16405/) (2023)
- [Deep End-to-end Causal Inference](https://mlsanity.com/paper/2202.02195/) (2022)
- [A Survey on Causal Discovery Methods for I.I.D. and Time Series Data](https://mlsanity.com/paper/2303.15027/) (2023)
- [A Scale-Invariant Sorting Criterion to Find a Causal Order in Additive Noise Models](https://mlsanity.com/paper/2303.18211/) (2023)
- [FedDAG: Federated DAG Structure Learning](https://mlsanity.com/paper/2112.03555/) (2021)
- [A Review of the Role of Causality in Developing Trustworthy AI Systems](https://mlsanity.com/paper/2302.06975/) (2023)
- [CIPCaD-Bench: Continuous Industrial Process datasets for benchmarking Causal Discovery methods](https://mlsanity.com/paper/2208.01529/) (2022)
- [Evaluation of Induced Expert Knowledge in Causal Structure Learning by NOTEARS](https://mlsanity.com/paper/2301.01817/) (2023)
- [Applying Large Language Models for Causal Structure Learning in Non Small Cell Lung Cancer](https://mlsanity.com/paper/2311.07191/) (2023)
- [Comprehensive Review and Empirical Evaluation of Causal Discovery Algorithms for Numerical Data](https://mlsanity.com/paper/2407.13054/) (2024)
- [Unitless Unrestricted Markov-Consistent SCM Generation: Better Benchmark Datasets for Causal Discovery](https://mlsanity.com/paper/2503.17037/) (2025)
- [FML-bench: A Controlled Study of AI Research Agent Strategies from the Perspective of Search Dynamics](https://mlsanity.com/paper/2605.17373/) (2026)
- [Open problems in causal structure learning: A case study of COVID-19 in the UK](https://mlsanity.com/paper/2305.03859/) (2023)
- [A Fixed-Point Approach for Causal Generative Modeling](https://mlsanity.com/paper/2404.06969/) (2024)
- [Effective Bayesian Causal Inference via Structural Marginalisation and Autoregressive Orders](https://mlsanity.com/paper/2402.14781/) (2024)
- [Structure Causal Models and LLMs Integration in Medical Visual Question Answering](https://mlsanity.com/paper/2505.02703/) (2025)
- [Optimizing Data-driven Causal Discovery Using Knowledge-guided Search](https://mlsanity.com/paper/2304.05493/) (2023)
- [Tearing Apart NOTEARS: Controlling the Graph Prediction via Variance Manipulation](https://mlsanity.com/paper/2206.07195/) (2022)
- [Robustness of Algorithms for Causal Structure Learning to Hyperparameter Choice](https://mlsanity.com/paper/2310.18212/) (2023)
- [Permutation-based Inference for Variational Learning of Directed Acyclic Graphs](https://mlsanity.com/paper/2402.02644/) (2024)
- [CausalPlayground: Addressing Data-Generation Requirements in Cutting-Edge Causality Research](https://mlsanity.com/paper/2405.13092/) (2024)
- [Causal Discovery via Quantile Partial Effect](https://mlsanity.com/paper/2509.12981/) (2025)
- [The Robustness of Differentiable Causal Discovery in Misspecified Scenarios](https://mlsanity.com/paper/2510.12503/) (2025)
- [Learning Multiscale Non-stationary Causal Structures](https://mlsanity.com/paper/2208.14989/) (2022)
- [A Causal Ordering Prior for Unsupervised Representation Learning](https://mlsanity.com/paper/2307.05704/) (2023)
- [Learned Causal Method Prediction](https://mlsanity.com/paper/2311.03989/) (2023)
- [Reinforcement Learning for Causal Discovery without Acyclicity Constraints](https://mlsanity.com/paper/2408.13448/) (2024)
- [ACCESS : A Benchmark for Abstract Causal Event Discovery and Reasoning](https://mlsanity.com/paper/2502.08148/) (2025)
- [Learning Identifiable Structures Helps Avoid Bias in DNN-based Supervised Causal Learning](https://mlsanity.com/paper/2502.10883/) (2025)
- [Generalization of LiNGAM that allows confounding](https://mlsanity.com/paper/2401.16661/) (2024)

## Abstract (arXiv)

textttgCastle is an end-to-end Python toolbox for causal structure learning. It provides functionalities of generating data from either simulator or real-world dataset, learning causal structure from the data, and evaluating the learned graph, together with useful practices such as prior knowledge insertion, preliminary neighborhood selection, and post-processing to remove false discoveries. Compared with related packages, textttgCastle includes many recently developed gradient-based causal discovery methods with optional GPU acceleration. textttgCastle brings convenience to researchers who may directly experiment with the code as well as practitioners with graphical user interference. Three real-world datasets in telecommunications are also provided in the current version. textttgCastle is available under Apache License 2.0 at urlhttps://github.com/huawei-noah/trustworthyAI/tree/master/gcastle.
