Skip to content
/ mpcsl Public

A Modular Pipeline for Causal Structure Learning called MPCSL.

License

Notifications You must be signed in to change notification settings

hpi-epic/mpcsl

Repository files navigation

MPCSL: A Modular Pipeline for Causal Structure Learning

Docs CircleCI codecov

This repository contains the backend of MPCSL, a Modular Pipeline for Causal Structure Learning, build at the chair for Enterprise Platform and Integration Concepts at the Hasso Plattner Institute. The pipeline currently includes the following features, all of which are accessible via a REST API:

  • Store causal structure learning ready datasets into our backend
  • Set up causal structure learning experiments for different causal structure learning algorithms in R, Python and CUDA with different hyperparameter settings and dataset choices
  • Run the experiments as jobs directly in our backend
  • Manage all currently running jobs on the backend
  • Deliver the results and meta information of past experiments
  • Show distributions and perform interventions (currently limited to specific cases)
  • Comparison of different experiment results using quality metrics, such as type I or type II error, or graph edit distance
  • Extend the pipeline with new algorithms in their own execution environments

The following image shows the holistic architecture as a FMC diagram:

Setup

Requirements

As the user interface files are stored in a different currently private repository, you have to clone the repo using:

git clone --recurse-submodules git@github.com:hpi-epic/mpcsl.git

Getting Started

  1. minikube start
  2. garden deploy
  3. garden run task seed-db
  4. Goto minikube ip in browser

Setup Algorithms

garden run task db-setup-algorithms loads the algorithms into the database.

Seeding Example Dataset/Experiment

With garden run task seed-db an example dataset will be loaded into the database. The example dataset is generated from an EARTHQUAKE bayesian network on this page.

Endpoint Documentation

A Swagger documentation of our REST endpoints is available using /swagger/index.html given default host and port settings.

Maintainers

Contact: firstname.lastname@hpi.de

Contributors