• SUPPA是一款通过转录本定量来获取可变剪切定量结果的软件。转录本的定量方式有很多,例如count,FPKM, TPM等,作者建议使用TPM,因为先均一化了基因的长度,然后均一化了测序的深度。同时建议使用salmon软件进行定量
  • 软件的下载与安装

首先下载salmon二进制版本

  1. wget https://github.com/COMBINE-lab/salmon/releases/download/v0.14.0/salmon-0.14.0_linux_x86_64.tar.gz
  2. tar zxvf salmon-0.14.0_linux_x86_64.tar.gz -C ../

下面使用小鼠的转录本来建立索引

  1. wget ftp://ftp.ensembl.org/pub/release-96/fasta/mus_musculus/cds/Mus_musculus.GRCm38.cds.all.fa.gz
  2. gunzip Mus_musculus.GRCm38.cds.all.fa.gz
  3. perl -lane 'if(/^>/){$id=(split/\./,$_)[0];print $id}else{print}' Mus_musculus.GRCm38.cds.all.fa >Mus_musculus.GRCm38.cds.all.format.fa

使用salmon建立索引

  1. mkdir Mus_musculus.GRCm38.cds.index
  2. export LD_LIBRARY_PATH=/media/sdb/user/yueyao/software/salmon-latest_linux_x86_64/lib:$LD_LIBRARY_PATH
  3. /media/sdb/user/yueyao/software/salmon-latest_linux_x86_64/bin/salmon index -t Mus_musculus.GRCm38.cds.all.format.fa -i Mus_musculus.GRCm38.cds.index

SUPPA2的安装,需要注意的是SUPPA2是使用python3.4编写的,所以不要使用python2来进行安装了

  1. #使用pip安装
  2. pip install SUPPA==2.2.1
  3. #使用conda进行安装
  4. conda install -c bioconda suppa
  5. #从github下载
  6. wget https://github.com/comprna/SUPPA/archive/master.zip -O suppa2.zip

salmon进行定量

  1. /media/sdb/user/yueyao/software/salmon-latest_linux_x86_64/bin/salmon quant -i Mus_musculus.GRCm38.cds.index -l ISF --gcBias -1 /media/sdb/user/yueyao/CircosRNA/00.data/107190A/107190A_1.fq.gz -2 /media/sdb/user/yueyao/CircosRNA/00.data/107190A/107190A_2.fq.gz -p 12 -o 107190A

-l 参数表示

提取salmon结果中的TPM值

  1. python /media/sdb/user/yueyao/software/SUPPA-master/multipleFieldSelection.py -i 107190A/quant.sf -k 1 -f 4 -o 107190A_iso_tpm.txt

-k 表示转录本id在第一列
-f 表示TPM值在第四列
使用suppa进行生成一个ioe文件,需要注意的是gtf注释文件是进行一些简单的处理,这里将小鼠的ensemble下载的gtf处理成如下格式

  1. chr14 Ensembl exon 73741918 73744001 0.0 - . gene_id "ENSG00000000001"; transcript_id "ENST00000000001.1";
  2. chr14 Ensembl exon 73749067 73749213 0.0 - . gene_id "ENSG00000000001"; transcript_id "ENST00000000001.1";
  3. chr14 Ensembl exon 73750789 73751082 0.0 - . gene_id "ENSG00000000001"; transcript_id "ENST00000000001.1";
  4. chr14 Ensembl exon 73753818 73754022 0.0 - . gene_id "ENSG00000000001"; transcript_id "ENST00000000001.1";

使用如下命令

  1. perl -F"\t" -lane 'if(/^[1-9]+/){$F[8]=~/(gene_id\s"ENSMUSG\d+";)\s/;$gene=$1;$F[8]=~/(transcript_id\s"ENSMUST\d+";)\s/;$trans=$1;if($F[2] eq "exon"){print join("\t",@F[0..7])."\t".qq{$gene $trans}}}' Mus_musculus.GRCm38.96.gtf >Mus_musculus.GRCm38.96.format.gtf

使用generateEvents命令根据基因组的gtf注释文件生成所有的可变剪切事件,格式保存为ioe格式

  1. python /media/sdb/user/yueyao/software/miniconda3/envs/suppa2/bin/suppa.py generateEvents -i Mus_musculus.GRCm38.96.format.gtf -o 107190A.events -e SE SS MX RI FL -f ioe

