RNA-seq学习:No.8IsoformSwitchAnalyzeR包(2)

在之前的步骤中,已经筛选出感兴趣的转录本信息,并添加了多种注释了。接下来就可以做最后的分析了,比如哪个基因的转录本信息变化最大,如何变化。
由于之前的示例文件包含基因数比较少,且涉及了三种情况,较复杂。因此这里换一个理想的示例文件进行演练。

data("exampleSwitchListAnalyzed")
sar <- subsetSwitchAnalyzeRlist(
  exampleSwitchListAnalyzed, 
  exampleSwitchListAnalyzed$isoformFeatures$condition_1 == 'COAD_ctrl'
)
sar
image.png

步骤三:结果分析 Post Analysis

1、查看Switch排名

  • 这里的排名依据主要是依靠q-value/dIF值
    (1)看看变化最大的两个基因
extractTopSwitches(
  sar, 
  filterForConsequences = TRUE, 
  n = 2,   #如果设置n=NA,则会返回所有排名的一个表格
  sortByQvals = TRUE    #若为FALSE则按dIF值排名,默认为TRUE
)
  • filterForConsequences = TRUE filter for genes with functional consequences,参考步骤二最后一步,默认为FALSE。
  • sortByQvals =参数若为TRUE,则按Q值排名;若为FALSE,则按dIF值排名;
  • n=参数设置数量,若设置为NA,则会得到所有排名的表格。
    image.png

    (2)获得IsoformSwitch排名表格
  • gene
sar.ge_df=extractTopSwitches( 
  sar, 
  filterForConsequences = TRUE, 
  n = NA,                
  extractGenes = TRUE,    # when FALSE isoforms are returned
  sortByQvals = TRUE
)
sar.ge_df
  • isoform
sar.is_df=extractTopSwitches( 
  sar, 
  filterForConsequences = TRUE, 
  n = NA,                
  extractGenes = FALSE,    # when FALSE isoforms are returned
  sortByQvals = TRUE
)
head(sar.is_df,2)
head(sar.is_df,2)

2、单个基因switch可视化★

(1)以比较显著的ZAK基因为例
subset(sar.is_df, gene_name == 'ZAK')
ZAK基因的两个转录本情况
  • switchPlot()函数将其可视化
switchPlot(sar, gene = 'ZAK')

如下图结果:

  • 上半部分为:The isoform structures along with the concatenated annotations (including transcript classification, ORF, Coding Potential, NMD sensitivity, annotated protein domains as well as annotated signal peptides)。
    上面两个 Decreased/Increased useage的应该是dIF分别小于0、大于0的isoform,而第三个isoform说明ZAK基因表达这个转录本没有显著变化。
  • 下半部分为三个柱状图,从三个角度反映表达情况。重点关注两边的,可以看出二者基因表达没有显著差异,但是isoform usage变化显著!

柱状图上方的横线标注应该表示p值,即有无显著差异。ns表示 not significant;*~***表示有显著差异。

switchPlot
  • 综上,COAD_cancer患者的ZAK基因的uc002uhz.2转录本表达明显比健康人高许多,而uc002uhy.2相应得比健康人表达少。后期深入分析可结合注释信息差异,进行转录蛋白结构等深入挖掘。
  • 最后将该结果下载保存,建议为pdf
pdf(file = '~/li/test/ZAK.pdf', onefile = FALSE, height=6, width = 9)
switchPlot(sar, gene='ZAK')
dev.off()
(2)批量绘制
switchPlotTopSwitches(
    switchAnalyzeRlist = sar, 
    n = 10,   #绘制排名前10的
    filterForConsequences = FALSE, 
    splitFunctionalConsequences = TRUE
)
  • splitFunctionalConsequences =参数设置 to create a sub-folder for those switches with predicted consequences and another sub-folder for those without.
    如下图结果,因为设置了filterForConsequences = FALSEsplitFunctionalConsequences = TRUE 两个参数,因此按照排名将结果分成两类,分别存储在两个子文件夹里。
    process
switchPlotTopSwitches

3、Genome-wide Consequences Summaries

extractConsequenceSummary(
  sar,
  consequencesToAnalyze='all',  #也可以指定感兴趣的consequences
  plotGenes = FALSE,           # enables analysis of genes (instead of isoforms)
  asFractionTotal = FALSE      # enables analysis of fraction of significant features
)
  • From this summary plots above many conclusions are possible. First of all, the most frequent changes are changes affecting protein domains, Intrinsically Disordered Regions (IDR) and ORFs.


    extractConsequenceSummary
  • To easily see the opposite consequence that are unevenly distributed,可以将上图转化为富集分析图。
extractConsequenceEnrichment(
    exampleSwitchListAnalyzed,
    consequencesToAnalyze='all',
    analysisOppositeConsequence = TRUE,
    returnResult = FALSE # if TRUE returns a data.frame with the results
)
  • 对比上面的柱状图,中心点在虚线右边的应该表示相应的consequence增多。If this fraction is significantly different from 0.5 it indicates there is a systematic bias in isoform switch consequences.


    extractConsequenceEnrichment

From the analysis above, it is therefore quite clear, that many of the opposing consequences are significantly unevenly distributed. In other words, many types of consequences seem to be used in a condition-specific manner.

4、Genome-wide Splicing Summaries

extractSplicingSummary(sar)
extractSplicingSummary
extractSplicingEnrichment(
  sar,
  splicingToAnalyze = c('A3','MES','ATSS','ATTS'), 
  returnResult = TRUE # if TRUE returns a data.frame with the results
)
image.png

5、最后画一个火山图吧~

ggplot(data=sar$isoformFeatures, aes(x=dIF, y=-log10(isoform_switch_q_value))) +
  geom_point(
    aes( color=abs(dIF) > 0.1 & isoform_switch_q_value < 0.05 ), # default cutoff
    size=1
  ) +
  geom_hline(yintercept = -log10(0.05), linetype='dashed') + # default cutoff
  geom_vline(xintercept = c(-0.1, 0.1), linetype='dashed') + # default cutoff
  scale_color_manual('Signficant\nIsoform Switch', values = c('black','red')) +
  labs(x='dIF', y='-Log10 ( Isoform Switch Q Value )') +
  theme_bw()
volcano figure

As there are many dIF values (effect size) very close to zero, which have a significant isoform switch (black dots above dashed horizontal line) this nicely illustrates why a cutoff on both the dIF and the q-value are necessary.


  • 以上是IsoformSwitchAnalyzeR分析的一个大致流程了,其实这个包还可以分析更加复杂的情况,比如三组实验设计的两两比较,存在协变量的情况都可以进行分析。之后实际遇到这些数据再深入了解下。
  • 在注释过程中,涉及到许多生物知识,比如蛋白结构域,信号肽,内在无序区域,以及CDS与ORF区别等,以后有机会再进行深入的学习吧~
  • 官方说明书除了流程以外,关于可能遇到的一些问题说得很详细,值得仔细学习。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,287评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,346评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,277评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,132评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,147评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,106评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,019评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,862评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,301评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,521评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,682评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,405评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,996评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,651评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,803评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,674评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,563评论 2 352

推荐阅读更多精彩内容