首页 > 其他分享 >R:microtable包线性判别分析LEfSe

R:microtable包线性判别分析LEfSe

时间:2024-06-12 11:23:51浏览次数:10  
标签:microtable 样本 判别分析 library dataset sample LEfSe

rm(list = ls())
setwd("C:\\Users\\Administrator\\Desktop\\New_microtable") #设置工作目录
library(microeco)
library(magrittr)
library(dplyr)
library(tibble)

feature_table <- read.table('Bac_species.txt', header = TRUE, row.names = 1, sep = "\t", fill = TRUE) #特征表
# 检查并处理缺失值
if (any(is.na(feature_table))) {
  feature_table[is.na(feature_table)] <- 0  # 将缺失值填充为零
}
sample_table <- read.table('sample_table.txt', header = TRUE, row.names = 1, sep = "\t") #样本表
tax_table <- read.table('tax_table_s.txt', header = TRUE, row.names = 1, sep = "\t", fill = TRUE) #分类表

dataset <- microtable$new(sample_table = sample_table,
                          otu_table = feature_table, 
                          tax_table = tax_table)

dataset$tidy_dataset() #整理和预处理数据集
#数据清洗:移除或填补缺失值、异常值等。
#数据标准化:确保数据符合一定的格式,比如统一的数据类型。
#数据整合:如果有多个表格,确保它们之间的链接正确无误。

dataset$sample_sums() %>% range #计算并查看样本总数的范围

dataset$rarefy_samples(sample.size = 1000000) #执行重采样,标准化样本中的测序深度

dataset$sample_sums() %>% range #计算并查看标准化后样本总数的范围

dataset$cal_abund() #计算每个分类等级的分类群丰度

t1 <- trans_diff$new(dataset = dataset, method = "lefse", group = "Group", taxa_level = "Species", alpha = 0.01, lefse_subgroup = NULL)

write.table(t1$res_diff, file = "res_lefse.txt", sep = "\t", quote = FALSE, row.names = TRUE, col.names = TRUE)

library(ggplot2)
library(gridExtra)

# 定义分组的颜色
group_colors <- c("B73" = "#8FC9E2", "Mo17" = "#ECC97F")  # 可以根据需要选择颜色

# 生成条形图并设置填充色和边框色
g1 <- t1$plot_diff_bar(threshold = 2.5, width = 0.8, group_order = c("B73", "Mo17")) +
  scale_fill_manual(values = group_colors) +  # 设置条形填充颜色
  scale_color_manual(values = group_colors) +  # 设置条形边框颜色
  theme(legend.position = "none",axis.text.x = element_text(size = 12, face = "bold")
        ,text = element_text(family = "Times New Roman"))

# 生成丰度图并设置填充色和边框色
g2 <- t1$plot_diff_abund(threshold = 2.5, group_order = c("B73", "Mo17"), select_taxa = t1$plot_diff_bar_taxa) +
  scale_fill_manual(values = group_colors) +  # 设置丰度图填充颜色
  scale_color_manual(values = group_colors) +  # 设置丰度图边框颜色
  theme(axis.text.y = element_blank(), axis.ticks.y = element_blank(),axis.text.x = element_text(size = 12, face = "bold")
        ,text = element_text(family = "Times New Roman"))

# 生成并排显示的图形对象
combined_plot <- gridExtra::grid.arrange(g1, g2, ncol = 2, nrow = 1, widths = c(2, 1.7))
# 保存图形为 PNG 格式
ggsave("Species_LEfSe.png", plot = combined_plot, width = 10, height = 6, dpi = 800)

 

标签:microtable,样本,判别分析,library,dataset,sample,LEfSe
From: https://www.cnblogs.com/wzbzk/p/18243565

相关文章

  • R:microtable包计算相对丰度堆叠柱状图
    rm(list=ls())setwd("C:\\Users\\Administrator\\Desktop\\New_microtable")#设置工作目录library(microeco)library(magrittr)library(dplyr)library(tibble)feature_table<-read.table('Bac_genus.txt',header=TRUE,row.names=1......
  • R语言线性判别分析(LDA),二次判别分析(QDA)和正则判别分析(RDA)
    原文链接:http://tecdat.cn/?p=5689原文出处:拓端数据部落公众号  判别分析包括可用于分类和降维的方法。线性判别分析(LDA)特别受欢迎,因为它既是分类器又是降维技术。二次判别分析(QDA)是LDA的变体,允许数据的非线性分离。最后,正则化判别分析(RDA)是LDA和QDA之间的折衷。本文主要关......
  • R:microtable包alpha多样性计算及箱线图绘图
    rm(list=ls())setwd("C:\\Users\\Administrator\\Desktop\\microtable")#设置工作目录library(microeco)library(magrittr)feature_table<-read.table('feature_table_g.txt',header=TRUE,row.names=1,sep="\t")#特征表......
  • R:microtable数据准备
    rm(list=ls())setwd("C:\\Users\\Administrator\\Desktop\\microtable")#设置工作目录library(microeco)library(magrittr)feature_table<-read.table('feature_table_g.txt',header=TRUE,row.names=1,sep="\t")#特征表......
  • Python实现线性判别分析鸢尾花数据集或随机生成两个线性可分的数据集
    线性判别分析是一种经典的线性学习方法,在二分类问题上最早由Fisher在1936年提出,亦称Fisher线性判别。线性判别的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近,异类样例的投影点尽可能远离;在对新样本进行分类时,将其投影到同样的直线上,再根据......
  • 机器学习-无监督机器学习-LDA线性判别分析-25
    目录1.LinearDiscriminantAnalysis线性判别分析1.LinearDiscriminantAnalysis线性判别分析经常被用于分类问题的降维技术,相比于PCA,LDA可以作为一种有监督的降维算法,降维的时候用到了y的真实值,有监督的降维。在PCA中,算法没有考虑数据的标签(类别),只是把原数据映射到一些方......
  • R:LEfSe(线性判别分析)
    rm(list=ls())#清空工作环境setwd("C:\\Users\\Administrator\\Desktop\\LDA")#设置工作目录library(tidyverse)#包含了一系列与数据分析和可视化相关的包library(microeco)#生态学分析的包library(magrittr)#提供了用于简化代码的管道操作符%>%feature_table<-read......
  • 数据分享|R语言逻辑回归、线性判别分析LDA、GAM、MARS、KNN、QDA、决策树、随机森林、
    全文链接:http://tecdat.cn/?p=27384最近我们被客户要求撰写关于葡萄酒的研究报告,包括一些图形和统计输出。在本文中,数据包含有关葡萄牙“VinhoVerde”葡萄酒的信息介绍该数据集(查看文末了解数据获取方式)有1599个观测值和12个变量,分别是固定酸度、挥发性酸度、柠檬酸、残糖、......
  • 机器学习算法原理实现——线性判别分析LDA
    介绍线性判别分析(LinearDiscriminantAnalysis,LDA)是一种有监督式的数据降维方法,是在机器学习和数据挖掘中一种广泛使用的经典算法。LDA的希望将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,按类别区分成一簇一簇的情况,并且相同类别的点,将会在投影后的......
  • R语言分析糖尿病数据:多元线性模型、MANOVA、决策树、典型判别分析、HE图、Box's M检验
    全文链接:https://tecdat.cn/?p=33609原文出处:拓端数据部落公众号背景Reaven和Miller(1979)研究了145名非肥胖成年人的葡萄糖耐量和胰岛素血液化学指标之间的关系。他们使用斯坦福线性加速器中心的PRIM9系统将数据可视化为3D,并发现了一个奇特的图案,看起来像是一个有两个翼的大斑点......