-i 输入的gtf文件
-o 输出的文件前缀
-e 输出可变剪切的类型
-f 设置输出格式
将不同的可变剪切事件合并成一个结果

  1. awk '
  2. FNR==1 && NR!=1 { while (/^<header>/) getline; }
  3. 1 {print}
  4. ' *.ioe > ensembl_mm10.events.ioe

需要注意的时如果使用的是RefSeq annotation注释文件,要使用--pooled-genes参数,因为RefSeq基因是根据它们所包含的mRNA序列来识别,而不是基因位置信息,这可能导致同一个基因会比对到基因组两个不同的地方去,或者是两个同源异构体具有相同的exon或者剪切位点被标记为不同的基因。pooled-genes重新定义了这种情况

得到一个PSI值,需要注意的是使用的转录本ID和gtf的转录本ID应该是一致,数目不一样可能会有错误提示:

  1. python /media/sdb/user/yueyao/software/miniconda3/envs/suppa2/bin/suppa.py psiPerEvent -i ensembl_mm10.events.ioe -e 107190A_iso_tpm.txt -o TRA2_events

提取某一个基因的可变剪切事件进行不同分组的作图

  1. python /media/sdb/user/yueyao/software/SUPPA-master/scripts/generate_boxplot_event.py -e "ENSMUSG00000000244;MX:7:143007005-143011034:143011108-143015581:143007005-143014959:143015060-143015581:+" -i TRA2_events.psi.psi -g 1-2,3-4,5-6 -c A1,A2,A3 -o /media/sdb/user/yueyao/Test/suppa2/result/

-i 输入PSI矩阵
-e 某一个基因的某种类型的可变剪切事件
-g 设置分组的样品
-c 设置组名,与前面的分组对应

根据PSI文件,将可变剪切的结果和表达量的结果按照分组分成两个文件
需要注意的是样品的名称命名不能以数字开头,因为R脚本默认会对读入的title的数字前面加一个X

  1. #注意样品的命名,可能会影响这一步
  2. # Split the PSI and TPM files between the 2 conditions:
  3. Rscript /media/sdb/user/yueyao/software/SUPPA-master/scripts/split_file.R iso_tpm.txt S107190A,S107192A,S107194A S107195A,S107196A,S107197A /media/sdb/user/yueyao/Test/suppa2/Group1_iso_tmp.txt /media/sdb/user/yueyao/Test/suppa2/Group2_iso_tmp.txt
  4. Rscript /media/sdb/user/yueyao/software/SUPPA-master/scripts/split_file.R TRA2_events.psi S107190A,S107192A,S107194A S107195A,S107196A,S107197A /media/sdb/user/yueyao/Test/suppa2/Group1.psi /media/sdb/user/yueyao/Test/suppa2/Group2.psi

计算两个不同分组的可变剪切差异

  1. python /media/sdb/user/yueyao/software/SUPPA-master/suppa.py diffSplice -m empirical -gc -i ensembl_mm10.events.ioe -p Group1.psi Group2.psi -e Group1_iso_tmp.txt Group2_iso_tmp.txt -o result/Group1_vs_Group2

根据差异可变剪切的结果,可以选区某一个类型的可变剪切事件进行聚类分析,我这里用了所有的事件,好像结果不正常

  1. python /media/sdb/user/yueyao/software/SUPPA-master/suppa.py clusterEvents --dpsi Group1_vs_Group2.dpsi.temp.0 --psivec Group1_vs_Group2.psivec --sig-threshold 0.05 --eps 0.2 --separation 0.11 -dt 0.2 --min-pts 10 --groups 1-3,4-6 -c OPTICS -o cluster
 
 
 
 

