我使用从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.
谢谢。
答案 0 :(得分: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发行版中。
答案 1 :(得分: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软件包,但是我没有将其加载到工作区中,所以为什么会产生干扰?我的脚本上没有 library(dplyr)。