2012-08-27 64 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郵件列表上通知了作者。現在,非常感謝! –