@@ -22,13 +22,24 @@ readSnpMatrix <- function(filename, skip=0L, err.thresh=Inf, del.thresh=Inf, per
2222 rcmat
2323}
2424
25- preProcSample <- function (rcmat , ndepth = 35 , het.thresh = 0.25 , snp.nbhd = 250 , cval = 25 , deltaCN = 0 , gbuild = c(" hg19" , " hg38" , " hg18" , " mm9" , " mm10" ) , hetscale = TRUE , unmatched = FALSE , ndepthmax = 1000 ) {
25+ preProcSample <- function (rcmat , ndepth = 35 , het.thresh = 0.25 , snp.nbhd = 250 , cval = 25 , deltaCN = 0 , gbuild = c(" hg19" , " hg38" , " hg18" , " mm9" , " mm10" , " udef " ), ugcpct = NULL , hetscale = TRUE , unmatched = FALSE , ndepthmax = 1000 ) {
2626 gbuild <- match.arg(gbuild )
2727 # integer value for chromosome X depends on the genome
2828 if (gbuild %in% c(" hg19" , " hg38" , " hg18" )) nX <- 23
2929 if (gbuild %in% c(" mm9" , " mm10" )) nX <- 20
30- pmat <- procSnps(rcmat , ndepth , het.thresh , snp.nbhd , gbuild , unmatched , ndepthmax )
31- dmat <- counts2logROR(pmat [pmat $ rCountT > 0 ,], gbuild , unmatched )
30+ if (gbuild == " udef" ) {
31+ if (missing(ugcpct )) {
32+ stop(" GC percent data should be supplied if udef option is used" )
33+ } else {
34+ nX <- length(ugcpct )
35+ }
36+ }
37+ pmat <- procSnps(rcmat , ndepth , het.thresh , snp.nbhd , nX , unmatched , ndepthmax )
38+ if (gbuild == " udef" ) {
39+ dmat <- counts2logROR(pmat [pmat $ rCountT > 0 ,], gbuild , unmatched , ugcpct )
40+ } else {
41+ dmat <- counts2logROR(pmat [pmat $ rCountT > 0 ,], gbuild , unmatched )
42+ }
3243 tmp <- segsnps(dmat , cval , hetscale , deltaCN )
3344 out <- list (pmat = pmat , gbuild = gbuild , nX = nX )
3445 c(out , tmp )
@@ -49,8 +60,7 @@ procSample <- function(x, cval=150, min.nhet=15, dipLogR=NULL) {
4960 chrs <- x $ chromlevels
5061 nchr <- length(chrs )
5162 # get chromlevels from chrs
52- if (x $ gbuild %in% c(" hg19" , " hg38" , " hg18" )) chromlevels <- c(1 : 22 ," X" )[chrs ]
53- if (x $ gbuild %in% c(" mm9" , " mm10" )) chromlevels <- c(1 : 19 ," X" )[chrs ]
63+ chromlevels <- c(1 : (nX - 1 ), " X" )[chrs ]
5464 # get the segment summary for the fit in seg.tree
5565 nsegs <- 0
5666 for (i in 1 : nchr ) {
@@ -162,8 +172,8 @@ plotSample <- function(x, emfit=NULL, clustered=FALSE, plot.type=c("em","naive",
162172 if (length(ii )> 0 ) out $ lcn [ii ] <- 5 + log10(out $ lcn [ii ])
163173 plot(c(0 ,length(jseg $ cnlr )), c(0 ,max(out $ tcn )), type = " n" , ylab = " copy number (nv)" , xaxt = " n" )
164174 abline(v = chrbdry , lwd = 0.25 )
165- segments(segstart , out $ tcn , segend , out $ tcn , lwd = 1.75 , col = 1 )
166175 segments(segstart , out $ lcn , segend , out $ lcn , lwd = 1.75 , col = 2 )
176+ segments(segstart , out $ tcn , segend , out $ tcn , lwd = 1.75 , col = 1 )
167177 # add the cf
168178 plot(c(0 ,length(jseg $ cnlr )), 0 : 1 , type = " n" , ylab = " " , xaxt = " n" , yaxt = " n" )
169179 mtext(" cf-nv" , side = 2 , at = 0.5 , line = 0.3 , las = 2 , cex = 0.75 )
@@ -178,8 +188,8 @@ plotSample <- function(x, emfit=NULL, clustered=FALSE, plot.type=c("em","naive",
178188 if (length(ii )> 0 ) out $ lcn.em [ii ] <- 5 + log10(out $ lcn.em [ii ])
179189 plot(c(0 ,length(jseg $ cnlr )), c(0 ,max(out $ tcn.em )), type = " n" , ylab = " copy number (em)" , xaxt = " n" )
180190 abline(v = chrbdry , lwd = 0.25 )
181- segments(segstart , out $ tcn.em , segend , out $ tcn.em , lwd = 1.75 , col = 1 )
182191 segments(segstart , out $ lcn.em , segend , out $ lcn.em , lwd = 1.75 , col = 2 )
192+ segments(segstart , out $ tcn.em , segend , out $ tcn.em , lwd = 1.75 , col = 1 )
183193 # add the cf
184194 plot(c(0 ,length(jseg $ cnlr )), 0 : 1 , type = " n" , ylab = " " , xaxt = " n" , yaxt = " n" )
185195 mtext(" cf-em" , side = 2 , at = 0.5 , line = 0.2 , las = 2 , cex = 0.75 )
@@ -215,7 +225,7 @@ logRlogORspider <- function(cncf, dipLogR=0, nfrac=0.005) {
215225 }
216226 }
217227
218- plot(c(- 0.95 , 1.8 ), c(0 , 5 ), type = " n" , xlab = " Expected(logR - dipLogR)" , ylab = " Expected(|logOR|)" )
228+ plot(c(- 0.95 , 1.8 ), c(0 , 5.2 ), type = " n" , xlab = " Expected(logR - dipLogR)" , ylab = " Expected(|logOR|)" )
219229 l <- 1 ; i <- 1 ; j <- 0
220230 linecols <- c(" black" ," cyan3" ," green3" ," blue" )
221231 lines(logCNR [,l ], logACR [,l ], lty = 1 , col = j + 1 , lwd = 1.25 )
@@ -232,5 +242,7 @@ logRlogORspider <- function(cncf, dipLogR=0, nfrac=0.005) {
232242 nhets <- sum(cncf $ nhet )
233243 ii <- cncf $ num.mark > nfrac * nsnps & cncf $ nhet > nfrac * nhets
234244 cex <- 0.3 + 2.7 * (cncf $ num.mark [ii ]/ sum(0.1 * cncf $ num.mark [ii ]))
235- points(cncf $ cnlr.median [ii ] - dipLogR , sqrt(abs(cncf $ mafR [ii ])), cex = cex , col = " magenta4" , lwd = 1.5 )
245+ chrcol <- rainbow(24 )
246+ points(cncf $ cnlr.median [ii ] - dipLogR , sqrt(abs(cncf $ mafR [ii ])), cex = cex , pch = 10 , col = chrcol [cncf $ chrom [ii ]], lwd = 1.5 )
247+ legend(- 1 , 5.25 , paste(" chr" , c(1 : 22 , " X" ), sep = " " ), ncol = 4 , pch = 10 , col = chrcol [1 : 23 ], cex = 0.65 )
236248}
0 commit comments