как применить одно и то же преобразование ко всем файлам в папке - PullRequest
1 голос
/ 24 октября 2019

Я новичок в RI, у меня есть 1200 файлов экспрессии генов только с двумя столбцами: имя гена и значение экспрессии гена. Я хочу отфильтровать 63 из этих генов и сгенерировать файл гена, содержащий только значения экспрессии гена для этих генов, так что в конечном итоге я могуно эти значения 63 значения для каждых 1200 образцов все вместе в одной базе данных

У меня есть индексный файл с идентификаторами и номером строки генов, которые я хотел бы извлечь по существу:

row . Gene . Id 
132 . ESM1 . ENSG00000164283
689 . RASS . ENSG00000066697
...   ....   ...............
...   ....   ...............

и так далее вплоть до 63. Файлы экспрессии гена - это всего два столбца с идентификатором гена и значением экспрессии гена, вдоль 63000 строк, примерно так:

ENSG00000164283 . 3234.345
ENSG00000066697 . 255.346
ENSG00000046895 . 4587.322
...............   ........
...............   ........

и так далее. Я могу извлечь эти строки в новую переменную путем подстановки файла выражения гена с помощью индексного файла

index.table<-read.table("path to file")
index<-index.table[,1]

sample.1<-read.table("path to file")
S1<-sample.1[index,2]

sample.2<-read.table("path to file")
S2<-sample.2[index,2]

sample.3<-read.table("path to file")
S3<-sample.3[index,2]

, который даст мне необходимые подмножества, которые я затем смогу связать столбцами в один файл длявсе значения генной экспрессии для всех образцов

gene.DB<-cbind(S1,S2,S3,S4.....S1200) 

однако это очень непрактично для 1200 отдельных файлов. Как я могу зациклить эту функцию для запуска всех файлов в данном каталоге? Я прошу прощения, если это очень простой вопрос, но я просто могу знать, как это сделать. Любая помощь будет принята с благодарностью. Заранее спасибо.

Андрес

1 Ответ

0 голосов
/ 24 октября 2019

Рассмотрим базовые R sapply для построения матрицы значений генной экспрессии после построения именованного списка файлов (при условии, что все 1200 находятся в одном каталоге):

index_table <- read.table("path to file")
index <- index_table[,1]

gene_files <- list.files("path to all gene file")
names(gene_files) <- paste0("S", seq_along(gene_files))

samples <- sapply(gene_files, function(f) read.table(f)[index,2])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...