Coder Social home page Coder Social logo

leafletsc's Introduction

LeafletSC

LeafletSC is a binomial mixture model designed for the analysis of alternative splicing events in single-cell RNA sequencing data. The model facilitates understanding and quantifying splicing variability at the single-cell level. Below is the graphical abstract of our approach:

Compatibility with sequencing platforms

LeafletSC supports analysis from the following single-cell RNA sequencing platforms:

  • Smart-Seq2
  • Split-seq
  • 10X

Getting Started

LeafletSC is implemented in Python and requires Python version 3.10 (3.11 has not been tested yet). We recommend the following approach:

# create a conda environment with python 3.10 
conda create -n "LeafletSC" python=3.10 ipython
# activate environment 
conda activate LeafletSC
# install latest version of LeafletSC into this environment
pip install LeafletSC

Once the package is installed, you can load it in python as follows:

import LeafletSC 

# or specific submodules 
from LeafletSC.utils import *
from LeafletSC.clustering import *

Requirements

Prior to using LeafletSC, please run regtools on your single-cell BAM files. Here is an example of what this might look like in a Snakefile:

{params.regtools_path} junctions extract -a 6 -m 50 -M 500000 {input.bam_use} -o {output.juncs} -s XS -b {output.barcodes}
# Combine junctions and cell barcodes
paste --delimiters='\t' {output.juncs} {output.barcodes} > {output.juncswbarcodes}
  • Once you have your junction files, you can try out the mixture model tutorial under Tutorials
  • While optional, we recommend running LeafletSC intron clustering with a gtf file so that junctions can be first mapped to annotated splicing events.

Capabilities

With LeafletSC, you can:

  • Infer cell states influenced by alternative splicing and identify differentially spliced regions.
  • Conduct differential splicing analysis between specific cell groups if cell identities are known.
  • Generate synthetic alternative splicing datasets for robust analysis testing.

How does it work?

The full method can be found in our paper while the graphical model is shown below:

If you use Leaflet, please cite our paper

@inproceedings{Isaev2023-ax,
  author = {Isaev, Keren and Knowles, David A},
  title = {Investigating RNA splicing as a source of cellular diversity using a binomial mixture model},
  booktitle = {Proceedings of Machine Learning Research: MLCB 2023},
  year = {2023},
  url = {https://proceedings.mlr.press/v240/isaev24a.html}
}

Potential errors:

If you have any errors with the package Polars, please ensure you install polars-lts-cpu:

pip install polars-lts-cpu

To-do:

  1. Add documentation and some tests for how to run the simulation code
  2. Add 10X/split-seq mode in addition to smart-seq2
  3. Extend framework to seurat/scanpy anndata objects
  4. Add notes on generative model and inference method
  5. Clean up dependencies

leafletsc's People

Contributors

karini925 avatar davidaknowles avatar

Stargazers

wangyang avatar Jack Humphrey avatar Henrik Lindehell avatar Dan avatar Choo Liu avatar Akshdeep Sandhu avatar Scott Adamson avatar

Watchers

 avatar

Forkers

abuchin

leafletsc's Issues

Touble in install tha package

Hi, thanks for developing such wonderful tools for us. Bot I have trouble in installing the packages. I'm looking forward to your conda install method.

Dan

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.