Skip to content

About

Methods for integrating multimodal single cell sequencing data, including transcriptome (RNA-Seq) and epigenome (DNA methylation, ATAC-Seq)

Resources

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

146 Commits

Folders and files

Repository files navigation

SingleCellFusion

SingleCellFusion is a package for computational integration and analysis of single cell multiomics data sets, including transcriptom (RNA-Seq), DNA methylome (mC-Seq), and chromatin accessibility (ATAC-Seq). For a given pair of data sets, SingleCellFusion finds the best matching pairs of cells in each modality (i.e. nearest neighbors) by taking advantage of the correlation of gene expression with epigenomic marks across the gene body. Neighbors are used to impute counts for each data set. For example, if integrating scRNA-seq and snATAC-seq cells, SingleCellFusion will generate imputed scRNA-seq counts for the snATAC-seq profiled cells and snATAC-seq counts for the scRNA-seq profiled cells. Cells profiled by each technique can then be analyzed together in a joint, lower dimensional space.

The package is still under active development and function parameters will continue to change over time. A changelog of SingleCellFusion's development can be viewed here.

Requirements

  • python 3
  • loompy
  • numpy
  • scikit-learn
  • scipy
  • pandas
  • numba
  • fbpca

Installation

Currently, the only method of installing SingleCellFusion is to clone the github repository. Enter the directory where you would like to install SingleCellFusion and enter the following commands on the command line:

git clone https://github.com/mukamel-lab/SingleCellFusion.git
cd SingleCellFusion
python setup.py install

If you have trouble with dependencies, we have a guide to generating a usable conda environment in SingleCellFusion's sister repository MoP.

Basic Usage

The simplest way to use SingleCellFusion is to use the function fuse_data. As an example, say you have three datasets: an RNA-seq dataset stored in loom_rna, a methylome-seq dataset stored in loom_mc, and an ATAC-seq dataset stored in loom_atac. If your goal is to get imputed RNA data for the methylome and chromatin accessibility data, then fuse_data can be run with the following commands in a Python script:

import singlecellfusion as scf
scf.fuse_data(loom_source=loom_rna, #Path to the RNA loom file, observed data for imputation
          loom_target=[loom_mc,loom_atac], #Paths to methylome and ATAC files, will receive imputed counts
          correlation=['negative','positive'], #Expected correlation to RNA, methylome is negative and ATAC is positive
          loom_output=loom_output, #Path to output loom file containing observed/imputed RNA counts
          layer_source='', #Layer in loom_rna containing observed RNA counts
          layer_target=['',''], #Layers in loom_mc and loom_atac containing observed data
          layer_impute = 'imputed_rna', #Layers added to loom_target, will contain imputed RNA counts
          feat_source='Accession', #Row attribute specifying unique feature IDs in loom_rna
          feat_target = ['Accession','Accession'], #Row attributes specifying unique feature IDs in loom_mc and loom_atac
          cell_source = 'CellID', #Column attribute specifying unique cell IDs in loom_rna
          cell_target = ['CellID','CellID'], #Column attributes specifying unique cell IDs in loom_mc and loom_atac
          cluster_source = 'ClusterID', #Column attribute containing cluster assignments for cells in loom_rna
          cluster_target = ['ClusterID','ClusterID'], #Column attributes containing cluster assignments for loom_mc and loom_atac
          valid_ra_source=None, #Optional, row attribute of 0s and 1s specifying features that should be used
          valid_ra_target=[None,None], #Optional, valid features for loom_mc and loom_atac
          valid_ca_source=None, #Optional, column attribute of 0s and 1s specifying cells that should be used
          valid_ca_target=[None,None], #Optional, valid cells for loom_mc and loom_atac
          label_source='scRNA-seq', #Optional, labels for cells from loom_rna
          label_target=['snmC-seq','snATAC-seq'], #Optional, labels for loom_mc and loom_atac
          var_method='kruskal', #Method for determining variable features for integration, Kruskal-Wallis is recommended
          kruskal_n=8000, #Number of variable features to find and intersect per modality
          neighbor_method='knn', #Method for finding neighbors, knn is recommended
          n_neighbors=20, #Number of neighbors to find between each modality
          relaxation=10, #Flexibility parameter, a higher number enables more connections per cell
          remove_version=False, #If true, removes GENCODE version IDs. Useful if datasets have different annotations
          low_mem=False, #If true, runs in a low memory fashion. Will be slow but can handle large datasets
          batch_size=5000, #Size of batches if low_mem is True. Larger sizes go faster but with more memory
          verbose=True) #Print logging messages

These are the basic options that we have found to work well for integration, anything that is listed as optional. A more detailed walkthrough on how to use SingleCellFusion is being developed and will explain fuse_data and the component functions in more detail.

Tutorials and FAQs

  • A basic tutorial showing how to use SingleCellFusion is under development.
  • For a brief description of how SingleCellFusion works please check out this link.
  • Our FAQs have some answers to common questions that come up while using SingleCellFusion.
  • If you need information on performing preliminary analyses on loom files, please check out SingleCellFusion's sister repository MoP.

Authors

SingleCellFusion was developed by the Mukamel Lab. Code was specifically written by Wayne Doyle, Fangming Xie, and Ethan Armand.

Acknowledgments

We are grateful for support from the Chan-Zuckerberg Initiative program on Collaborative Computational Tools for the Human Cell Atlas (grant 183111) and from the NIH BRAIN Initiative U19 Center for Epigenomics of the Mouse Brain Atlas (CEMBA).

About

Methods for integrating multimodal single cell sequencing data, including transcriptome (RNA-Seq) and epigenome (DNA methylation, ATAC-Seq)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages