SUPPA2是一款通过转录本定量来获取可变剪切定量结果的软件。转录本的定量方式有很多,例如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 (/^/) 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

linux可变剪切分析,SUPPA2进行可变剪切定量相关推荐

  1. linux可变剪切分析,SUPPA 可变剪切分析

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

  2. linux可变剪切分析,可变剪切的意义和重要性

    欢迎关注"生信修炼手册"! 可变剪切differential splicing,也叫做选择性剪切alternative splicing, 指的是在mRNA前体到成熟mRNA的过程 ...

  3. Linux内存技术分析(下)

    Linux内存技术分析(下) 五. 内存使用场景 out of memory 的时代过去了吗?no,内存再充足也不可任性使用. 1.内存的使用场景 · page管理 · slab(kmalloc.内存 ...

  4. 操作系统笔记——Linux系统实例分析、Windows系统实例分析

    文章目录 传送门 Linux进程管理 Linux进程组成 Linux进程链表 Linux进程控制 用户进程创建与撤销 0,1,2号进程 Linux进程切换 Linux进程调度 内核同步 Linux储存 ...

  5. Linux内存技术分析(上)

    Linux内存技术分析(上) 一.Linux存储器 限于存储介质的存取速率和成本,现代计算机的存储结构呈现为金字塔型.越往塔顶,存取效率越高.但成本也越高,所以容量也就越小.得益于程序访问的局部性原理 ...

  6. python哪些是可变对象_python的不可变对象与可变对象及其妙用与坑

    先上图. 图里,分别用三个整数进行了验证.可以发现当a和b值相同时,a与b地址也一致.改变a的值,a的地址也跟着改变了. 原因 python的宗旨之一,万物皆对象.(单身狗狂喜) 而对象又被分为可变对 ...

  7. linux串口驱动分析

    linux串口驱动分析 硬件资源及描写叙述 s3c2440A 通用异步接收器和发送器(UART)提供了三个独立的异步串行 I/O(SIO)port,每一个port都能够在中断模式或 DMA 模式下操作 ...

  8. Linux cgroup机制分析之cpuset subsystem

    ------------------------------------------ 本文系本站原创,欢迎转载! 转载请注明出处:http://ericxiao.cublog.cn/ -------- ...

  9. Linux系统IO分析工具之iotop常用参数介绍

      Linux系统IO分析工具之iotop常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在一般运维工作中经常会遇到这么一个场景,服务器的IO负载很高(iostat中的 ...

最新文章

  1. 把价钱转化为xx.xx的形式
  2. 单片机学习--3D动画演示单片机工作原理
  3. BugKuCTF 加密 聪明的小羊
  4. 2d 蓝图_“二渲三”打破传统思维!Netflix冲奥动画会推动2D动画变革吗?
  5. Ubuntu上安装GCC编译器
  6. 整理一年中使用到的工具和类库,可能正有你需要的!
  7. fedora 19 安装中文语言包
  8. 《知识产权法》雨课堂期末答案
  9. linux各文件夹作用
  10. tornado 异步
  11. 2020大疆校招B卷第三题
  12. 05流量管理原理-3金丝雀TCP流量整形比例分配
  13. js 中 true == 1 false == 0
  14. 一行命令aigc stable-diffusion 文本生成图片(动漫,艺术图,涩图,成人) 快速部署体验,微信端,小程序
  15. Vue3中Vuex的使用
  16. 力扣 2200. 找出数组中的所有 K 近邻下标
  17. 机器学习入门1--初识机器学习
  18. (七)python网络爬虫(理论+实战)——json数据解析
  19. 【手撕算法】【NLP】【Embedding】word2vec原理,代码实现
  20. js判断密码是否为键盘排序密码

热门文章

  1. c语言nba球星信息系统,NBA:超神控卫
  2. 怎么关闭计算机硬件加速,怎么关闭硬件加速?关闭硬件加速的操作技巧分享
  3. 74 ----平面直角坐标变换: 平移、旋转、伸缩
  4. PyTorch中的torch.clamp()实现矩阵裁剪
  5. cocos2dx的文章
  6. android10.0(Q) root QCOM-SM6125 user版本打开root权限
  7. 将office2016许可版切换为Office 365授权
  8. 计算机网络安全控制技术
  9. 无线打印服务器与什么打印机相配,网络打印服务器-本地打印机和网络打印机有什么区别? 爱问知识人...
  10. 页面自动化之 selenium(一) 自动签到与签退