首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Phyloseq中以制表符分隔的.txt映射文件中保留前导零

在Phyloseq中以制表符分隔的.txt映射文件中保留前导零
EN

Stack Overflow用户
提问于 2017-06-17 17:01:43
回答 1查看 298关注 0票数 0

我正在使用phyloseq包在R中进行微生物组数据分析。分析的第一步是导入两个文件,一个是.BIOM文件(分类信息),另一个是元数据文件(制表符分隔的.txt)。

这两个文件都包含147个样本,列在第一列(#SampleID),例如- 001,002,003…….010,011,…….147

我可以通过以下命令成功导入BIOM文件-

代码语言:javascript
复制
biom_file = "otu_table.biom"
biomot = import_biom(biom_file, parseFunction = parse_taxonomy_greengenes)

但当我尝试使用此公式导入元数据.txt文件时,

代码语言:javascript
复制
map_file = "map2.txt"
bmsd = import_qiime_sample_data(map_file)

它从#SampleID列的示例名称中删除所有前导零。因此,我无法在后续的分析步骤中合并这两个文件。有没有人能帮帮我,我怎样才能将那些样本名称中的前导零保留在#SampleID列中。

谢谢你的帮助。

.txt输入文件中的数据结构

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-17 18:25:41

import_qiime_sample_dat定义为:

代码语言:javascript
复制
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,它会自动将包含数字的列转换为整数/数字,从而删除前导零。

为了避免这种情况,您可以指定要在txt -> data.frame转换中使用的所需列类,但不幸的是import_qiime_sample_dat不允许这样做。

因此,您应该手动导入文件:

代码语言:javascript
复制
tmpDF <- read.table(file = mapfilename, header = TRUE, sep = "\t",
                    comment.char = "", colClasses = 'character')
row.names(tmpDF) <- as.character(tmpDF[[1]])
bmsd <- sample_data(tmpDF)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44602685

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档