2012-08-27 41 views
2

我使用以下CDF文件为Brachypodium dystachion的Affymetrix芯片。显然,它遵循的Affymetrix CDF specificationAffymetrix自定义CDF分段错误

http://giorgilab.org/BradiGiorgiMutwil001_txt.cdf

所有的规则然而,当我尝试创建一个customcdf环境出来,用R和Bioconductor的包makecdfenv

library(makecdfenv) make.cdf.package("BradiGiorgiMutwil001_txt.cdf",species="Brachypodium_dystachion")

我得到以下错误:

Reading CDF file.

* caught segfault * address 0x1, cause 'memory not mapped'

Traceback: 1: .Call("readCDFfile", as.character(file), as.integer(3), as.integer(compress), PACKAGE = "makecdfenv") 2: read.cdffile(file.path(path.expand(cdf.path), filename), compress = compress) 3: make.cdf.env(filename, cdf.path = cdf.path, compress = compress, return.env.only = FALSE) 4: make.cdf.package("BradiGiorgiMutwil001_txt.cdf", species = "Brachypodium_dystachion")

有没有什么strik es在输入CDF文件中输入错误?我完全感到困惑,因为我不知道如何解释这种分段错误,也不知道如何追踪它到一个特定的问题。在使用Biostrader软件包时,会发生类似的情况,所以它必须是CDF字段(而不是软件包)的问题。

非常感谢! :-)

费德里科

回答

2

函数make.cdf.package()确实是而不是需要一个二进制cdf,所以没有理由进行测试。

昨天我看了一下,这个cdf没有什么明显的错误,所以很简单,转换到二进制文件修复的东西。

3

功能make.cdf.package()只对二进制CDF工作。您需要将您的cdf转换为affxparser::convertCdf(),然后才能创建该包。

+0

有趣的是,这会导致段错误。尽管它是“操作员错误”,但可能值得联系软件包维护人员,让他们添加一个测试来检查这一点,并更优雅地停下来发出一条有意义的错误消息...... –

+0

它像一个魅力一样工作!然而,正如詹姆斯所说,make.cdf.package()不需要二进制cdf,所以这个bug的本质仍令我困惑。我刚刚在customcdf邮件列表上通知了作者。现在,非常感谢! –