日常瞎掰
寒冬渐然远去,疫情似乎也感受到了春天的到来,想与人们一起欣赏这万物复苏的景象。可惜,并不是人们热情不好客,而是仍然处在惊恐中并未找到最好的途径与新冠和谐相处。所以,在这疫情散点似开花的时节,咱们只能暂时压抑内心的热情与欲望来与病毒进行博弈。一切终将会过去,那就用短暂的蛰伏来换取更长久的自由吧!
峰回路转
之前写过关于差异转录本分析的帖子<<IsoformSwitchAnalyzeR:差异转录本分析(1)>>。今天我们接着来说一说关于IsoformSwitchAnalyzeR包的用法。这个包含很多展示差异的方法,下面我们就具体来看一看。
1、switchPlot
展示具体某个基因中转录本的差异
switchPlot(
exampleSwitchListAnalyzed,
gene='ZAK',
condition1 = 'COAD_ctrl',
condition2 = 'COAD_cancer',
localTheme = theme_bw(base_size = 13) # making text sightly larger for vignette
)
结果如下:
上面的图包含很多的信息量,从上面的图可知,基因ZAK有三个表达的转录本,两个短的uc002uhy.2
和uc010zel.1
,一个长的uc002uhz.2
。与短的相比,长转录本多了SAM_1
蛋白结构域和IDR_w_binding_region
结构域。SAM_1
结构域可以促进与其他蛋白质和RNA分子的相互作,而IDR_w_binding_region
可能会增加与其他蛋白作用的可能。从左下的基因表达,我们首先注意到正常和癌症样本中ZAK的基因表达没有差异,这意味着标准的基因水平分析不会发现ZAK的任何变化。但是从由下图,我们可以看到组别间转录本的usage存在显著的变化。结合转录本结构和usage的变化,可以推断出在健康样本中主要使用的是两种短的转录本,而在COAD患者中,长亚型的表达大幅增加。从结构上来说,可推测出一个结论,即长亚型在肿瘤样本中使用得更多,可能导致一种蛋白质可以与癌症环境中的一组新的或不同的蛋白相互作用。
2、extractSwitchOverlap
两个条件共有的变化
extractSwitchOverlap(
exampleSwitchListAnalyzed,
filterForConsequences=TRUE,
plotIsoforms = FALSE
)
结果如下:
3、extractConsequenceSummary一致性分析
做这个分析之前,需要导入CPAT、Pfam、SignalP、IUPred2A等分析的结果。
extractConsequenceSummary(
exampleSwitchListAnalyzed,
consequencesToAnalyze='all',
plotGenes = FALSE, # enables analysis of genes (instead of isoforms)
asFractionTotal = FALSE # enables analysis of fraction of significant features
)
结果如下:
4、extractConsequenceEnrichment
extractConsequenceEnrichment(
exampleSwitchListAnalyzed,
consequencesToAnalyze='all',
analysisOppositeConsequence = TRUE,
returnResult = FALSE # if TRUE returns a data.frame with the summary statistics
)
5、extractSplicingSummary
extractSplicingSummary(
exampleSwitchListAnalyzed,
asFractionTotal = FALSE,
plotGenes=FALSE
)
结果如下:
6、extractSplicingEnrichment
splicingEnrichment <- extractSplicingEnrichment(
exampleSwitchListAnalyzed,
splicingToAnalyze='all',
returnResult=TRUE,
returnSummary=TRUE
)
结果如下:
7、Overview Plots
差异基因的火山图很好的展示了两个条件下,差异表达的基因情况。最后,展示一个类似的图,可以总体反映差异转录本的情况。
ggplot(data=exampleSwitchListAnalyzed$isoformFeatures, aes(x=dIF, y=-log10(isoform_switch_q_value))) +
geom_point(aes( color=abs(dIF) > 0.1 & isoform_switch_q_value < 0.05 ),size=1) +
geom_hline(yintercept = -log10(0.05), linetype='dashed') + # default cutoff
geom_vline(xintercept = c(-0.1, 0.1), linetype='dashed') + # default cutoff
facet_wrap( ~ condition_2) +
#facet_grid(condition_1 ~ condition_2) + # alternative to facet_wrap if you have overlapping conditions
scale_color_manual('Signficant\nIsoform Switch', values = c('black','red')) +
labs(x='dIF', y='-Log10 ( Isoform Switch Q Value )') +
theme_bw()
结果如下:
结束语
对于分析差异转录本来说,IsoformSwitchAnalyzeR包的功能已经相当全面了,这里并没展示其全部的功能,只是选取一些个人觉得比较重要的内容来展示。想要全面了解可移步官方文档:IsoformSwitchAnalyzeR。
网友评论