1

我正在尝试调试cosmoR 包,因为我正在尝试找出所有图案的位置。我展示了其中一些打印“主题”变量,但我不知道如何在一次运行中显示所有找到的主题。

http://www.bioconductor.org/packages/2.10/bioc/html/cosmo.html

我认为它们必须在 cosmo.R 中“站点”变量的第 366 行:

for (i in 1:com$selNumSites){
      site <- seqMat[com$alignStarts[i]:(com$alignStarts[i]+com$selWidth-1),
                     com$alignSeqs[i]]
      sites <- c(sites, toString(site))

但是当我尝试调试它时,我需要先加载 cosmo 库,然后读取数据,然后运行 ​​cosmo:

library(cosmo)
seqal <- system.file("Exfiles/short702k.FASTA", package="cosmo")
res <- cosmo(seqs=seqal, constraints="None", minW=10, maxW=10, models="TCM" )

对于调试第 366 行,我认为我应该:

library(cosmo)
seqal <- system.file("Exfiles/short702k.FASTA", package="cosmo")
setBreakpoint("cosmo.R",366)
res <- cosmo(seqs=seqal, constraints="None", minW=10, maxW=10, models="TCM" )

但我没有得到任何变量的任何值..

而且这似乎不是获取站点变量值的最简单方法..

4

1 回答 1

1

setBreakpoint用于调试使用该source函数加载的 R 代码。如果 mysource.R 是某个f在第 2 行定义了函数的源文件,那么

source('mysource.R')
setBreakpoint('mysource.R', 2)

将在第 2 行定义的函数的开头设置断点f。 Callinglibrary(cosmo)与 call 不同source('cosmo.R'),因此您的调用setBreakpoint可能会给您消息“未找到源引用”。

如果要在cosmo定义的函数中的特定行设置断点cosmo.R,请使用

library(cosmo)
trace(cosmo, at=line.no)

其中line.no是相对于 的定义开始的行号cosmountrace关闭断点。

于 2012-10-03T16:07:09.753 回答