首页 > 其他分享 >R:LEfSe(线性判别分析)

R:LEfSe(线性判别分析)

时间:2023-11-30 16:55:39浏览次数:271  
标签:LDA 判别分析 library LEfSe table 线性 lefse 2.5

rm(list=ls()) #清空工作环境
setwd("C:\\Users\\Administrator\\Desktop\\LDA") #设置工作目录
library(tidyverse) #包含了一系列与数据分析和可视化相关的包
library(microeco) #生态学分析的包
library(magrittr) #提供了用于简化代码的管道操作符 %>%

feature_table <- read.table('feature_table.txt', header = TRUE, row.names = 1)
sample_table <- read.table('sample_table.txt', header = TRUE, row.names = 1)
tax_table <- read.table('tax_table.txt', header = TRUE, row.names = 1)
#head(feature_table)[1:6,1:6]
#head(sample_table)[1:6, ]
#head(tax_table)[,1:6]

dataset <- microtable$new(sample_table = sample_table,
                          otu_table = feature_table, 
                          tax_table = tax_table)
#用于创建 microtable 对象。这个对象用于存储微生物组数据,通常包括样本表(sample_table)、OTU(操作性分类单元)表(feature_table)、和分类信息表(tax_table)。
dataset
#用于执行差异丰度分析(Differential Abundance Analysis)
lefse <- trans_diff$new(dataset = dataset,  #用于执行差异丰度分析,其中包含了不同组间的比较
                        method = "lefse", #选择差异丰度分析的方法为 LEfSe(LDA Effect Size)
                        group = "Group",  #指定了用于分组的变量
                        alpha = 0.01, # 是显著性水平,用于确定哪些差异是显著的
                        lefse_subgroup = "Subgroup", #指定子组别的变量名,NULL表示在 LEfSe 中不使用子组别。
                        taxa_level = "Genus", #分析的分类水平
                        #nresam = 0.9, #抽取原始样本的比例
                        lefse_min_subsam = 8
                        ) 
# 查看分析结果
head(lefse$res_diff[lefse$res_diff$LDA > 2.5, ])

# 将分析结果保存为TXT文件
write.table(lefse$res_diff[lefse$res_diff$LDA > 2.5, ], file = "lefse_result.txt", sep = "\t", quote = FALSE, row.names = TRUE)

# 找出LDA大于3的结果的索引
index <- which(lefse$res_diff$LDA > 2.5)
# 定义一个颜色映射
color_map <- c("B73" = "#00BFFF", "Mo17" = "#FF4500")
# 在你的图形代码中使用这个颜色映射
plot <- lefse$plot_diff_bar(use_number = index, 
                            width = 0.8, 
                            group_order = c("B73", "Mo17"))

plot <- plot + scale_color_manual(values = color_map) #颜色映射
plot <- plot + scale_fill_manual(values = color_map)
# 添加标题,并调整位置
plot <- plot + ggtitle("Biomarker (Genus)") +
  theme(plot.title = element_text(hjust = 0,vjust = 0, size = 23))
#横坐标的标题内容
plot <- plot + ylab("LDA SCORE")
plot <- plot + theme(axis.title.x = element_text(hjust = 0.46, vjust = -1))
#y轴刻度标签的字体大小
plot <- plot + theme(axis.text.y = element_text(size = 14))
# 调整图例的位置、大小、外观
plot <- plot + theme(text = element_text(size = 18, color = "darkblue")) ## 改变字体大小和颜色
# 使用legend.justification和legend.direction可以更灵活地定义图例的位置
plot <- plot + theme(legend.position = c(0.7, 1.07), 
                     legend.justification = c(0.7, 1.07), 
                     legend.direction = "horizontal", 
                     legend.text = element_text(size = 18), 
                     legend.key.size = unit(0.9, "cm"))
# 添加注释
#plot <- plot + annotate("text", x = 1, y = 1, label = "Your annotation here")
# 添加一个框把整个图框起来,可以自定义框的颜色和线宽
#plot <- plot + theme(plot.background = element_rect(color = "black", size = 1))
# 调整图形边缘与内容之间的距离 上、右、下、左
plot <- plot + theme(plot.margin = margin(2, 1, 1, 1, "cm"))
#使用的字体是新罗马
plot <- plot + theme(text = element_text(family = "Times New Roman"))
# 打印图形
print(plot)

# 保存图形为PNG格式,可以自定义大小、分辨率等
ggsave(filename = "your_plot2.png", plot = plot, width = 10, height = 10, dpi = 600)

 

标签:LDA,判别分析,library,LEfSe,table,线性,lefse,2.5
From: https://www.cnblogs.com/wzbzk/p/17867768.html

相关文章

  • 线性基学习笔记
    我废话怎么这么多wwwwwwwwwww\(\color{white}地址\)rebuild思想就是使满足线性基的条件下,使每一个二进制位只在一个位置上为1。可以用高斯消元直接处理出,也可以处理出任意一组线性基后从后往前扫一遍,如果\(a_i\)第\(j\)位上为\(1\),则\(a_i\oplusa_j\toa_i\)。此时如果......
  • 再探欧式筛——一种泛用性更强的欧拉筛法/线性筛法实现
    一、引言欧式筛/欧拉筛法/线性筛法(EulerSieve)是一种能够在\(O(n)\)时间复杂度内,处理\([1,n]\)内质数的方法。其相比埃氏筛/埃拉托斯特尼筛法(EratosthenesSieve)的\(O(n\log\logn)\)时间复杂度,主要的优化在于欧式筛保证了所有正整数\(n\)均只被其最小质因数\({minp}_n......
  • 线性规划——Pyhton线性规划求解库PULP的使用
    PuLP是一个用于线性规划(LP)、整数线性规划(ILP)和混合整数线性规划(MILP)问题的Python库。PuLP的全称是"PythonforMathematicalProgramming",它提供了一个简单而强大的工具,使得用户能够定义优化问题、构建数学模型并使用不同的求解器进行求解。PuLP的主要特点之一是其易用性。它允许......
  • PC4084高耐压输入压差线性稳压器替代ME4084
    PC4084特性内置支持高压输入电流可调节的线性充电器:■最大输入24V电压,可承受高达28V的浪涌电压■恒流下最大充电电流可达500mA,支持外部电阻实时配置充电电流■兼容5VUSB功率源和AC适配器,并提供热插拔保护■支持4.2V/4.25V/4.3V/4.35V锂电池类型■预设4.2V±1%充......
  • PC1138低功耗低压差线性稳压器低纹波高效率保护性强
    ■产品概述PC1138系列是使用CMOS技术开发的高速、低压差,高精度输出电压,低消耗电流正电压型电压稳压器。由于内置有低通态电阻晶体管,因而压差低,能够获得较大的输出电流。为了使负载电流不超过输出晶体管的电流容量,内置了过载电流保护电路、短路保护电路。■用途移动电话无绳......
  • 线性代数的艺术
    推荐一本日本网友KenjiHiranabe写的《线性代数的艺术》。这本书是基于MIT大牛GilbertStrang教授的《每个人的线性代数》制作的。虽然《线性代数的艺术》这本书仅仅只有12页的内容,就把线性代数的重点全画完了,清晰明了。《线性代数的艺术》PDF版本:https://pan.quark.cn/s/a17b0......
  • 线性筛
    voidget_primes(intn){for(inti=2;i<=n;i++){if(!st[i])primes[cnt++]=i;for(intj=0;primes[j]<=n/i;j++){st[primes[j]*i]=true;if(i%primes[j]==0)break;}}}......
  • 11.16线性表A,B顺序存储合并
     #include<iostream>#include<cstring>usingnamespacestd;typedefstructf{intdata;f*next;}node,*Node;voidbuild(f*p){intx;while(cin>>x&&x!=-1){f*now=newnode();now->data=x;......
  • 利用SPSS做多元线性回归
    这里做的是RH(土壤相对湿度)和PA、SPI、MI、MCI之间的关系:   结果: 看下R方,0.221,说明预测变量PA、SPI、MI、MCI能够解释因变量RH22.1%,证明RH的波动只有22.1%是由于PA、SPI、MI、MCI造成的,一般统计学要求30%以上是可以接受的。实际数据达到10%就算好的了,一般10%可以接受......
  • 初级线性表
    初级线性表vectorv.resize(n,m)重新调整数组大小为\(n\),如果比原来的小,就删除多余信息。如果比原来的大,就把新增的部分初始化为\(m\),其中\(m\)可以省略。vector<int>a(n+1)初始化。P3613[深基15.例2]寄包柜#include<iostream>#include<algorithm>#include<......