R实战 | NGS数据时间序列分析(maSigPro)

简介: R实战 | NGS数据时间序列分析(maSigPro)

示例数据


#BiocManager::install('maSigPro')
library(maSigPro)
# 载入示例数据
data(data.abiotic) 
data.abiotic[1:5,1:5]
data(edesign.abiotic)
head(edesign.abiotic)
> data.abiotic[1:5,1:5]
        Control_3H_1 Control_3H_2 Control_3H_3 Control_9H_1 Control_9H_2
STMDF90   0.13735714   -0.3653065  -0.15329448   0.44754535  0.287476796
STMCJ24           NA           NA           NA           NA           NA
STMJH42   0.07864449    0.1002328  -0.17365488  -0.25279484  0.184855409
STMDE66   0.22976991    0.4740975   0.46930716   0.37101059 -0.004992029
STMIX74   0.14407618   -0.4801864  -0.07847999   0.05692331  0.013045420
> head(edesign.abiotic)
             Time Replicate Control Cold Heat Salt
Control_3H_1    3         1       1    0    0    0
Control_3H_2    3         1       1    0    0    0
Control_3H_3    3         1       1    0    0    0
Control_9H_1    9         2       1    0    0    0
Control_9H_2    9         2       1    0    0    0
Control_9H_3    9         2       1    0    0    0

注意:data.abiotic是已经标准化过的基因表达矩阵。


建立回归模型


生成回归矩阵(makeDesignMatrix)

design <- make.design.matrix(edesign.abiotic, degree = 2)
design$groups.vector

示例数据有三个时间的,故考虑二次回归模型(degree = 2)。


> design$groups.vector
 [1] "ColdvsControl" "HeatvsControl" "SaltvsControl" "Control"      
 [5] "ColdvsControl" "HeatvsControl" "SaltvsControl" "Control"      
 [9] "ColdvsControl" "HeatvsControl" "SaltvsControl"

寻找重要基因(p.vector)

F检验确定回归方程的显著性,采用BH的校正方式,校正多重假设检验的p值。


校正后的p值小于p.vector的参数Q的基因就作为候选基因,进行下一步的分析。通过fit$SELEC可以得到候选基因的表达量信息。

fit <- p.vector(data.abiotic, # 标准化的表达矩阵 
                design, # 实验设计的矩阵 make.design.matrix 生成
                Q = 0.05, # 显著性水平
                MT.adjust = "BH", 
                min.obs = 20 
                # 最低表达样本数 不应小于(degree+1)xGroups+1 
                )
fit$i # 显著性基因的数量 
fit$SELEC # 显著性基因表达矩阵

寻找显著性差异(T.fit)


上述的回归方程是基于所有的自变量的组合构建的,接下来就是通过逐步回归法确定最佳的自变量组合。

tstep <- T.fit(fit, # p.vector结果
               step.method = "backward", 
               alfa = 0.05) # 在逐步回归中用于变量选择的显著性水平

在挑选最佳的自变量组合时,通过每种自变量组合对应的回归模型的拟合优度值R-squared来进行判断,R-squared取值范围为0到1,数值越大,越接近1,回归模型的效果越好。


获取显著性基因列表(get.siggenes)

sigs <- get.siggenes(tstep, # T.fit结果
                     rsq = 0.6, # 逐步回归中的R-squared截至值
                     vars = "groups")
# vars参数有3种
# all  每个基因直接给出一个最佳的回归模型
# groups  只给出不同实验条件下相比control组中的差异基因
# each 会给出时间点和实验条件的所有组合对应差异基因列表
names(sigs)
names(sigs$sig.genes$ColdvsControl)
sigs$sig.genes$ColdvsControl$sig.profiles # 查看cold vs control的结果

结果可视化


韦恩图(suma2Venn)

suma2Venn(sigs$summary[, c(2:4)]) # 左图
suma2Venn(sigs$summary[, c(1:4)]) # 右图
# 这个韦恩图面积大小与数量不成比例 较普通

image.png

see.genes()

see.genes(sigs$sig.genes$ColdvsControl, # 差异基因表达矩阵
          show.fit = T, # 是否显示回归拟合线(虚线)
          dis =design$dis, # 回归设计矩阵
          cluster.method="hclust" , # 聚类方法
          cluster.data = 1, 
          k = 9) # 聚类数目

image.png

这一步生成两个图,如图可分别查看。注意调整图片显示区域大小,以免报错。

image.png


Cluster Analysis ColdvsControl significant genes

image.png

Expression Profiles ColdvsControl significant genes

PlotGroups()

选择某一特定genes的表达进行可视化。

# 选取STMDE66基因
STMDE66 <- data.abiotic[rownames(data.abiotic)=="STMDE66", ]
PlotGroups (STMDE66, 
            edesign = edesign.abiotic)

image.png


# 添加回归拟合线
PlotGroups (STMDE66, 
            edesign = edesign.abiotic, 
            show.fit = T, 
            dis = design$dis, 
            groups.vector = design$groups.vector)

image.png


image.png

相关文章
|
机器学习/深度学习 数据采集 运维
重要的数据分析方法:时间序列分析
重要的数据分析方法:时间序列分析
216 1
重要的数据分析方法:时间序列分析
|
4月前
|
数据采集 存储 数据可视化
R语言时间序列分析:处理与建模时间序列数据的深度探索
【8月更文挑战第31天】R语言作为一款功能强大的数据分析工具,为处理时间序列数据提供了丰富的函数和包。从数据读取、预处理、建模到可视化,R语言都提供了灵活且强大的解决方案。然而,时间序列数据的处理和分析是一个复杂的过程,需要结合具体的应用场景和需求来选择合适的方法和模型。希望本文能为读者在R语言中进行时间序列分析提供一些有益的参考和启示。
|
4月前
|
机器学习/深度学习 数据采集 监控
怎么用机器学习做时间序列
8月更文挑战第20天
79 9
|
7月前
|
机器学习/深度学习 数据可视化 数据挖掘
时间序列预测:探索性数据分析和特征工程的实用指南
时间序列分析在数据科学和机器学习中广泛应用于预测,如金融、能源消耗和销售。随着技术发展,除了传统统计模型,机器学习(如树模型)和深度学习(如LSTM、CNN和Transformer)也被应用。探索性数据分析(EDA)是预处理关键步骤,它通过Pandas、Seaborn和Statsmodel等Python库进行。本文展示了时间序列分析模板,包括描述性统计、时间图、季节图、箱形图、时间序列分解和滞后分析。使用Kaggle的小时能耗数据集,展示了如何通过这些方法揭示数据模式、季节性和趋势,为特征工程提供见解。
132 3
利用R语言进行典型相关分析实战
利用R语言进行典型相关分析实战
时间序列分析实战(四):Holt-Winters建模及预测
时间序列分析实战(四):Holt-Winters建模及预测
|
7月前
|
数据可视化
【R语言实战】——金融时序ARIMA建模
【R语言实战】——金融时序ARIMA建模
|
7月前
|
机器学习/深度学习 算法 数据挖掘
R语言泰坦尼克号随机森林模型案例数据分析
R语言泰坦尼克号随机森林模型案例数据分析
|
7月前
|
运维 算法 C++
R语言时间序列分解和异常检测方法应用案例
R语言时间序列分解和异常检测方法应用案例
|
7月前
|
数据可视化 数据挖掘
R语言分段回归数据数据分析案例报告
R语言分段回归数据数据分析案例报告