Я реализовал R-скрипт, который выполняет пакетную коррекцию набора данных генной экспрессии.Чтобы выполнить пакетную коррекцию, мне сначала нужно нормализовать данные в каждом файле CEL с помощью функции Affy rma () в Bioconductor.
Если я запускаю ее на наборе данных GSE59867 получено от GEO, все работает.Я определяю пакет как дату сбора данных: я помещаю все файлы CEL с одинаковой датой в определенную папку, а затем рассматриваю эту дату / папку как конкретный пакет.В наборе данных GSE59867 пакет / папка содержит только 1 файл CEL.Тем не менее, функция rma()
работает на нем отлично.
Но вместо этого, если я пытаюсь запустить свой скрипт на другом наборе данных ( GSE36809 ), у меня возникают некоторые проблемы: если я пытаюсьчтобы применить функцию rma()
к пакету / папке, содержащей только 1 файл, я получаю следующую ошибку:
Error in `colnames<-`(`*tmp*`, value = "GSM901376_c23583161.CEL.gz") :
attempt to set 'colnames' on an object with less than two dimensions
Вот мой конкретный код R, чтобы вы поняли.Сначала вы должны загрузить файл GSM901376_c23583161.CEL.gz :
setwd(".")
options(stringsAsFactors = FALSE)
fileURL <- "ftp://ftp.ncbi.nlm.nih.gov/geo/samples/GSM901nnn/GSM901376/suppl/GSM901376%5Fc23583161%2ECEL%2Egz"
fileDownloadCommand <- paste("wget ", fileURL, " ", sep="")
system(fileDownloadCommand)
Установка библиотеки:
source("https://bioconductor.org/biocLite.R")
list.of.packages <- c("easypackages")
new.packages <- list.of.packages[!(list.of.packages %in% installed.packages()[,"Package"])]
if(length(new.packages)) install.packages(new.packages)
listOfBiocPackages <- c("oligo", "affyio","BiocParallel")
bioCpackagesNotInstalled <- which( !listOfBiocPackages %in% rownames(installed.packages()) )
cat("package missing listOfBiocPackages[", bioCpackagesNotInstalled, "]: ", listOfBiocPackages[bioCpackagesNotInstalled], "\n", sep="")
if( length(bioCpackagesNotInstalled) ) {
biocLite(listOfBiocPackages[bioCpackagesNotInstalled])
}
library("easypackages")
libraries(list.of.packages)
libraries(listOfBiocPackages)
Применение rma ()
thisFileDate <- "GSM901376_c23583161.CEL.gz"
thisDateRawData <- read.celfiles(thisDateCelFiles)
thisDateNormData <- rma(thisDateRawData)
После звонка на rma()
я получаю ошибку.Как я могу решить эту проблему?
Я также попытался пропустить эту нормализацию, сохранив объект thisDateRawData
напрямую.Но тогда у меня проблема в том, что я не могу объединить это thisDateRawData
(то есть ExpressionFeatureSet
) с выходными данными rma () (которые являются ExpressionSet
объектами).
( EDIT: Я тщательно отредактировал вопрос и добавил фрагмент кода R, который вы сможете запустить на своем компьютере.)