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

首先下载salmon二进制版本

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

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

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

使用salmon建立索引

mkdir Mus_musculus.GRCm38.cds.index
export LD_LIBRARY_PATH=/media/sdb/user/yueyao/software/salmon-latest_linux_x86_64/lib:$LD_LIBRARY_PATH
/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来进行安装了

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

salmon进行定量

/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值

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处理成如下格式

chr14 Ensembl exon  73741918  73744001  0.0 - . gene_id "ENSG00000000001"; transcript_id "ENST00000000001.1";
chr14 Ensembl exon 73749067 73749213 0.0 - . gene_id "ENSG00000000001"; transcript_id "ENST00000000001.1";
chr14 Ensembl exon 73750789 73751082 0.0 - . gene_id "ENSG00000000001"; transcript_id "ENST00000000001.1";
chr14 Ensembl exon 73753818 73754022 0.0 - . gene_id "ENSG00000000001"; transcript_id "ENST00000000001.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格式

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 设置输出格式
将不同的可变剪切事件合并成一个结果

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

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

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

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

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

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

#注意样品的命名,可能会影响这一步
# Split the PSI and TPM files between the 2 conditions:
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
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

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

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

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

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. package.json 版本号解释

    经常看到package.json中的各种版本号记录 比如 ~ ^ 等.其实是有个规范的.其遵循 semver. 具体的网站为:  http://semver.org/lang/zh-CN/

  2. CSS3字体大小rem属性用法

    PX为单位 在Web页面初期制作中,我们都是使用“px”来设置我们的文本,因为他比较精确和固定. 只要页面某元素设置了px字体大小,其子元素/子孙元素未设置字体大小或设置的字体大小css优先级没父元素 ...

  3. 23种C#设计模式,源码在GitHub ( 具体代码 , 优缺点 , 相关网址) 希望对大家有所帮助

    点击 进入Github 地址

  4. 我为什么选择Vim

    总看到一些飞快敲击键盘而不用鼠标的时候你可以很羡慕和佩服,其实这完全没有必要.就像一个吉他手熟练地弹吉他有必要羡慕吗?一个瓦匠熟练地砌砖有必要羡慕吗?这些都是他们赖以生存的工具而已,熟练地运用工具是理 ...

  5. zabbix—自动发现端口并监控

    自动批量检查agent开放的端口 PS:如果服务器上的应用都是固定的,不会随机产生的都可以使用自动发现端口来监控:  如果服务器会随机出现端口且每次启动程序都会改变,可以采用第二种方法,来监控指定的端 ...

  6. WIN7在计算机管理中修改用户名之后 文件夹名字不变怎么办?

      WIN7在计算机管理中修改用户名之后 文件夹名字不变?   可以新建一个管理员账户,起名字,然后删除旧的账户.保留原用户文件夹中的内容,以备不时之需.不要在控制面板的用户账户中修改用户名,修改之后 ...

  7. 胶囊网络 -- Capsule Networks

    胶囊网络是 vector in vector out的结构,最后对每个不同的类别,输出不一个向量,向量的模长表示属于该类别的概率. 例如,在数字识别中,两个数字虽然重叠在一起,Capsule中的两个向 ...

  8. postgresQL 服务器端守护进程

  9. Faster async functions and promises

    https://v8.dev/blog/fast-async async function computeAnswer() { return 42;}undefinedconst p = comput ...

  10. 办公室上网慢原因排查 有人下载东西 设置行为管理 宽带分配设置独立下行宽带 TL-WVR1200L

    办公室上网慢原因排查 有人下载东西  设置行为管理 宽带分配设置独立下行宽带