Git Product home page Git Product logo

greenelab / biobombe Goto Github PK

View Code? Open in Web Editor NEW
63.0 6.0 23.0 2.33 GB

BioBombe: Sequentially compressed gene expression features enhances biological signatures

Home Page: https://greenelab.github.io/BioBombe/

License: BSD 3-Clause "New" or "Revised" License

Jupyter Notebook 72.80% Python 1.57% R 1.29% Shell 0.07% HTML 24.27%
gene-sets msigdb gene-expression tcga compression hetnet biobombe network autoencoder

biobombe's Introduction

logo

Sequential Compression of Gene Expression Data Across Latent Space Dimensions

Gregory Way and Casey Greene 2018

University of Pennsylvania

DOI

The repository stores data and data processing modules to sequentially compress gene expression data.

Named after the mechanical device developed by Alan Turing and other cryptologists in World War II to decipher secret messages sent by Enigma machines, BioBombe represents an approach used to decipher hidden messages embedded in gene expression data. We use the BioBombe approach to study different biological representations learned across compression algorithms and various latent dimensionalities.

In this repository, we compress three different gene expression data sets (TCGA, GTEx, and TARGET) across 28 different latent dimensions (k) using five different algorithms (PCA, ICA, NMF, DAE, and VAE). We evaluate each algorithm and dimension using a variety of metrics. Our goal is to construct reproducible gene expression signatures with unsupervised learning.

Links to access data and archived results can be found here: https://greenelab.github.io/BioBombe/

Citation

Compressing gene expression data using multiple latent space dimensionalities learns complementary biological representations Way, G.P., Zietz, M., Rubinetti, V., Himmelstein, D.S., Greene, C.S. Genome Biology (2020) doi:10.1186/s13059-020-02021-3

Approach

Our approach is outlined below:

overview

BioBombe Training Implementation

Our model implementation is described below.

implementation

Analysis Modules

To reproduce the results and figures of the analysis, the modules should be run in order.

Name Description
0.expression-download Download and process gene expression data to run through pipeline
1.initial-k-sweep Determine a set of optimal hyperparameters for Tybalt and ADAGE models across a representative range of k dimensions
2.sequential-compression Train various algorithms to compress gene expression data across a large range of k dimensions
3.build-hetnets Download, process, and integrate various curated gene sets into a single heterogeneous network
4.analyze-components Visualize the reconstruction and sample correlation results of the sequential compression analysis
5.analyze-stability Determine how stable compression solutions are between and across algorithms, and across dimensions
6.biobombe-projection Apply BioBombe matrix interpretation analysis and overrepresentation analyses to assign biological knowledge to compression features
7.analyze-coverage Determine the coverage, or proportion, of enriched gene sets in compressed latent space features for all models and ensembles of models
8.gtex-interpret Interpret compressed features in the GTEX data
9.tcga-classify Input compressed features from TCGA data into supervised machine learning classifiers to detect pathway aberration
10.gene-expression-signatures Identify gene expression signatures for sample sex in GTEx and TCGA data, and MYCN amplification in TARGET data

Algorithms

See 2.sequential-compression for more details.

Computational Environment

All processing and analysis scripts were performed using the conda environment specified in environment.yml. To build and activate this environment run:

# conda version 4.5.0
conda env create --force --file environment.yml

conda activate biobombe

biobombe's People

Contributors

ashirborah avatar cgreene avatar gwaybio avatar vincerubinetti 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  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  avatar

biobombe's Issues

Update GTEx Geneset Panels C and D

After changes are merged in #125, the function plot_gene_set() will change. I will need to rerun the visualize notebook in the gtex module after the update

Network Projection Results

I will need to determine how to store these results. They are quite large and there are many of them. I am thinking some sort of figshare or zenodo link

Additional Analysis: Applications to External Datasets

Get scores for all top scoring features across k dimension and algorithm for two publicly available datasets.

See if the score is associated with "separation" of target samples

Can also split out "monocyte" vs other in that plot

Plot Change in AUC

For TCGA figure, should visualize change in ROC across k for cancer-type and mutations separately

will drive home the point that different signal is being detected at different k

Hex Color Tables

as @ajlee21 pointed out in #56 here

Is it worth creating a lookup table with colors -- HEX code as you've done before?

It will be good to update HEX colors in a table lookup. Also related to #14

Move SVCCA

SVCCA does not seem to work for the sample activation patterns in our models. I will apply SVCCA to the weight matrices instead to see if the results appear more promising.

Add TCGA Analysis

Answering question of how much additional information is gained through biobombe serial compression vs. lasso on 200 features

Find Sex Feature in TCGA

Related to #163 as was previously done in GTEx. Also, box plots can be changed to display different correlations with transformed data in both cases as well

colorblindr dependency

I removed the colorblindr dependency in #13 because the package is not currently a conda recipe. Adding back this dependency will require a conda-forge pull request that I will save for a later date.

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.