SUPPA 可变剪切分析的更多相关文章

  1. Deep-learning augmented RNA-seq analysis of transcript splicing | 用深度学习预测可变剪切

    可变剪切的预测已经很流行了,目前主要有两个流派: 用DNA序列以及variant来预测可变剪切:GeneSplicer.MaxEntScan.dbscSNV.S-CAP.MMSplice.clinVa ...

  2. 利用circpedia 数据库探究circRNA的可变剪切

    circpedia 中收录了利用circexplorer 软件识别到的circRNA, 覆盖了人,小鼠,鸟类,昆虫多个物种的多种细胞系的数据 官网链接如下: http://www.picb.ac.cn ...

  3. 转录组分析综述A survey of best practices for RNA-seq data analysis

    转录组分析综述 转录组 文献解读 Trinity cufflinks 转录组研究综述文章解读 今天介绍下小编最近阅读的关于RNA-seq分析的文章,文章发在Genome Biology 上的A sur ...

  4. 【GWAS文献】基于GWAS与群体进化分析挖掘大豆相关基因

    Resequencing 302 wild and cultivated accessions identifies genes related to domestication and improv ...

  5. PacBio三代全长转录组/Iso-Seq技术及案例分析

    参考:产品手册 PacBio三代全长转录组有什么优势? 近年来,随着高通量测序技术的发展,转录组测序已经成为研究基因表达调控的主要手段.但二代的转录本重构准确率很低,三代可以直接得到全长转录本,无需组 ...

  6. RNA-seq差异表达基因分析之TopHat篇

    RNA-seq差异表达基因分析之TopHat篇 发表于2012 年 10 月 23 日 TopHat是基于Bowtie的将RNA-Seq数据mapping到参考基因组上,从而鉴定可变剪切(exon-e ...

  7. 使用Tophat+cufflinks分析差异表达

    使用Tophat+cufflinks分析差异表达  2017-06-15 19:09:43     522     0     0 使用TopHat+Cufflinks的流程图 序列的比对是RNA分析 ...

  8. 用tophat和cufflinks分析RNAseq数据[转载]

    转自:http://blog.sciencenet.cn/home.php?mod=space&uid=635619&do=blog&id=884213 //今天看到一篇非常好 ...

  9. 【蛋白质基因组】Proteogenomics方法介绍及分析思路

    概念 利用蛋白质组学数据,结合基因组数据(DNA).转录组数据(RNA)来研究基因组注释问题,被称为蛋白质基因组学."蛋白质基因组学"一词由Jaffe 等于2004 年首次提出,作 ...

随机推荐

  1. 【一起来烧脑】底层HTTP深入笔记

    [外链图片转存失败(img-0GQ8QDNb-1563568792102)(https://upload-images.jianshu.io/upload_images/11158618-5bc7a2 ...

  2. +和join的区别

    + 每次进行相加都会开辟新的空间,回收旧的空间join 一次性开辟好空间,一次性添加进去,一次性回收

  3. Note_4.7

    2019/4/7 奇奇怪怪的笔记 狄利克雷卷积  \(μ∗1=ϵ\),莫比乌斯反演 \(Id=φ∗1⇒φ=μ∗Id\) \(d=1∗1⇒1=μ∗d\) \(σ=Id∗1⇒Id=μ∗σ\) \(σ=φ∗ ...

  4. Vue编程基础

    一.依赖环境搭建: 添加镜像 # 安装好node.js后,使用淘宝镜像 npm install -g cnpm --registry=https://registry.npm.taobao.org 项 ...

  5. BAT文件语法和技巧(bat文件的编写及使用)

    比较有用的东西 首先,批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(no ...

  6. shell脚本实例,通向shell脚本大师的必经之路

    概述 读书百遍其义自见,shell脚本也是,只要例子看得多了,自然就知道怎么写了.这里主要整理了20几个例子,因为内容比较多,所以分了几次来做介绍了.下面的实例最好先自己思考怎么去实现,然后再看下实现 ...

  7. EasyTrader踩坑之旅(三)

    快速阅读 ​ 用THSTrader 调试同花顺自动下单的过程 . 主要原理是利用python函数pywinauto 自动获取同花顺上相应控件的值,进行模拟自动化的操作,不得不说python函数库的强大 ...

  8. TCP粘包拆包问题分析及应对方案

    粘包拆包问题是处于网络比较底层的问题,在数据链路层.网络层以及传输层都有可能发生.我们日常的网络应用开发大都在传输层进行,由于UDP有消息保护边界,不会发生粘包拆包问题,因此粘包拆包问题只发生在TCP ...

  9. cat命令的简单实现

    cat命令的简单实现 目标:简单的实现cat命令 实现的mic_cat命令主要有三大功能 1.mic_cat命令一次显示整个文件 $ mic_cat filename 2.mic_cat命令从键盘创建 ...

  10. NPVariant -js传递给NPAPI插件参数在firefox和chrome需要采用不同的获取方式

    原帖地址:http://blog.sina.com.cn/s/blog_4c6631790102wd1o.html 整数参数 typedef struct _NPVariant { NPVariant ...