Giter VIP home page Giter VIP logo

multi-plier's Introduction

MultiPLIER

A unsupervised transfer learning approach for rare disease transcriptomics

Taroni JN, Grayson PC, Hu Q, Eddy S, Kretzler M, Merkel PA, and Greene CS+. MultiPLIER: a transfer learning framework reveals systemic features of rare autoimmune disease. bioRxiv. 2018.

+Correspondence via issues or to [email protected]

Data

Data used in this analysis repo were processed in greenelab/rheum-plier-data. Please see that repository for relevant citations.

Data and code, including items that are too large to be stored with Git LFS (e.g., some models), associated with v0.2.0 are available at the following DOI: 10.6084/m9.figshare.6982919.v2

Dependencies

We have prepared a Docker image that contains all the dependencies required to reproduce these analyses. See docker/Dockerfile for more information about dependencies.

After installing Docker (Docker documentation), the image can be obtained:

docker pull jtaroni/multi-plier:0.2.0

We use R notebooks for analysis, which can be run and modified using RStudio. RStudio is included on our Docker image. This guide from Andrew Heiss, specifically the Run locally with a GUI section, is a great starting point for working with RStudio and Docker.

Overview

Unsupervised machine learning methods provide a promising means to analyze and interpret large datasets. However, most datasets generated by individual researchers remain too small to fully benefit from these methods. In the case of rare diseases, there may be too few cases available, even when multiple studies are combined. We sought to determine whether or not machine learning models could be constructed from large public data compendia and then transferred to small datasets for subsequent analysis. We trained models using Pathway Level Information ExtractoR (PLIER) (Github) over datasets of different types and scales. Models constructed from large public datasets were i) more detailed than those constructed from individual datasets; ii) included features that aligned well to important biological factors; iii) transferrable to rare disease datasets where the models describe biological processes related to disease severity more effectively than models trained within those datasets.

We call this approach MultiPLIER because we train on multiple datasets, tissues, and biological conditions.

We focus on groups of systemic autoimmune conditions in this project; one group of conditions is rare and the other disease is not. First, we establish that PLIER is appropriate for use in a single tissue, multi-dataset compendium (greenelab/rheum-plier-data/sle-wb) constructed from publicly available systemic lupus erythematosus (SLE) whole blood (WB) microarray data. We demonstrate that MultiPLIER, trained on the recount2 RNA-seq compendium, performs similarly in capturing certain cell type-specific signals and captures additional pathway signals over an SLE WB model. We also analyze expression data from 3 tissues from anti-neutrophilic cytoplasmic antibodies (ANCA)-associated vasculitis (AAV), a family of rare diseases, with MultiPLIER.

Overview figure of dataset-specific PLIER and MultiPLIER. Boxes with solid colored fills represent inputs to the model. White boxes with colored outlines represent model output. (A) PLIER (Mao et al., 2017) automatically extracts latent variables (LVs), shown as the matrix B, and their loadings (Z). We can train PLIER model for each of three datasets from different tissues, which results in three dataset-specific latent spaces. (B) PLIER takes as input a prior information/knowledge matrix C and applies a constraint such that some of the loadings (Z) and therefore some of the LVs capture biological signal in the form of curated pathways or cell type-specific gene sets. (C) Ideally, an LV will map to a single gene set or a group of highly related gene sets to allow for easy interpretation of the model. PLIER applies a penalty on U to facilitate this. Purple fill in a cell indicates a non-zero value and a darker purple indicates a higher value. We show an undesirable U matrix in the top toy example (Ci) and a favorable U matrix in the bottom toy example (Cii). (D) If models have been trained on individual datasets, we may be required to find “matching” LVs in different dataset- or tissue-specific models using the loadings (Z) from each model. Using a metric like the Pearson correlation between loadings, we may or may not be able to find a well-correlated match between datasets. (E) The MultiPLIER approach: train a PLIER on a large collection of uniformly processed data from many different biological contexts and conditions (recount2; Collado-Torres et al., 2017)—a MultiPLIER model—and then project the individual datasets into the MultiPLIER latent space. The hatched fill indicates the sample dataset of origin. (F) Latent variables from the MultiPLIER model can be tested for differential expression between disease and controls in multiple tissues.

For more information about the training set, please see this notebook.

Notebooks

Analysis notebooks are numbered and present in the top level directory. We've enabled Github pages for easy viewing of the notebooks. Some steps in the pipeline are R scripts rather than notebooks due to their computationally intensive nature; we exclude these from the TOC below.

Note that not all analyses present in this repository are included in the preprint.

The figure_notebooks directory contains notebooks that were used specifically to generate figures suitable for publication (figure_notebooks/figures).

License

This repository is dual licensed as BSD 3-Clause (source code) and CC0 1.0 (figures, documentation, and our arrangement of the facts contained in the underlying data), with the following exceptions:

  • recount2 data is licensed CC-BY.

multi-plier's People

Contributors

jaclyn-taroni avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

multi-plier's Issues

Update README

To include:

  • Docker information
  • Link to data repository
  • Overview figure?

Add libraries to Docker image

MCPCounter

devtools::install_github("ebecht/MCPcounter", 
                         ref = "a79614eee002c88c64725d69140c7653e7c379b4",
                         subdir = "Source",
                         dependencies = TRUE)

required normalization of input data

Hello,

I am trying to run multiPLIER on my own RNA-seq data. The code is working great on your data provided, but I believe that my data is not normalized correctly to work with the code. How would you recommend I normalize my RNAseq data so that it is compatible?

Thank you,
Laurel

Pathway "separation" with increased sample size

We've seen that type I and type II interferon pathways were not captured in separate LVs in the SLE WB model, but there was a type I latent variable and a type II latent variable learned in the MultiPLIER/recount2 model. We can explore this more systematically.

First, we need to identify what pairs or groups of pathways are suited for this evaluation. Here's what comes to mind:

  • Type I and type II interferon
  • Myeloid lineage (we've done some analysis for this as well)
  • Some set of proliferation-related pathways (e.g., cell cycle, ribosome biogenesis, translation)

We need some metric for "separation."

Related: #39

rowNorm

Hello. I am trying to use the util listed in multi-plier. I just noticed that in PlierNewData there is a line for rowNorm. Then for the set.k you use num.pc which also has rowNorm inside them.

'PLIER' element in the list?

Hi! I'm trying to re-use functions from PLIER and multiPLIER for my study on extracting signatures from the public datasets, and have a question.

AllPairs(plier.model = y$PLIER)

Here, it seems like y is the loaded _PLIER_model.RDS file, but I don't think there is a PLIER element in the PLIER model output list. Could you direct me where this element is? Thanks!

Training on different subsets of recount2

Changing the "composition" of the training set

Things to try (using the MetaSRA annotations):

  • Cancer data only
  • Tissue only
  • Cell lines only
  • Blood only
  • Everything but blood

Addressed in #45

Sample size

500, 1000, 2000, 4000 ... 32000

Evaluations:

Pathway coverage (and which ones), number of latent variables, proportion of latent variables associated with a pathway

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.