为了避免各位错过最新的推文教程,强烈建议大家将“科研后花园”设置为“星标”!
文献图片展示:
1、加载R包(未安装需要自行安装):
library(ggplot2) # Create Elegant Data Visualisations Using the Grammar of Graphics
library(DESeq2) # Differential gene expression analysis based on the negative binomial distribution
library(dplyr) # A Grammar of Data Manipulation
library(ggrepel) # Automatically Position Non-Overlapping Text Labels with'
library(RColorBrewer) # ColorBrewer Palettes
library(grid) # The Grid Graphics Package
library(scales) # Scale Functions for Visualization
library(microeco) # Microbial Community Ecology Data Analysis
2、加载数据(这里我们使用microeco包自带数据集,属于微生物组数据,需要进行转录组等数据分析的同学可根据个人数据调整)并根据绘图需求处理数据:
data(sample_info_16S)
data(otu_table_16S)
#转换为数据框格式
sample_info_16S <- as.data.frame(sample_info_16S)
otu_table_16S <- as.data.frame(otu_table_16S)
#构建DESeqDataSet对象——主要计算样本中的Saline列中Non-saline soil和Saline soil的差异
df_dds <- DESeqDataSetFromMatrix(countData = otu_table_16S, colData = sample_info_16S, design = ~Saline)
#差异分析
df_dds_res <- DESeq(df_dds)
suppressMessages(df_dds_res)
#提取分析结果
df_res <- results(df_dds_res)
# 根据p-value进行重新排序
df_res <- df_res[order(df_res$pvalue),]
df_res #查看结果
#简要统计结果
summary(df_res)
table(df_res$padj<0.05) #查看fdr校正后的P<0.05的个数
##去除空值
df<- as.data.frame(df_res[!is.na(df_res$padj),])
####求出Non-saline soil和Saline soil组之间每个OTU的平均表达值
df2 <- otu_table_16S %>%
mutate(
Non_saline_soil_mean = rowMeans(across(1:30), na.rm = TRUE),
Saline_soil_mean = rowMeans(across(31:90), na.rm = TRUE)
) %>%
mutate(
Non_saline_soil_mean_log2 = log2(Non_saline_soil_mean + 1),
Saline_soil_mean_log2 = log2(Saline_soil_mean + 1)
)
##合并数据
df$OTU <- rownames(df)
df2$OTU <- rownames(df2)
data <- merge(df, df2, by = "OTU")
###标记差异OTU并设定要显示的标签
data <- data %>%
mutate(
group = case_when(
log2FoldChange > 4 & padj < 0.05 ~ "Up",
log2FoldChange < -4 & padj < 0.05 ~ "Down",
TRUE ~ "NS"
),
label=case_when(
log2FoldChange > 8& padj < 0.001 ~ OTU,
log2FoldChange < -6 & padj < 0.001 ~ OTU,
TRUE ~ ""
)
)
3、绘图模板展示(模板部分注释源码及原始测试数据可在公众号后台查看具体获取方式):
####火山图绘制模板1
data %>%
ggplot(aes(Saline_soil_mean_log2, Non_saline_soil_mean_log2, fill = group)) +
geom_point(size = 3, color="black", shape=21, alpha = 0.6)+
scale_fill_manual(values = c('blue','grey','red'))+
theme_bw()+
theme(axis.text=element_text(color='#333c41',size=10),
legend.text = element_text(color='#333c41',size=10),
axis.title= element_text(size=12))+
labs(title="volcanoplot",
x = 'log2 Saline soil',
y = 'log2 Non-saline soil')
color <- colorRampPalette(brewer.pal(11,"BrBG"))(30)
grid.raster(alpha(color, 0.2),
width = unit(1, "npc"),
height = unit(1,"npc"),
interpolate = T)
最后在AI中进行细节调整可得到如下效果图:
当然,通过调节细节,也可以绘制这类图:
需要附带注释的源码及测试数据请查看下方绘图模板获取方式!!
PS: 以上内容是小编个人学习代码笔记分享,仅供参考学习,欢迎大家一起交流学习。
「R绘图模板」跟着New Phytologist学绘图—共发生网络图的绘制!!!!!!
「R绘图模板」并列箱线图+散点+气泡图+分组+显著性!!!
「R绘图模板」气泡图+非等宽分面+分组!!!
「R绘图模板」箱线图+散点+均值连线+显著性的箱上箱下标注!!!
「R绘图模板」环形多组火山图+标签!!!
「R绘图模板」组合图系列—相对丰度柱状堆积图+单组柱状图+显著性!!!
「R绘图模板」气泡图+分组+标签+拟合曲线!!!
「R绘图模板」多变量热图+r值+p值+其他变量!!!
「R绘图模板」用于两组比较的多图形并列组合图-小提琴图+箱线图+散点图!!!
「R绘图模板」跟着Science学绘图—世界地图+采样点标记气泡图+分布频率注释侧图!!!
「R绘图模板」基因注释+箭头图+分面+标签!!!
「R绘图模板」组合图系列-箱线图+散点+分组散点注释!!!
「R绘图模板」世界地图+采样点标记+柱状堆积图!!!
「R绘图模板」环形无分组排序柱状堆积图!!!
「R绘图模板」多y轴组合图-柱状堆积图+箱线图!!!
「R绘图模板」环形分组气泡图(重发版-修改标题)!!!
「R绘图模板」蝶形图系列-并列箱线图与并列柱状图组合!!!
「R绘图模板」mantel test分析拓展——多样式多形式展示数据!!!
「R绘图模板」多层嵌套柱状图+字母标记+标签嵌套!!!
「R绘图模板」3D热图的绘制!!!
「R绘图模板」进化树+分组注释+配对连线!!!
「R绘图模板」组合图-并列柱状图+数字标签+误差棒+占比饼图!!!
「R绘图模板」箱线图+显著性差异着色+分组差异检验!!!
「R绘图模板」柱状堆积图+柱间连线+文本标签+误差棒+字母标记!!!
「R绘图模板」环形分组散点图+误差棒+分组标签+灰白间隔背景+辅助线!!!
「R绘图模板」箱线图+散点+配对连线+显著性+分面!!!
「R绘图模板」组合图-进化树+柱状图+箱线图+热图!!!
「R绘图模板」内向环形柱状图+分组+分面!!!
「R绘图模板」层级网络图的绘制!!!
「R绘图模板」世界地图+采样点标记+分组条形图+柱状图嵌套!!!
「R绘图模板」多分组箱线图+不同组字母标记+条纹填充!!!
「R绘图模板」并列柱状图+不同组字母标记+组间显著性标记!!!
「R绘图模板」mantel test拓展—多图绘制与组合!!!
「R绘图模板」热图+分组+配对连线+统计差异!!!
「R绘图模板」跟着Food Chemistry学绘图——散点+误差棒+折线+字母标记!!!
「R绘图模板」环状箱线图+分组+显著性+均值标记!!!
「R绘图模板」环形水平条形图+柱状堆积图的绘制方法!!!!!!
「R绘图模板」嵌套柱状图+显著性+字母标记!!!
「R绘图模板」跟着Nature Communications学绘图—世界地图+采样点标记+饼图+柱状图!!!
「R绘图模板」跟着Nature Communications学绘图—并列柱状堆积图+误差线+显著性!!!
「R绘图模板」双层环形热图+不同方式显著性标注!!!
R绘图模板——成比例Venn图的绘制!!!
R绘图模板——网络图+微生物丰度与基因间的相关性+正负相关(粉丝投稿)!!!
R可视化——一文带你打通ggplot2个性化绘制柱状图(条形图)!!!
R可视化——一文带你打通ggplot2个性化绘制箱线图(更新版)!!!
R可视化——一文带你打通ggplot2个性化绘制散点图!!!