在 Phyloseq 的制表符分隔的 .txt 映射文件中保留前导零
Keeping leading zeros in tab delimited .txt mapping file in Phyloseq
我正在使用 phyloseq 包在 R 中进行微生物组数据分析。此分析的第一步是导入两个文件,一个是 .BIOM 文件(分类信息),另一个是元数据文件(制表符分隔的 .txt)。
两个文件都包含147个样本,列在第一列(#SampleID),例如- 001, 002, 003…….010, 011, …….147
我可以通过以下命令成功导入BIOM文件 –
biom_file = "otu_table.biom"
biomot = import_biom(biom_file, parseFunction = parse_taxonomy_greengenes)
但是当我尝试使用此公式导入 metada .txt 文件时,
map_file = "map2.txt"
bmsd = import_qiime_sample_data(map_file)
它从#SampleID 列的样本名称中删除所有前导零。因此,我无法在后续的分析步骤中合并这两个文件。
有人可以帮助我吗,我怎样才能在#SampleID 列的样本名称中保留前导零。
感谢您的帮助。
.txt 输入文件中的数据结构
import_qiime_sample_dat
定义为:
import_qiime_sample_dat <- function (mapfilename)
{
QiimeMap <- read.table(file = mapfilename, header = TRUE,
sep = "\t", comment.char = "")
rownames(QiimeMap) <- as.character(QiimeMap[, 1])
return(sample_data(QiimeMap))
}
如您所见,使用 read.table,它会自动将包含数字的列转换为 integers/numerics,从而删除前导零。
为避免这种情况,您可以指定要在 txt -> data.frame
转换中使用的所需列 类,但遗憾的是 import_qiime_sample_dat
不允许这样做。
因此您应该手动导入文件:
tmpDF <- read.table(file = mapfilename, header = TRUE, sep = "\t",
comment.char = "", colClasses = 'character')
row.names(tmpDF) <- as.character(tmpDF[[1]])
bmsd <- sample_data(tmpDF)
我正在使用 phyloseq 包在 R 中进行微生物组数据分析。此分析的第一步是导入两个文件,一个是 .BIOM 文件(分类信息),另一个是元数据文件(制表符分隔的 .txt)。
两个文件都包含147个样本,列在第一列(#SampleID),例如- 001, 002, 003…….010, 011, …….147
我可以通过以下命令成功导入BIOM文件 –
biom_file = "otu_table.biom"
biomot = import_biom(biom_file, parseFunction = parse_taxonomy_greengenes)
但是当我尝试使用此公式导入 metada .txt 文件时,
map_file = "map2.txt"
bmsd = import_qiime_sample_data(map_file)
它从#SampleID 列的样本名称中删除所有前导零。因此,我无法在后续的分析步骤中合并这两个文件。 有人可以帮助我吗,我怎样才能在#SampleID 列的样本名称中保留前导零。
感谢您的帮助。
.txt 输入文件中的数据结构
import_qiime_sample_dat
定义为:
import_qiime_sample_dat <- function (mapfilename)
{
QiimeMap <- read.table(file = mapfilename, header = TRUE,
sep = "\t", comment.char = "")
rownames(QiimeMap) <- as.character(QiimeMap[, 1])
return(sample_data(QiimeMap))
}
如您所见,使用 read.table,它会自动将包含数字的列转换为 integers/numerics,从而删除前导零。
为避免这种情况,您可以指定要在 txt -> data.frame
转换中使用的所需列 类,但遗憾的是 import_qiime_sample_dat
不允许这样做。
因此您应该手动导入文件:
tmpDF <- read.table(file = mapfilename, header = TRUE, sep = "\t",
comment.char = "", colClasses = 'character')
row.names(tmpDF) <- as.character(tmpDF[[1]])
bmsd <- sample_data(tmpDF)