R - XCMS包错误

时间:2012-11-01 21:13:36

标签: r bioconductor

我遇到以下问题:

.C中的错误(“NetCDFOpen”,as.character(filename),ncid = integer(1),status = integer(1),:   C符号名称“NetCDFOpen”不在DLL中,用于包“xcms”

你是如何得到这个错误的:

nc     <- xcms:::netCDFOpen(cdfFile)
ncData <- xcms:::netCDFRawData(nc)
xcms:::netCDFClose(nc)

我不知道为什么这不起作用,尽管它应该。欲了解更多信息,请随时询问。可以在 TargetSearchData 包中找到免费的.cdf文件。

代码示例:

## The directory with the NetCDF GC-MS files
cdfpath <- file.path(.find.package("TargetSearchData"), "gc-ms-data")
cdfpath

1 个答案:

答案 0 :(得分:3)

我不认为应该,正如你暗示的那样。首先,您通过:::使用非导出功能。此外,如错误消息所述,未定义的NetCDFOpen符号是dll / so个文件。

使用xcms的标准输入功能,工作顺利:

> library("xcms")
> cdfpath <- file.path(.find.package("TargetSearchData"), "gc-ms-data")
> cdfFile <- dir(cdfpath, full.names=TRUE)[1]
> xs <- xcmsSet(cdfFile)
7235eg04: 135:168 185:314 235:444 285:580 
> xr <- xcmsRaw(cdfFile)

如果您确实想手动输入数据,则应使用mzR包依赖的xcms包中的功能:

> openMSfile(cdfFile)
Mass Spectrometry file handle.
Filename:  /home/lgatto/R/x86_64-unknown-linux-gnu-library/2.16/TargetSearchData/gc-ms-data/7235eg04.cdf 
Number of scans:  4400 

最后,请注意始终提供sessionInfo的输出,以确保您使用的是最新版本。就我而言:

> sessionInfo()
R Under development (unstable) (2012-10-23 r61007)
Platform: x86_64-unknown-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_GB.UTF-8       LC_NUMERIC=C              
 [3] LC_TIME=en_GB.UTF-8        LC_COLLATE=en_GB.UTF-8    
 [5] LC_MONETARY=en_GB.UTF-8    LC_MESSAGES=en_GB.UTF-8   
 [7] LC_PAPER=C                 LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C            
[11] LC_MEASUREMENT=en_GB.UTF-8 LC_IDENTIFICATION=C       

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

other attached packages:
[1] BiocInstaller_1.9.4 xcms_1.35.1         mzR_1.5.1          
[4] Rcpp_0.9.15        

loaded via a namespace (and not attached):
[1] Biobase_2.19.0     BiocGenerics_0.5.1 codetools_0.2-8    parallel_2.16.0   
[5] tools_2.16.0      

虽然如果您使用R和Bioconductor的稳定版本(目前为2.15.2 / 2.11)可能会有所不同。

希望这有帮助。