- need to check for chromosome X,Y
git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/crlmm@48942 bc3139a8-67e5-0310-9ffc-ced21a209358
... | ... |
@@ -237,36 +237,59 @@ setMethod("corr", c("CNSetLM", "character"), function(object, allele){ |
237 | 237 |
return(res) |
238 | 238 |
}) |
239 | 239 |
|
240 |
-setMethod("CB", |
|
241 |
- signature=signature(object="CNSet", i="integerOrMissing", j="integerOrMissing"), |
|
242 |
- function(object, i, j){ |
|
243 |
- ##assayDataElement(object, "CB") |
|
244 |
- browser() |
|
245 |
- }) |
|
240 |
+ACN <- function(object, allele, i , j){ |
|
241 |
+ if(missing(i) & missing(j)){ |
|
242 |
+ if(inherits(A(object), "ff") | inherits(A(object), "ffdf")) stop("Must specify i and/or j for ff objects") |
|
243 |
+ } |
|
244 |
+ if(missing(i) & !missing(j)){ |
|
245 |
+ ## calculate ca only for batches indexed by j |
|
246 |
+ ubatch <- unique(batch(object)) |
|
247 |
+ batches <- unique(batch(object)[j]) |
|
248 |
+ for(k in seq_along(batches)){ |
|
249 |
+ l <- match(batches[k], ubatch) |
|
250 |
+ bg <- nu(object, allele)[, l] |
|
251 |
+ sl <- phi(object, allele)[, l] |
|
252 |
+ I <- allele(object, allele)[, j] |
|
253 |
+ acn <- 1/sl*(I - bg) |
|
254 |
+ } |
|
255 |
+ } |
|
256 |
+ if(!missing(i) & missing(j)){ |
|
257 |
+ ## calculate ca, cb for all batches |
|
258 |
+ batches <- unique(batch(object)) |
|
259 |
+ for(k in seq_along(batches)){ |
|
260 |
+ ##bb <- batches[k] |
|
261 |
+ bg <- nu(object, allele)[i, k] |
|
262 |
+ sl <- phi(object, allele)[i, k] |
|
263 |
+ I <- allele(object, allele)[i, j] |
|
264 |
+ acn <- 1/sl*(I - bg) |
|
265 |
+ } |
|
266 |
+ } |
|
267 |
+ if(!missing(i) & !missing(j)){ |
|
268 |
+ ubatch <- unique(batch(object)) |
|
269 |
+ batches <- unique(batch(object)[j]) |
|
270 |
+ for(k in seq_along(batches)){ |
|
271 |
+ l <- match(batches[k], ubatch) |
|
272 |
+ bg <- nu(object, allele)[i, l] |
|
273 |
+ sl <- phi(object, allele)[i, l] |
|
274 |
+ I <- allele(object, allele)[i, j] |
|
275 |
+ acn <- 1/bg*(I - sl) |
|
276 |
+ } |
|
277 |
+ } |
|
278 |
+ return(acn) |
|
279 |
+} |
|
246 | 280 |
|
247 | 281 |
setMethod("CA", |
248 | 282 |
signature=signature(object="CNSet", i="integerOrMissing", j="integerOrMissing"), |
249 | 283 |
function(object, i, j) { |
250 |
- browser() |
|
251 |
- if(missing(i) & missing(j)){ |
|
252 |
- if(inherits(A(object), "ff") | inherits(A(object), "ffdf")) stop("Must specify i and/or j for ff objects") |
|
253 |
- } |
|
254 |
- if(missing(i) & !missing(j)){ |
|
255 |
- ## calculate ca only for batches indexed by j |
|
256 |
- batches <- unique(batch(object))[j] |
|
257 |
- for(k in seq_along(batches)){ |
|
258 |
- bb <- batches[k] |
|
259 |
- } |
|
260 |
- } |
|
261 |
- if(!missing(i) & missing(j)){ |
|
262 |
- ## calculate ca, cb for all batches |
|
263 |
- batches <- unique(batch(object)) |
|
264 |
- } |
|
265 |
- if(!missing(i) & !missing(j)){ |
|
266 |
- |
|
267 |
- } |
|
284 |
+ ca <- ACN(object, allele="A", i, j) |
|
268 | 285 |
return(ca) |
269 | 286 |
}) |
287 |
+setMethod("CB", |
|
288 |
+ signature=signature(object="CNSet", i="integerOrMissing", j="integerOrMissing"), |
|
289 |
+ function(object, i, j) { |
|
290 |
+ cb <- ACN(object, allele="B", i, j) |
|
291 |
+ return(cb) |
|
292 |
+ }) |
|
270 | 293 |
|
271 | 294 |
setMethod("totalCopyNumber", |
272 | 295 |
signature=signature(object="CNSet", i="integerOrMissing", j="integerOrMissing"), |
... | ... |
@@ -301,7 +324,7 @@ setMethod("totalCopyNumber", |
301 | 324 |
cn.total[snps, ] <- cn.total[snps, ] + cb |
302 | 325 |
} |
303 | 326 |
} |
304 |
- cn.total <- cn.total/100 |
|
327 |
+ ##cn.total <- cn.total/100 |
|
305 | 328 |
dimnames(cn.total) <- NULL |
306 | 329 |
return(cn.total) |
307 | 330 |
}) |
... | ... |
@@ -130,7 +130,6 @@ if(!file.exists(file.path(outdir, "cnSet.rda"))){ |
130 | 130 |
class(calls(gtSet.assayData_matrix)) |
131 | 131 |
} |
132 | 132 |
##q("no") |
133 |
-stop() |
|
134 | 133 |
@ |
135 | 134 |
|
136 | 135 |
Next, we estimate copy number for the 20 CEL files. The copy number |
... | ... |
@@ -147,9 +146,9 @@ cnSet.assayData_matrix <- checkExists("cnSet.assayData_matrix", |
147 | 146 |
.FUN=crlmmCopynumber, |
148 | 147 |
object=gtSet.assayData_matrix, |
149 | 148 |
chromosome=22) |
150 |
-Rprof(interval=0.1) |
|
151 |
-obj <- crlmmCopynumber(gtSet.assayData_matrix, chromosome=22) |
|
152 |
-Rprof(NULL) |
|
149 |
+##Rprof(interval=0.1) |
|
150 |
+##obj <- crlmmCopynumber(gtSet.assayData_matrix, chromosome=22) |
|
151 |
+##Rprof(NULL) |
|
153 | 152 |
if(file.exists(file.path(outdir, "gtSet.assayData_matrix.rda"))) |
154 | 153 |
unlink(file.path(outdir, "gtSet.assayData_matrix.rda")) |
155 | 154 |
@ |
... | ... |
@@ -181,13 +180,14 @@ so that subsequent calls to \verb@Sweave@ can be run interactively. |
181 | 180 |
|
182 | 181 |
<<LDS_genotype>>= |
183 | 182 |
if(!file.exists(file.path(outdir, "cnSet.assayData_ff.rda"))){ |
184 |
- library(ff) |
|
183 |
+ Rprof(filename="Rprof_genotypeff.out", interval=0.1) |
|
185 | 184 |
gtSet.assayData_ff <- checkExists("gtSet.assayData_ff", |
186 | 185 |
.path=outdir, |
187 | 186 |
.FUN=genotypeLD, |
188 | 187 |
filenames=celFiles, |
189 | 188 |
cdfName=cdfName, |
190 | 189 |
batch=batch) |
190 |
+ Rprof(NULL) |
|
191 | 191 |
class(calls(gtSet.assayData_ff)) |
192 | 192 |
} |
193 | 193 |
@ |
... | ... |
@@ -198,12 +198,14 @@ practice, once the object \Robject{cnSet.assayData_ff} is created the |
198 | 198 |
from the \Robject{outdir}. |
199 | 199 |
|
200 | 200 |
<<LDS_copynumber>>= |
201 |
+Rprof(filename="Rprof_cnff.out", interval=0.1) |
|
201 | 202 |
cnSet.assayData_ff <- checkExists("cnSet.assayData_ff", |
202 | 203 |
.path=outdir, |
203 | 204 |
.FUN=crlmmCopynumberLD, |
204 | 205 |
filenames=celFiles, |
205 | 206 |
cdfName=cdfName, |
206 | 207 |
batch=batch) |
208 |
+Rprof(NULL) |
|
207 | 209 |
if(file.exists(file.path(outdir, "gtSet.assayData_ff.rda"))) |
208 | 210 |
unlink(file.path(outdir, "gtSet.assayData_ff.rda")) |
209 | 211 |
gc() |
... | ... |
@@ -373,7 +375,11 @@ genotypeConf <- integerScoreToProbability(snpCallProbability(x)[snp.index[1:10], |
373 | 375 |
|
374 | 376 |
Allele-specific copy number at polymorphic loci: |
375 | 377 |
<<ca>>= |
376 |
-ca <- CA(x[snp.index, ])/100 |
|
378 |
+##ca <- CA(x[snp.index, ])/100 |
|
379 |
+snp.index <- which(isSnp(obj)) |
|
380 |
+ca <- CA(obj, i=snp.index) |
|
381 |
+##or |
|
382 |
+ca <- ACN(obj, "A", i=snp.index) |
|
377 | 383 |
@ |
378 | 384 |
|
379 | 385 |
Total copy number at nonpolymorphic loci: |