查看原文
其他

用Expedition来分析单细胞转录组数据的可变剪切

jimmy 生信技能树 2022-06-07

了解我的应该都知道我最近几个月都在奋战一个陌生的领域,单细胞转录组数据处理。真的很有挑战性,笔记累积了一大堆了,但是没有太值得分享的,大多是利用bulk转录组数据处理的经验而已,但是下面这个是单细胞转录组数据独有的,简单分享一下吧。


工具发表于2017,文章是 Single-cell alternative splicing analysis with Expedition reveals splicing dynamics during neuron differentiation  为了展示他们的工具,测了各种细胞,包括 62 iPSCs, 69 NPCs, and 60 MNs 数据库是可以在GSE85908下载 :

  • induced pluripotent stem cells (iPSCs)

  • neural progenitor cells (NPCs)

  • motor neurons(MNs)

软件地址:(http://github.com/YeoLab/Expedition)  其实是一个软件合集,包括下面的3个软件需要分别安装分别使用。

  • (i) outrigger, a de novo splice graph transversal algorithm to detect AS from single cell RNA-seq;

  • (ii) anchor, a Bayesian approach to assign splicing modalities

  • (iii) bonvoyage, using non-negative matrix factorization to visualize modality changes.

当然,主要是第一个软件的运行及解读,后面的两个锦上添花,可以忽略,不影响分析单细胞转录组数据的可变剪切的基本需求。

值得一提的是,该软件只关注mutually exclusive exon (MXE)和skipped exon (SE)这两种 alternative splicing (AS) events !

一、outrigger

软件github地址是:https://github.com/YeoLab/outrigger

软件说明书在:http://yeolab.github.io/outrigger/

可以用conda非常方便的安装

conda config --add channels r
conda config --add channels bioconda
conda create --name outrigger-env outrigger
source activate outrigger-env

使用方法也非常简单,说明书讲解的非常清楚,就三个步骤,针对比对好的bam文件(需要STAR软件比对,才能输出splice junction (SJ.out.tab)文件)

cd ~/projects/tasic2016/analysis/tasic2016_v1
outrigger index --sj-out-tab *SJ.out.tab \
   --gtf /projects/ps-yeolab/genomes/mm10/gencode/m10/gencode.vM10.annotation.gtf
outrigger validate --genome mm10 \
   --fasta /projects/ps-yeolab/genomes/mm10/GRCm38.primary_assembly.genome.fa
outrigger psi

看懂算法需要一点点时间和耐心,https://pypi.python.org/pypi/outrigger, 图文并茂的讲解了。但是作者说这个软件有个很严重的缺点,太耗时间

  • outrigger index: This will run for 24-48 hours.

  • outrigger validate: This will take 2-4 hours.

  • outrigger psi: This will run for 4-8 hours.

起初为了加快软件运行速度,我给定了 --n-jobs 5 多线程,25G的内存,但是内存爆表了,重新分配50G内存,一晚上终于运行完毕了。

得到的结果如下:

outrigger_output/
├── index
│   ├── exon_direction_junction.csv
│   ├── gtf
│   │   ├── gencode.vM12.annotation.gtf
│   │   ├── gencode.vM12.annotation.gtf.db
│   │   └── novel_exons.gtf
│   ├── mxe
│   │   ├── event.bed
│   │   ├── events.csv
│   │   ├── exon1.bed
│   │   ├── exon2.bed
│   │   ├── exon3.bed
│   │   ├── exon4.bed
│   │   ├── intron.bed
│   │   ├── splice_sites.csv
│   │   └── validated
│   │       └── events.csv
│   └── se
│       ├── event.bed
│       ├── events.csv
│       ├── exon1.bed
│       ├── exon2.bed
│       ├── exon3.bed
│       ├── intron.bed
│       ├── splice_sites.csv
│       └── validated
│           └── events.csv
├── junctions
│   ├── metadata.csv
│   └── reads.csv
└── psi
   ├── mxe
   │   ├── psi.csv
   │   └── summary.csv
   ├── outrigger_psi.csv
   ├── outrigger_summary.csv
   └── se
       ├── psi.csv
       └── summary.csv

10 directories, 29 files

二、anchor

软件github地址是:https://github.com/YeoLab/anchor

软件说明书在: https://yeolab.github.io/anchor/

可以用conda非常方便的安装

conda create -n anchor-env pandas scipy numpy matplotlib seaborn
pip install anchor-bio

使用方法也有点诡异,看起来需要进入python的交互界面

import anchor

bm = anchor.BayesianModalities()
modalities = bm.fit_transform(data)

还没看懂干什么的。

三、bonvoyage

软件github地址是: https://github.com/YeoLab/bonvoyage

软件说明书在: http://yeolab.github.io/bonvoyage/

可以用conda非常方便的安装

conda create -n anchor-env pandas numpy matplotlib seaborn scikit-learn
pip install bonvoyage

这个主要是用来可视化上面步骤的anchor推断的可变剪切形式

import bonvoyage

wp = bonvoyage.Waypoints()
waypoints = wp.fit_transform(data)
import bonvoyage

bonvoyage.waypointplot(waypoints)

背景知识

mutually exclusive exon (MXE)skipped exon (SE)这些名词的解释我就不搬运了,但是下面这个原理图还是值得瞧一瞧:


总的来说,你看完这个教程应该是没办法学到什么技巧,只能收藏一下咯,毕竟大部分人根本木有单细胞数据,也没有足够强大的服务器来hold住这样的大数据。

但是,万一,你也正好在做方面的探索,欢迎来信跟我讨论具体细节。

不要忘记了,我的邮箱是, jmzeng1314@163.com  ,欢迎,真的欢迎

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存