0

我使用从https://www.ncbi.nlm.nih.gov/geo/query/acc.cgi?acc=GSE1824下载的基因表达数据集“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)

我成功加载并解压缩了 GSE1824_RAW.tar 中的 CEL 文件,并将 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.

先感谢您。

4

2 回答 2

4

我重复了你的步骤,它们确实对我有用。我得到:

> 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      

或者您可以尝试使用 Bioconductor 3.7 版——这是适合我的版本,希望这些库将它们的接口保留在单个 Bioconductor 版本中。

于 2018-06-27T14:04:54.873 回答
1

另一种解释可能是dplyr包中的exprs函数掩盖了 Biobase 包中的exprs函数因为这两个函数在两个包中具有相同的名称。

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) 。

于 2018-06-27T14:11:34.373 回答