GraNDAG (gCastle)

Module name

gcastle_grandag

Package

gCastle

Version

1.0.3

Language

Python

Docs

here

Paper

Lachapelle et al.[1]

Graph type

DAG

MCMC

No

Edge constraints

No

Data type

C

Data missingness

Intervention type

Docker

bpimages/gcastle:1.0.3

Gradient-based Neural DAG Learner

A gradient-based algorithm using neural network modeling for non-linear additive noise data.

Example

Config file: gcastle.json

Command:

snakemake --cores all --use-apptainer --configfile config/gcastle.json

Fig. 50 shows the pattern graph’s FP/P vs. TP/P benchmark results for 12 gCastle algorithms (and comparison with BOSS (TETRAD) and Iterative MCMC (BiDAG)). The benchmark is based on 5 datasets corresponding to 5 realisations of a 20-variable random Gaussian SEM with Erdős-Rényi structure (expected degree 4, max parents 5). Each dataset contains 300 standardized samples. The SEM parameters are uniformly sampled from [0.25, 1].

FP/P vs. TP/P for gCastle algorithms

Fig. 37 FP/P vs. TP/P for gCastle algorithms.

Example JSON

[
  {
    "id": "gcastle_grandag",
    "hidden_num": 2,
    "hidden_dim": 10,
    "batch_size": 64,
    "lr": 0.001,
    "iterations": 1000,
    "model_name": "NonLinGaussANM",
    "nonlinear": "leaky-relu",
    "optimizer": "rmsprop",
    "h_threshold": "1e-8",
    "device_type": "cpu",
    "use_pns": false,
    "pns_thresh": 0.75,
    "num_neighbors": null,
    "normalize": false,
    "precision": false,
    "random_seed": 42,
    "jac_thresh": true,
    "lambda_init": 0.0,
    "mu_init": 0.001,
    "omega_lambda": 0.0001,
    "omega_mu": 0.9,
    "stop_crit_win": 100,
    "edge_clamp_range": 0.0001,
    "norm_prod": "paths",
    "square_prod": false,
    "timeout": null
  }
]