SigMa is a probabilistic model for the sequential dependencies of mutation signatures
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data
src
.gitignore
.travis.yml
LICENSE
README.md
Snakefile
environment.yml

README.md

SigMa

Build Status License: MIT

This repository contains the source code for SigMa (Signature Markov model) and related experiments. SigMa is a probabilistic model of the sequential dependencies among mutation signatures.

Below, we provide an overview of the SigMa model from the corresponding paper. "The input data consists of (A) a set of predefined signatures that form an emission matrix E (here, for simplicity, represented over six mutation types), and (B) a sequence of mutation categories from a single sample and a distance threshold separating sky and cloud mutation segments. (C) The SigMa model has two components: (top) a multinomial mixture model (MMM) for isolated sky mutations and (bottom) an extension of a Hidden Markov Model (HMM) capturing sequential dependencies between close-by cloud mutations; all model parameters are learned from the input data in an unsupervised manner. (D) SigMa finds the most likely sequence of signatures that explains the observed mutations in sky and clouds."

Setup

Dependencies

SigMa is written in Python 3. We recommend using Conda to manage dependencies, which you can do directly using the provided environment.yml file:

conda env create -f environment.yml
source activate sigma-env

For windows replace last command with

activate sigma-env

Usage

We use Snakemake to manage the workflow of running SigMa on hundreds of tumor samples.

Reproducing the experiments from the SigMa paper

First, download and preprocess the ICGC breast cancer whole-genomes and COSMIC mutation signatures. To do so, run:

cd data && snakemake all

Second, run SigMa and a multinomial mixture model (MMM) on each sample, and perform leave-one-out cross-validation (LOOCV):

snakemake all

This will create an output/ directory, with two subdirectories: models/ and loocv/. models/ contains SigMa trained on each sample. loocv/ contains the results of LOOCV with SigMa using different cloud thresholds.

Configuration

To run the entire SigMa workflow on different mutation signatures or data, see the Snakefile for configuration options.

To train SigMa or MMM on individual mutation sequences, use the src/train_and_predict.py script. To get a list of command-line arguments, run:

python src/train_and_predict.py -h

Support

Please report bugs and feature requests in the Issues tab of this GitHub repository.

For further questions, please email Max Leiserson and Itay Sason directly.

References

Xiaoqing Huang*, Itay Sason*, Damian Wojtowicz*, Yoo-Ah Kim, Mark Leiserson^, Teresa M Przytycka^, Roded Sharan^. Hidden Markov Models Lead to Higher Resolution Maps of Mutation Signature Activity in Cancer. bioRxiv (2018) doi:10.1101/392639.

* equal first author contribution ^ equal senior author contribution