rm (list = ls ()) #清除所有变量
setwd("C:\\Users\\Administrator\\Desktop\\新建文件夹\\PCoA") #设置工作目录
# 加载必要的库
library(dplyr)
# 读取数据,假设您的文件名是 data.txt
# 请根据您的文件实际路径调整这里的文件名
data <- read.table("otu_table.txt", header = TRUE, sep = "\t", quote = "")
# 计算相对丰度
# 跳过第一列(物种名称),只对数值列进行计算
relative_abundance <- data %>%
mutate(across(-clade_name, ~ round(.x / sum(.x), 10)))
# 输出结果到新的TXT文件
write.table(relative_abundance, "relative_abundance.txt", sep = "\t", row.names = FALSE, quote = FALSE)
以下是详细解释:
-
rm(list = ls())
:- 这行代码用于清除R环境中的所有变量。
ls()
函数列出当前环境中的所有变量,而rm()
函数则删除这些变量。这通常在开始新的分析前做,以确保工作环境是干净的。
- 这行代码用于清除R环境中的所有变量。
-
setwd("C:\\Users\\Administrator\\Desktop\\新建文件夹\\PCoA")
:- 这行代码设置了R的工作目录。
setwd()
函数用于改变当前的工作目录,这里将工作目录设为了一个特定的路径。这意味着R会在这个目录下查找文件,并将所有输出文件保存到这个位置。
- 这行代码设置了R的工作目录。
-
library(dplyr)
:- 这行代码加载了
dplyr
包。dplyr
是一个用于数据操作的R包,提供了许多有用的函数来处理数据框(data frames)。
- 这行代码加载了
-
data <- read.table("otu_table.txt", header = TRUE, sep = "\t", quote = "")
:- 这行代码读取名为
otu_table.txt
的文件,将其作为一个数据框存储在变量data
中。 header = TRUE
表示文件的第一行包含列名。sep = "\t"
指定列之间的分隔符是制表符(tab),这是TXT文件中常见的格式。quote = ""
告诉函数不要将任何字符视为引号。
- 这行代码读取名为
-
相对丰度的计算:
- 这部分代码首先使用
mutate
和across
函数来修改数据框中的每一列(除了clade_name
列)。 ~ round(.x / sum(.x), 10)
是一个匿名函数,它将每个值除以其所在列的总和,然后将结果四舍五入到10位小数。这里.x
代表当前列的每个值。- 这个过程计算了每个物种在每个样本中的相对丰度。
- 这部分代码首先使用
-
write.table(relative_abundance, "relative_abundance.txt", sep = "\t", row.names = FALSE, quote = FALSE)
:- 这行代码将处理后的数据(相对丰度)写入一个新的TXT文件
relative_abundance.txt
。 sep = "\t"
指定使用制表符作为列之间的分隔符。row.names = FALSE
表示在输出文件中不包含行名。quote = FALSE
确保输出的文本不包含引号。
- 这行代码将处理后的数据(相对丰度)写入一个新的TXT文件