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

相关文章
|
8月前
|
机器学习/深度学习 数据采集 运维
重要的数据分析方法:时间序列分析
重要的数据分析方法:时间序列分析
159 1
重要的数据分析方法:时间序列分析
|
3月前
|
数据可视化 数据挖掘 API
【R语言实战】聚类分析及可视化
【R语言实战】聚类分析及可视化
|
3月前
利用R语言进行典型相关分析实战
利用R语言进行典型相关分析实战
|
3月前
|
机器学习/深度学习 算法 数据可视化
R语言中的聚类分析技术
【4月更文挑战第26天】R语言在聚类分析中扮演重要角色,提供层次聚类、K-均值、K-中心点、DBSCAN和高斯混合模型等多种方法。K-means通过最小化点到簇质心距离进行聚类,而K-medoids在`cluster`包的`pam`函数中实现,对异常值有较强鲁棒性。层次聚类利用`hclust`函数创建多层次结构,适合解释数据层次。`fpc`包的`dbscan`实现DBSCAN,能处理不均匀分布数据。聚类数量确定可借助轮廓系数、戴维斯-邦丁指数和肘部方法。`clvalid`包提供聚类验证,`ggplot2`用于结果可视化。R语言的聚类工具覆盖广泛,支持数据探索和理解。
40 0
|
3月前
|
机器学习/深度学习 算法 数据挖掘
R语言泰坦尼克号随机森林模型案例数据分析
R语言泰坦尼克号随机森林模型案例数据分析
|
3月前
|
机器学习/深度学习 存储 算法
R语言使用特征工程泰坦尼克号数据分析应用案例
R语言使用特征工程泰坦尼克号数据分析应用案例
|
3月前
|
数据可视化 数据挖掘
R语言分段回归数据数据分析案例报告
R语言分段回归数据数据分析案例报告
|
3月前
|
机器学习/深度学习 数据挖掘 大数据
如何用Python实现数据分析中的特征选择
特征选择是数据分析中的关键步骤,可以削减计算成本、提高模型精度,但是在大数据时代,如何快速有效地进行特征选择,成为了数据分析从业者需要面对的挑战。本文将介绍如何用Python在数据分析中进行特征选择,帮助读者提高数据分析效率。
|
3月前
|
机器学习/深度学习 算法 数据挖掘
数据分析入门系列教程-KNN原理
数据分析入门系列教程-KNN原理
|
9月前
|
机器学习/深度学习 数据采集 算法
r语言机器学习逻辑回归代码实战 结果分析和折线图
r语言机器学习逻辑回归代码实战 结果分析和折线图
78 1