iSeq package\'s peakreg fails
0
0
Entering edit mode
Guest User ★ 13k
@guest-user-4897
Last seen 10.2 years ago
If you just look at peakreg's code and what's in here, it'll be very clear what's happening. Using ppcut, if there's only one value above the cutoff, sum(id) will be 1, by this code: id = NULL if (ppcut) { id = (pp > cutoff) } This leads to using matrix instead of cbind here: if (sum(id) != 1) { x = cbind(chrn[id], chrpos[id, 2:3], count[id, 1:2], rowID[id]) } else { x = matrix(c(chrn[id], chrpos[id, 2:3], count[id, 1:2], rowID[id]), nrow = 1) } Now, x has only one row at least in my case. Which in turn makes the following piece of code throw an exception: (More precisely the substatement x[, 2] + x[, 3] ) xlen = nrow(x) if (xlen == 1) { br = cbind(x[, 1:3], x[, 6], x[, 6], floor((x[, 2] + x[, 3])/2), round(pp[id], 2), count[id, ], sum(count[id, ]), round(min(count[id, ])/sum(count[id, ]), 2)) colnames(br) = c("chr", "gstart", "gend", "rstart", "rend", "peakpos", "meanpp", "ct1", "ct2", "ct12", "sym") br = as.data.frame(br) br[1, 1] = chrpos[br[1, 4], 1] return(br) } To demonstrate the code in debugger (invoked by debug(peakreag), then running an actual peakreg call): Browse[2]> x=cbind(chrn[id], chrpos[id, 2:3], count[id, 1:2], rowID[id]) Browse[2]> x chrn[id] gstart gend ipct1 ipct2 rowID[id] 389 1 2765786 2765788 3 13 389 Browse[2]> x[,2]+x[,3] [1] 5531574 Browse[2]> x=(matrix(c(chrn[id], chrpos[id, 2:3], count[id, 1:2], rowID[id]), nrow = 1)) Browse[2]> x[,2]+x[,3] Error in x[, 2] + x[, 3] : non-numeric argument to binary operator This error is obviously very nasty because only by changing the cutoff or by feeding certain data, you can cause any iSeq analysis to fail. -- output of sessionInfo(): Browse[2]> sessionInfo() R version 2.14.0 (2011-10-31) Platform: x86_64-pc-linux-gnu (64-bit) locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8 [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=C LC_NAME=C [9] LC_ADDRESS=C LC_TELEPHONE=C [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] iSeq_1.6.0 loaded via a namespace (and not attached): [1] tools_2.14.0 -- Sent via the guest posting facility at bioconductor.org.
iSeq iSeq • 824 views
ADD COMMENT

Login before adding your answer.

Traffic: 870 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6