debugging:显示所有值

时间:2012-10-03 14:40:29

标签: r

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

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

我认为它们必须在cosmo.R中的“sites”变量中位于第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" )

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

它似乎不是获取网站变量值的最简单方法..

1 个答案:

答案 0 :(得分:1)

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

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

会在第2行定义的函数f的开头设置断点。调用library(cosmo)与调用source('cosmo.R')不同,因此您调用{{1}可能会给你一个消息'找不到源代码'。

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

cosmo.R

其中library(cosmo) trace(cosmo, at=line.no) 是相对于line.no定义开头的行号。 cosmo关闭了断点。