Сохранение начальных нулей в файле сопоставления.txt с разделителями табуляции в Phyloseq

Я делаю анализ данных микробиома в R, используя пакет phyloseq. Первым шагом этого анализа является импорт двух файлов, один из которых представляет собой файл.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)

Но когда я пытаюсь импортировать файл метаданных.txt с помощью этой формулы,

map_file = "map2.txt"
bmsd = import_qiime_sample_data(map_file)

Он удаляет все начальные нули из имен образцов в столбце #SampleID. Поэтому я не могу объединить эти два файла на последующих этапах анализа. Может кто-нибудь, пожалуйста, помогите мне, как я могу сохранить эти первые ноль в имени образца в столбце #SampleID.

Спасибо за помощь.

Структура данных во входном файле.txtструктура данных во входном файле.txt

1 ответ

Решение

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, который автоматически преобразует столбцы, содержащие числа, в целые / числовые значения, тем самым удаляя начальные нули.

Чтобы избежать этого, вы можете указать нужные классы столбцов, которые будут использоваться в 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)
Другие вопросы по тегам