Я получаю эту ошибку в log2 (exprs (eSet)): не числовой аргумент математической функции - PullRequest
0 голосов
/ 27 июня 2018

Я работаю с набором данных по экспрессии генов "GSE1824", загруженным с https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE1824. Чтобы начать обработку этих данных, я загрузил необходимые пакеты в R studio:

# load libraries
library(affy) 
library(limma)
library(genefilter)
library(hgu133a.db) 
library(GEOquery)  
library(huex10stprobeset.db)
library(pd.huex.1.0.st.v2) 
library(Biobase)

Я успешно загрузил и распаковал файлы CEL в GSE1824_RAW.tar и сохранил файлы CEL в каталоге, который я назову «GEMusicAR3 / Cel Files». Каталог содержит только следующие файлы CEL:

GSM31867_SKNMC.CEL
GSM31868_SiMa.CEL
GSM31869_CHP126.CEL
GSM31870_SHSY5Y.CEL

Я установил каталог хоста с помощью:

> getwd()
 "C:/Users/xxx/Documents"

> HostDir <- getwd()

Для обработки файлов CEL я выполнил следующие команды:

setwd(HostDir)  

setwd(paste0("GEMusicAR3/Cel Files",dataset,sep="")) # directory of CEL files

>abatch<-ReadAffy()

>eSet<-mas5(abatch)

background correction: mas 
PM/MM correction : mas 
expression values: mas 
background correcting...done.
22283 ids to be processed
|                    |
|####################|

> log2(exprs(eSet))
Error in log2(exprs(eSet)) : 
  non-numeric argument to mathematical function

Я не могу выяснить причину ошибки в:

Error in log2(exprs(eSet)) : 
      non-numeric argument to mathematical function

Этот код до недавнего времени работал без ошибок.

При попытке обнаружить возможную причину ошибки я получил следующую информацию:

> eSet
ExpressionSet (storageMode: lockedEnvironment)
assayData: 22283 features, 4 samples 
  element names: exprs, se.exprs 
protocolData
  sampleNames: GSM31867_SKNMC.CEL GSM31868_SiMa.CEL GSM31869_CHP126.CEL GSM31870_SHSY5Y.CEL
  varLabels: ScanDate
  varMetadata: labelDescription
phenoData
  sampleNames: GSM31867_SKNMC.CEL GSM31868_SiMa.CEL GSM31869_CHP126.CEL GSM31870_SHSY5Y.CEL
  varLabels: sample
  varMetadata: labelDescription
featureData: none
experimentData: use 'experimentData(object)'
Annotation: hgu133a 

> exprs(eSet)
[[1]]
eSet

> class(eSet)
[1] "ExpressionSet"
attr(,"package")
[1] "Biobase"

> str(exprs(eSet))
List of 1
 $ : symbol eSet

Буду очень признателен за любую подсказку о возможной причине ошибки:

Error in log2(exprs(eSet)) : 
      non-numeric argument to mathematical function.

Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Другим объяснением может быть то, что функция exprs в пакете dplyr маскирует функцию exprs в пакете Biobase , так как оба функции имеют одинаковое имя в обоих пакетах.

https://support.bioconductor.org/p/109128/#109719

Я решил проблему, поместив *exprs=Biobase::exprs* вверху моего скрипта.

# load libraries
exprs=Biobase::exprs
library(affy) 
library(limma)
library(genefilter)
library(hgu133a.db) 
library(GEOquery)  
library(huex10stprobeset.db)
library(pd.huex.1.0.st.v2) 
library(Biobase)

setwd(HostDir)  
setwd(paste0("GEMusicAR3/Cel Files",Datset,sep=""))
abatch<-ReadAffy() 
eSet<-mas5(abatch)  
SI<-log2(exprs(eSet))

> head(SI)
          GSM31867_SKNMC.CEL GSM31868_SiMa.CEL GSM31869_CHP126.CEL GSM31870_SHSY5Y.CEL
1007_s_at           9.582691          9.538568            9.386841           10.030941
1053_at             9.773821          9.518747            8.653242            9.086055
117_at              6.823635          6.178206            5.297840            5.884189
121_at              9.921338          9.864903            9.660145            9.400098
1255_g_at           3.588186          7.268338            4.861870            8.804611
1294_at             7.232461          6.687944            6.721579            7.630187

Я признаю, что у меня на компьютере установлен пакет dplyr , но я не загрузил его в рабочее пространство, так почему он мешает? В моем скрипте нет библиотеки (dplyr) .

0 голосов
/ 27 июня 2018

Я повторил твои шаги, и они работают на меня. Я получаю:

> head(log2(exprs(eSet)))
          GSM31867_SKNMC.CEL.gz GSM31868_SiMa.CEL.gz GSM31869_CHP126.CEL.gz GSM31870_SHSY5Y.CEL.gz
1007_s_at              9.582691             9.538568               9.386841              10.030941
1053_at                9.773821             9.518747               8.653242               9.086055
117_at                 6.823635             6.178206               5.297840               5.884189
121_at                 9.921338             9.864903               9.660145               9.400098
1255_g_at              3.588186             7.268338               4.861870               8.804611
1294_at                7.232461             6.687944               6.721579               7.630187

Вы также говорите, что раньше это работало для вас, так что это похоже на проблему с версионностью библиотеки. Пожалуйста, обновите ваш вопрос с выводом sessionInfo() после загрузки всех пакетов, которые вы используете. Вот мой:

R version 3.5.0 (2018-04-23)
Platform: x86_64-redhat-linux-gnu (64-bit)
Running under: Fedora 28 (Workstation Edition)

Matrix products: default
BLAS/LAPACK: /usr/lib64/R/lib/libRblas.so

locale:
 [1] LC_CTYPE=ru_RU.UTF-8       LC_NUMERIC=C               LC_TIME=en_DK.UTF-8        LC_COLLATE=ru_RU.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] parallel  stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] hgu133acdf_2.18.0   affy_1.58.0         Biobase_2.40.0      BiocGenerics_0.26.0 genefilter_1.62.0  
[6] limma_3.36.2       

loaded via a namespace (and not attached):
 [1] Rcpp_0.12.17          AnnotationDbi_1.42.1  zlibbioc_1.26.0       splines_3.5.0        
 [5] IRanges_2.14.10       bit_1.1-14            lattice_0.20-35       xtable_1.8-2         
 [9] blob_1.1.1            tools_3.5.0           grid_3.5.0            DBI_1.0.0            
[13] yaml_2.1.19           survival_2.41-3       bit64_0.9-7           digest_0.6.15        
[17] preprocessCore_1.42.0 affyio_1.50.0         Matrix_1.2-14         S4Vectors_0.18.2     
[21] bitops_1.0-6          RCurl_1.95-4.10       memoise_1.1.0         RSQLite_2.1.1        
[25] BiocInstaller_1.30.0  compiler_3.5.0        stats4_3.5.0          XML_3.98-1.11        
[29] annotate_1.58.0      

Или вы можете просто попробовать использовать версию 3.7 Bioconductor - это версия, которая мне подходит, и, надеюсь, библиотеки сохранят свои интерфейсы в одном выпуске Bioconductor.

...