林hui杨65928
测序行业的蓬勃发展,带来微生物组学日新月异的变化。目前,单一组学的文章不断“贬值”,前沿研究的目光从单一组学逐步拓展至多组学对贯穿分析,即结合多个组学的分析角度,从多个层面阐述生物学机制。
微生物多组学贯穿分析策略十分丰富:如常见的16s与宏基因组贯穿分析,可以验证物种的特征、丰富功能的探究;而16s与代谢组的贯穿分析思路同样常见于高分文章中,通过16s探究不同处理/环境下菌群的物种组成变化,结合代谢组对应的代谢物的变化,进而找到不同处理/环境下引发细菌丰度差异最终导致代谢表型差异的机制。参考阅读《选好思路和方法,给自己一篇多组学高分文章 》
在16s与代谢组贯穿分析中,相关性热图是一个重要的分析手段,主要用于逐一呈现细菌物种与代谢物间的相关性高低,是筛选潜在关联的物种与代谢物的主要途径,对于下游的实验起到指导意义。此类相关性热图在高分文章中频繁出现,足见其重要性(图1、图2)。
图1 物种代谢物热图(2015,Cell Host& Microbe,IF= )[1]
图2 物种代谢物热图(2018,NatureMedicine,IF=)[2]
那么,该如何画出此类高分文章中的相关性热图呢?这里,以16s与代谢组的数据为例,向大家分享如何使用R语言进行两个组学数据的相关性计算、绘制相关性热图。
1.加载R包
library(psych)
library(pheatmap)
library(reshape2)
2.读入数据
phy <(file = "", sep = "t", header = T, 1)
图3 微生物丰度信息表格
met <(file = "", sep = "t", header = T, 1)
图4 代谢物丰度信息表格
3.计算相关性、p值
cor <(phy, met, method = "pearson",adjust= "none")
cmt <-cor$r
pmt <- cor$p
head(cmt)
head(pmt)
4.数据保存
<-cbind(rownames(cmt),cmt)
( "",sep= "t",)
图5 相关性系数表格
<-cbind(rownames(pmt),pmt)
( "",sep= "t",)
图6 p值表格
df <-melt(cmt, "cor")
df$pvalue <- (pmt)
head(df)
(df,file= "",sep= "t")
图7 关系对信息
5.绘制显著性标记
if(!(pmt)){
ssmt <- pmt<
pmt[ssmt] <- '**'
smt <- pmt > pmt <
pmt[smt] <- '*'
pmt[!ssmt&!smt]<- ''
} else{
pmt <- F
}
6.绘制相关性热图
mycol<-colorRampPalette(c("blue","white","tomato"))(800)
pheatmap(cmt,scale = "none",cluster_row = T, cluster_col = T, border=NA,
display_numbers = pmt,fontsize_number = 12, number_color = "white",
cellwidth = 20, cellheight =20,color=mycol)
图8 R语言绘制的物种+代谢物相关性热图
pheatmap(cmt,scale = "none",cluster_row = T, cluster_col = T, border=NA,
display_numbers = pmt, fontsize_number = 12, number_color = "white",
cellwidth = 20, cellheight = 20,color=mycol,filename= "")
参考文献
[1]Kostic AD, Gevers D, Siljander H, et al. The dynamics ofthe human infant gut microbiome in development and in progression toward type 1diabetes. Cell Host Microbe. 2015;17(2):260–
[2]Hoyles, Lesleyet al. “Molecular phenomics and metagenomics of hepatic steatosis innon-diabetic obese women.” Nature medicine vol. 24,7 (2018):1070-1080. doi: 原文
谁来终结广场舞
转自医学方
2019-07-4 Alexander
流行病学或者医学论文中,对研究对象基本情况的描述通常以表格的形式进行,并且放在结果部分的开头,即Table 1,主要内容是研究对象一般情况和研究变量或协变量的分组展示。
前几天文章修回过程中,花了两天时间分析数据,修改文章,其中有近1天的时间都在手动录入数据(从R studio里把分析结果整理到Excel或者word),这样除了花费时间外,还非常容易出错。之前一直想找时间通过R markdown把制作表格的过程程序化,可是效果并不理想。
这次痛定思痛,先从table 1开始,发现了几个不错的方法。其中一种个人觉得可读性和可编辑性都比较强,于是学习了一下,作为一个非常实用的工具分享给大家。
这里主要参考一篇博客Fast-track publishing using knitr: table mania,对细节进行了加工和注释。
1 数据的准备
数据主要来自于boot包的melanoma。加载后,看下数据的基本结构。
接下来对数据进行简单的整理,为后续分析做准备;
将分类变量定义为因子型并设置标签(这里建议设置一个新的变量,仅用于table 1的制作,不影响后续的分析);
2 安装和加载R包 Gmisc
后面两个包是加载“Gmisc”时要求加载的。
3 自定义函数、制作表格
根据已有函数自定义函数,并制作表格。定义一个函数,输入数据集的变量并得到该变量的统计结果:
函数定义完成后,建立一个空的列表,以储存每个变量的分析结果,并进行分析,将结果储存在列表中:
将所有结果merge到一个矩阵中,并建立rgroup(table1第一列的变量名) 和 (table 1第一列每个变量的行数):
结果如下:
当然,有些情况下,需要多加一个分组标题栏(column spanner),该怎么加呢?
如下:
结果如下:
4 导出结果
在R studio viewer窗口点击白色按钮,即可在浏览器中打开,然后复制粘贴到word可以进一步加工修饰。
是不是很刺激呢。 应该还有其他的导出方法,不过这个已经很方便了。
拓展功能选
⒈ 二分类变量只显示一个(比如男性和女性)。只要在getDescriptionStatsBy的"show_all_values"参数设置为FALSE即可;
⒉ 显示缺失值。getDescriptionStatsBy的"useNA"参数设置为"ifany",表示如果有缺失值就显示缺失值情况;如设置为“no”,表示始终不显示缺失值情况;“always”则表示无论是否有缺失值都显示缺失值情况;
⒊ Total一列是可以去掉的,getDescriptionStatsBy的"add_total_col"参数设置为FALSE即可。
不足之处
⒈ 差异性检验是采用非参的方法,虽然没有错,但是一般符合参数检验条件的数据还是要使用参数检验的方法,这里可以自行检验后再修改P-value;
⒉ Mean (SD)的展示形式有个括号感觉有点别扭,还不知道怎么去掉,有方法的小伙伴欢迎分享交流。
另外有一些其他的制作table 1的R包,比如table 1(R包的名字)包,tableone包,还有其他生成表格的R包(plyr等),个人浏览下来感觉这个最容易理解和掌握,其他包的功能有兴趣的可以再自行挖掘对比。
原文链接:
r语言在生物医学领域的应用如下: R语言在医学科学研究中应用广泛,典型的应用包括:机器学习技术可以帮助研究人员构建和改进机器学习模型,建立影响治疗效果的变量;统
曰月無塵 2人参与回答 2023-12-09 医学论文格式及写作方法医学论文写作是一项严肃、意义重大的工作、是交流经验,传播科技成果,不断提高临床诊治和科研水平的重要组成部分。只有不断的总结,才能在总结的基
又肥又馋的兔子 3人参与回答 2023-12-06 在论文中添加参考文献引用的方法有以下几种:1. 直接插入法:在论文正文中引用文献时,可以直接在引用处插入文献信息。例如:“根据Smith的研究(2010),……
一个美好的食袋 5人参与回答 2023-12-05 转自医学方 2019-07-4 Alexander 流行病学或者医学论文中,对研究对象基本情况的描述通常以表格的形式进行,并且放在结果部分的开头,即Table
3未闻花名3 2人参与回答 2023-12-11 这要看你的数据量,如果巨大,可能是要用SPSS。如果数据量不是很大,EXCEL也是可以的,只是要自己运用函数额处理。
wendyhuihui 3人参与回答 2023-12-06