Browse code

Merge branch 'collab'

* collab: (34 commits)
revert change to IlluminaPreprocessCN
fix bug in isValidCdfName
print warning when all features in a batch of probes are flagged, but allow processing to continue
add utility cleancdfnames
Add validCdfNames.Rd
export validCdfNames
imputeGender fix when chromosome Y not available
Use splitIndicesByLength(index, ocSamples/getDoParWorkers())
Can not allocate vector of size XG with genotype.Illumina. Use splitIndicesByNode() only if the length of the list is greater than the split from splitIndicesByLength(). Otherwise, split by length using ocSamples()
update .gitignore
Add make.unique for sampleSheet$Sample_ID in readIdatFiles
bug in description
ensure sample ids stored in samplesheet are unique when constructing cnSet object
update oligoClasses dependency
update unit test for genotype.Illumina
revert change in constructInf call from genotype.Illumina
Update genotype.Rd
edit ACN function
1.15.6 use make.unique(basename(arrayNames)) to allow processing of Illumina samples with duplicated barcodes
check that sample identifies are unique in crlmm function
...

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/crlmm@67435 bc3139a8-67e5-0310-9ffc-ced21a209358

Rob Scharp authored on 08/07/2012 19:00:03
Showing 1 changed files
... ...
@@ -50,6 +50,21 @@ setMethod("medians", signature(object="AssayData"),
50 50
 		  return(res)
51 51
 })
52 52
 
53
+getMedians <- function(object){
54
+	medianA.AA <- assayDataElement(object, "medianA.AA")
55
+	medianA.AB <- assayDataElement(object, "medianA.AB")
56
+	medianA.BB <- assayDataElement(object, "medianA.BB")
57
+	medianB.AA <- assayDataElement(object, "medianB.AA")
58
+	medianB.AB <- assayDataElement(object, "medianB.AB")
59
+	medianB.BB <- assayDataElement(object, "medianB.BB")
60
+	list(A.AA=medianA.AA,
61
+	     A.AB=medianA.AB,
62
+	     A.BB=medianA.BB,
63
+	     B.AA=medianB.AA,
64
+	     B.AB=medianB.AB,
65
+	     B.BB=medianB.BB)
66
+}
67
+
53 68
 setMethod("mads", signature(object="AssayData"),
54 69
 	  function(object, ...){
55 70
 		  batchnames <- sampleNames(object)
Browse code

Simplify accessors for batch summaries: Ns, corr, medians, mads

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/crlmm@58646 bc3139a8-67e5-0310-9ffc-ced21a209358

Rob Scharp authored on 01/10/2011 04:48:38
Showing 1 changed files
... ...
@@ -1,120 +1,74 @@
1
+
1 2
 setMethod("Ns", signature(object="AssayData"),
2 3
 	  function(object, ...){
3
-		  dotArgs <- names(list(...))
4
-		  missing.i <- !("i" %in% dotArgs)
5
-		  missing.j <- !("j" %in% dotArgs)
6
-		  if(!missing.j) j <- list(...)[["j"]]
7 4
 		  batchnames <- sampleNames(object)
8
-		  if(!missing.j) batchnames <- batchnames[j]
9
-		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
10
-		  is.ff <- is(assayDataElement(object, "N.AA"), "ff") | is(assayDataElement(object, "N.AA"), "ffdf")
11
-		  if(is.ff){
12
-			  open(assayDataElement(object, "N.AA"))
13
-			  open(assayDataElement(object, "N.AB"))
14
-			  open(assayDataElement(object, "N.BB"))
15
-		  }
16
-		  N.AA <- as.matrix(assayDataElement(object, "N.AA")[...])
17
-		  N.AB <- as.matrix(assayDataElement(object, "N.AB")[...])
18
-		  N.BB <- as.matrix(assayDataElement(object, "N.BB")[...])
19
-		  if(is.ff){
20
-			  close(assayDataElement(object, "N.AA"))
21
-			  close(assayDataElement(object, "N.AB"))
22
-			  close(assayDataElement(object, "N.BB"))
23
-		  }
5
+		  N.AA <- assayDataElement(object, "N.AA")
6
+		  N.AB <- assayDataElement(object, "N.AB")
7
+		  N.BB <- assayDataElement(object, "N.BB")
24 8
 		  res <- array(NA, dim=c(nrow(N.AA), 3, ncol(N.AA)))
25 9
 		  dimnames(res)[[2]] <- c("AA", "AB", "BB")
26 10
 		  dimnames(res)[[3]] <- batchnames
27
-		  res[, "AA", ] <- N.AA
28
-		  res[, "AB", ] <- N.AB
29
-		  res[, "BB", ] <- N.BB
11
+		  res[, "AA", ] <- N.AA[,]
12
+		  res[, "AB", ] <- N.AB[,]
13
+		  res[, "BB", ] <- N.BB[,]
30 14
 		  return(res)
31 15
 	  })
32 16
 setMethod("corr", signature(object="AssayData"),
33 17
 	  function(object, ...){
34
-		  dotArgs <- names(list(...))
35
-		  missing.i <- !("i" %in% dotArgs)
36
-		  missing.j <- !("j" %in% dotArgs)
37
-		  if(!missing.j) j <- list(...)[["j"]]
38 18
 		  batchnames <- sampleNames(object)
39
-		  if(!missing.j) batchnames <- batchnames[j]
40
-
41
-		  ##if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
42
-		  is.ff <- is(assayDataElement(object, "corrAA"), "ff") | is(assayDataElement(object, "corrAA"), "ffdf")
43
-		  if(is.ff){
44
-			  open(assayDataElement(object, "corrAA"))
45
-			  open(assayDataElement(object, "corrAB"))
46
-			  open(assayDataElement(object, "corrBB"))
47
-		  }
48
-		  corrAA <- as.matrix(assayDataElement(object, "corrAA")[...])
49
-		  corrAB <- as.matrix(assayDataElement(object, "corrAB")[...])
50
-		  corrBB <- as.matrix(assayDataElement(object, "corrBB")[...])
51
-		  if(is.ff){
52
-			  close(assayDataElement(object, "corrAA"))
53
-			  close(assayDataElement(object, "corrAB"))
54
-			  close(assayDataElement(object, "corrBB"))
55
-		  }
19
+		  corrAA <- assayDataElement(object, "corrAA")
20
+		  corrAB <- assayDataElement(object, "corrAB")
21
+		  corrBB <- assayDataElement(object, "corrBB")
56 22
 		  res <- array(NA, dim=c(nrow(corrAA), 3, ncol(corrAA)))
57 23
 		  dimnames(res)[[2]] <- c("AA", "AB", "BB")
58 24
 		  dimnames(res)[[3]] <- batchnames
59
-		  res[, "AA", ] <- corrAA
60
-		  res[, "AB", ] <- corrAB
61
-		  res[, "BB", ] <- corrBB
25
+		  res[, "AA", ] <- corrAA[,]
26
+		  res[, "AB", ] <- corrAB[,]
27
+		  res[, "BB", ] <- corrBB[,]
62 28
 		  return(res)
63 29
 	  })
64 30
 
65 31
 setMethod("medians", signature(object="AssayData"),
66 32
 	  function(object, ...){
67
-		  dotArgs <- names(list(...))
68
-		  missing.i <- !("i" %in% dotArgs)
69
-		  missing.j <- !("j" %in% dotArgs)
70
-		  if(!missing.j) j <- list(...)[["j"]]
71 33
 		  batchnames <- sampleNames(object)
72
-		  if(!missing.j) batchnames <- batchnames[j]
73
-		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
74
-		  medianA.AA <- as.matrix(assayDataElement(object, "medianA.AA")[...])
75
-		  medianA.AB <- as.matrix(assayDataElement(object, "medianA.AB")[...])
76
-		  medianA.BB <- as.matrix(assayDataElement(object, "medianA.BB")[...])
77
-		  medianB.AA <- as.matrix(assayDataElement(object, "medianB.AA")[...])
78
-		  medianB.AB <- as.matrix(assayDataElement(object, "medianB.AB")[...])
79
-		  medianB.BB <- as.matrix(assayDataElement(object, "medianB.BB")[...])
34
+		  medianA.AA <- assayDataElement(object, "medianA.AA")
35
+		  medianA.AB <- assayDataElement(object, "medianA.AB")
36
+		  medianA.BB <- assayDataElement(object, "medianA.BB")
37
+		  medianB.AA <- assayDataElement(object, "medianB.AA")
38
+		  medianB.AB <- assayDataElement(object, "medianB.AB")
39
+		  medianB.BB <- assayDataElement(object, "medianB.BB")
80 40
 		  res <- array(NA, dim=c(nrow(medianA.AA), 2, 3, ncol(medianA.AA)))
81 41
 		  dimnames(res)[[2]] <- c("A", "B")
82 42
 		  dimnames(res)[[3]] <- c("AA", "AB", "BB")
83 43
 		  dimnames(res)[[4]] <- batchnames
84
-		  res[, "A", "AA", ] <- medianA.AA
85
-		  res[, "A", "AB", ] <- medianA.AB
86
-		  res[, "A", "BB", ] <- medianA.BB
87
-		  res[, "B", "AA", ] <- medianB.AA
88
-		  res[, "B", "AB", ] <- medianB.AB
89
-		  res[, "B", "BB", ] <- medianB.BB
44
+		  res[, "A", "AA", ] <- medianA.AA[,]
45
+		  res[, "A", "AB", ] <- medianA.AB[,]
46
+		  res[, "A", "BB", ] <- medianA.BB[,]
47
+		  res[, "B", "AA", ] <- medianB.AA[,]
48
+		  res[, "B", "AB", ] <- medianB.AB[,]
49
+		  res[, "B", "BB", ] <- medianB.BB[,]
90 50
 		  return(res)
91 51
 })
92 52
 
93 53
 setMethod("mads", signature(object="AssayData"),
94 54
 	  function(object, ...){
95
-		  dotArgs <- names(list(...))
96
-		  missing.i <- !("i" %in% dotArgs)
97
-		  missing.j <- !("j" %in% dotArgs)
98 55
 		  batchnames <- sampleNames(object)
99
-		  if(!missing.j) j <- list(...)[["j"]]
100
-		  if(!missing.j) batchnames <- batchnames[j]
101
-		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
102
-		  madA.AA <- as.matrix(assayDataElement(object, "madA.AA")[...])
103
-		  madA.AB <- as.matrix(assayDataElement(object, "madA.AB")[...])
104
-		  madA.BB <- as.matrix(assayDataElement(object, "madA.BB")[...])
105
-		  madB.AA <- as.matrix(assayDataElement(object, "madB.AA")[...])
106
-		  madB.AB <- as.matrix(assayDataElement(object, "madB.AB")[...])
107
-		  madB.BB <- as.matrix(assayDataElement(object, "madB.BB")[...])
56
+		  madA.AA <- assayDataElement(object, "madA.AA")
57
+		  madA.AB <- assayDataElement(object, "madA.AB")
58
+		  madA.BB <- assayDataElement(object, "madA.BB")
59
+		  madB.AA <- assayDataElement(object, "madB.AA")
60
+		  madB.AB <- assayDataElement(object, "madB.AB")
61
+		  madB.BB <- assayDataElement(object, "madB.BB")
108 62
 		  res <- array(NA, dim=c(nrow(madA.AA), 2, 3, ncol(madA.AA)))
109 63
 		  dimnames(res)[[2]] <- c("A", "B")
110 64
 		  dimnames(res)[[3]] <- c("AA", "AB", "BB")
111 65
 		  dimnames(res)[[4]] <- batchnames
112
-		  res[, "A", "AA", ] <- madA.AA
113
-		  res[, "A", "AB", ] <- madA.AB
114
-		  res[, "A", "BB", ] <- madA.BB
115
-		  res[, "B", "AA", ] <- madB.AA
116
-		  res[, "B", "AB", ] <- madB.AB
117
-		  res[, "B", "BB", ] <- madB.BB
66
+		  res[, "A", "AA", ] <- madA.AA[,]
67
+		  res[, "A", "AB", ] <- madA.AB[,]
68
+		  res[, "A", "BB", ] <- madA.BB[,]
69
+		  res[, "B", "AA", ] <- madB.AA[,]
70
+		  res[, "B", "AB", ] <- madB.AB[,]
71
+		  res[, "B", "BB", ] <- madB.BB[,]
118 72
 		  return(res)
119 73
 })
120 74
 
... ...
@@ -122,25 +76,19 @@ setMethod("mads", signature(object="AssayData"),
122 76
 
123 77
 setMethod("tau2", signature(object="AssayData"),
124 78
 	  function(object, ...){
125
-		  dotArgs <- names(list(...))
126
-		  missing.i <- !("i" %in% dotArgs)
127
-		  missing.j <- !("j" %in% dotArgs)
128 79
 		  batchnames <- sampleNames(object)
129
-		  if(!missing.j) j <- list(...)[["j"]]
130
-		  if(!missing.j) batchnames <- batchnames[j]
131
-		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
132
-		  tau2A.AA <- as.matrix(assayDataElement(object, "tau2A.AA")[...])
133
-		  tau2A.BB <- as.matrix(assayDataElement(object, "tau2A.BB")[...])
134
-		  tau2B.AA <- as.matrix(assayDataElement(object, "tau2B.AA")[...])
135
-		  tau2B.BB <- as.matrix(assayDataElement(object, "tau2B.BB")[...])
80
+		  tau2A.AA <- assayDataElement(object, "tau2A.AA")
81
+		  tau2A.BB <- assayDataElement(object, "tau2A.BB")
82
+		  tau2B.AA <- assayDataElement(object, "tau2B.AA")
83
+		  tau2B.BB <- assayDataElement(object, "tau2B.BB")
136 84
 		  res <- array(NA, dim=c(nrow(tau2A.AA), 2, 2, ncol(tau2A.AA)))
137 85
 		  dimnames(res)[[2]] <- c("A", "B")
138 86
 		  dimnames(res)[[3]] <- c("AA", "BB")
139 87
 		  dimnames(res)[[4]] <- batchnames
140
-		  res[, "A", "AA", ] <- tau2A.AA
141
-		  res[, "A", "BB", ] <- tau2A.BB
142
-		  res[, "B", "AA", ] <- tau2B.AA
143
-		  res[, "B", "BB", ] <- tau2B.BB
88
+		  res[, "A", "AA", ] <- tau2A.AA[,]
89
+		  res[, "A", "BB", ] <- tau2A.BB[,]
90
+		  res[, "B", "AA", ] <- tau2B.AA[,]
91
+		  res[, "B", "BB", ] <- tau2B.BB[,]
144 92
 		  return(res)
145 93
 })
146 94
 
Browse code

Add generics and methods for predictionRegion, posteriorProbability, and calculatePosteriorMean.

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/crlmm@58630 bc3139a8-67e5-0310-9ffc-ced21a209358

Rob Scharp authored on 01/10/2011 04:46:51
Showing 1 changed files
... ...
@@ -37,7 +37,8 @@ setMethod("corr", signature(object="AssayData"),
37 37
 		  if(!missing.j) j <- list(...)[["j"]]
38 38
 		  batchnames <- sampleNames(object)
39 39
 		  if(!missing.j) batchnames <- batchnames[j]
40
-		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
40
+
41
+		  ##if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
41 42
 		  is.ff <- is(assayDataElement(object, "corrAA"), "ff") | is(assayDataElement(object, "corrAA"), "ffdf")
42 43
 		  if(is.ff){
43 44
 			  open(assayDataElement(object, "corrAA"))
Browse code

Add illumina_copynumber.pdf to package.

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/crlmm@49895 bc3139a8-67e5-0310-9ffc-ced21a209358

Rob Scharp authored on 04/10/2010 02:21:53
Showing 1 changed files
... ...
@@ -7,7 +7,7 @@ setMethod("Ns", signature(object="AssayData"),
7 7
 		  batchnames <- sampleNames(object)
8 8
 		  if(!missing.j) batchnames <- batchnames[j]
9 9
 		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
10
-		  is.ff <- is(assayDataElement(object, "N.AA"), "ff")
10
+		  is.ff <- is(assayDataElement(object, "N.AA"), "ff") | is(assayDataElement(object, "N.AA"), "ffdf")
11 11
 		  if(is.ff){
12 12
 			  open(assayDataElement(object, "N.AA"))
13 13
 			  open(assayDataElement(object, "N.AB"))
... ...
@@ -38,7 +38,7 @@ setMethod("corr", signature(object="AssayData"),
38 38
 		  batchnames <- sampleNames(object)
39 39
 		  if(!missing.j) batchnames <- batchnames[j]
40 40
 		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
41
-		  is.ff <- is(assayDataElement(object, "corrAA"), "ff")
41
+		  is.ff <- is(assayDataElement(object, "corrAA"), "ff") | is(assayDataElement(object, "corrAA"), "ffdf")
42 42
 		  if(is.ff){
43 43
 			  open(assayDataElement(object, "corrAA"))
44 44
 			  open(assayDataElement(object, "corrAB"))
Browse code

Revised accesors in methods-AssayData -- some of the conflicts resolved by hand during rebase were incorrect

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/crlmm@49140 bc3139a8-67e5-0310-9ffc-ced21a209358

Rob Scharp authored on 30/08/2010 19:41:03
Showing 1 changed files
... ...
@@ -24,30 +24,6 @@ setMethod("Ns", signature(object="AssayData"),
24 24
 		  res <- array(NA, dim=c(nrow(N.AA), 3, ncol(N.AA)))
25 25
 		  dimnames(res)[[2]] <- c("AA", "AB", "BB")
26 26
 		  dimnames(res)[[3]] <- batchnames
27
-		  if(missing(i) & missing(j)){
28
-			  N.AA <- as.matrix(assayDataElement(object, "N.AA"))
29
-			  N.AB <- as.matrix(assayDataElement(object, "N.AB"))
30
-			  N.BB <- as.matrix(assayDataElement(object, "N.BB"))
31
-		  }
32
-		  if(missing(i) & !missing(j)){
33
-			  J <- match(batchnames, batchNames(object))
34
-			  stopifnot(length(J) > 0 & !all(is.na(J)))
35
-			  N.AA <- as.matrix(assayDataElement(object, "N.AA"))[, J, ...]
36
-			  N.AB <- as.matrix(assayDataElement(object, "N.AB"))[, J, ...]
37
-			  N.BB <- as.matrix(assayDataElement(object, "N.BB"))[, J, ...]
38
-		  }
39
-		  if(!missing(i) & !missing(j)){
40
-			  J <- match(batchnames, batchNames(object))
41
-			  stopifnot(length(J) > 0 & !all(is.na(J)))
42
-			  N.AA <- as.matrix(assayDataElement(object, "N.AA"))[i, J, ...]
43
-			  N.AB <- as.matrix(assayDataElement(object, "N.AB"))[i, J, ...]
44
-			  N.BB <- as.matrix(assayDataElement(object, "N.BB"))[i, J, ...]
45
-		  }
46
-		  if(!missing(i) & missing(j)){
47
-			  N.AA <- as.matrix(assayDataElement(object, "N.AA"))[i, , ...]
48
-			  N.AB <- as.matrix(assayDataElement(object, "N.AB"))[i, , ...]
49
-			  N.BB <- as.matrix(assayDataElement(object, "N.BB"))[i, , ...]
50
-		  }
51 27
 		  res[, "AA", ] <- N.AA
52 28
 		  res[, "AB", ] <- N.AB
53 29
 		  res[, "BB", ] <- N.BB
... ...
@@ -79,30 +55,6 @@ setMethod("corr", signature(object="AssayData"),
79 55
 		  res <- array(NA, dim=c(nrow(corrAA), 3, ncol(corrAA)))
80 56
 		  dimnames(res)[[2]] <- c("AA", "AB", "BB")
81 57
 		  dimnames(res)[[3]] <- batchnames
82
-		  if(missing(i) & missing(j)){
83
-			  corrAA <- as.matrix(assayDataElement(object, "corrAA"))
84
-			  corrAB <- as.matrix(assayDataElement(object, "corrAB"))
85
-			  corrBB <- as.matrix(assayDataElement(object, "corrBB"))
86
-		  }
87
-		  if(missing(i) & !missing(j)){
88
-			  J <- match(batchnames, batchNames(object))
89
-			  stopifnot(length(J) > 0 & !all(is.na(J)))
90
-			  corrAA <- as.matrix(assayDataElement(object, "corrAA"))[, J, ...]
91
-			  corrAB <- as.matrix(assayDataElement(object, "corrAB"))[, J, ...]
92
-			  corrBB <- as.matrix(assayDataElement(object, "corrBB"))[, J, ...]
93
-		  }
94
-		  if(!missing(i) & !missing(j)){
95
-			  J <- match(batchnames, batchNames(object))
96
-			  stopifnot(length(J) > 0 & !all(is.na(J)))
97
-			  corrAA <- as.matrix(assayDataElement(object, "corrAA"))[i, J, ...]
98
-			  corrAB <- as.matrix(assayDataElement(object, "corrAB"))[i, J, ...]
99
-			  corrBB <- as.matrix(assayDataElement(object, "corrBB"))[i, J, ...]
100
-		  }
101
-		  if(!missing(i) & missing(j)){
102
-			  corrAA <- as.matrix(assayDataElement(object, "corrAA"))[i, , ...]
103
-			  corrAB <- as.matrix(assayDataElement(object, "corrAB"))[i, , ...]
104
-			  corrBB <- as.matrix(assayDataElement(object, "corrBB"))[i, , ...]
105
-		  }
106 58
 		  res[, "AA", ] <- corrAA
107 59
 		  res[, "AB", ] <- corrAB
108 60
 		  res[, "BB", ] <- corrBB
... ...
@@ -128,43 +80,6 @@ setMethod("medians", signature(object="AssayData"),
128 80
 		  dimnames(res)[[2]] <- c("A", "B")
129 81
 		  dimnames(res)[[3]] <- c("AA", "AB", "BB")
130 82
 		  dimnames(res)[[4]] <- batchnames
131
-		  if(missing(i) & missing(j)){
132
-			  medianA.AA <- as.matrix(assayDataElement(object, "medianA.AA"))
133
-			  medianA.AB <- as.matrix(assayDataElement(object, "medianA.AB"))
134
-			  medianA.BB <- as.matrix(assayDataElement(object, "medianA.BB"))
135
-			  medianB.AA <- as.matrix(assayDataElement(object, "medianB.AA"))
136
-			  medianB.AB <- as.matrix(assayDataElement(object, "medianB.AB"))
137
-			  medianB.BB <- as.matrix(assayDataElement(object, "medianB.BB"))
138
-		  }
139
-		  if(missing(i) & !missing(j)){
140
-			  J <- match(batchnames, batchNames(object))
141
-			  stopifnot(length(J) > 0 & !all(is.na(J)))
142
-			  medianA.AA <- as.matrix(assayDataElement(object, "medianA.AA"))[, J, ...]
143
-			  medianA.AB <- as.matrix(assayDataElement(object, "medianA.AB"))[, J, ...]
144
-			  medianA.BB <- as.matrix(assayDataElement(object, "medianA.BB"))[, J, ...]
145
-			  medianB.AA <- as.matrix(assayDataElement(object, "medianB.AA"))[, J, ...]
146
-			  medianB.AB <- as.matrix(assayDataElement(object, "medianB.AB"))[, J, ...]
147
-			  medianB.BB <- as.matrix(assayDataElement(object, "medianB.BB"))[, J, ...]
148
-
149
-		  }
150
-		  if(!missing(i) & !missing(j)){
151
-			  J <- match(batchnames, batchNames(object))
152
-			  stopifnot(length(J) > 0 & !all(is.na(J)))
153
-			  medianA.AA <- as.matrix(assayDataElement(object, "medianA.AA"))[i, J, ...]
154
-			  medianA.AB <- as.matrix(assayDataElement(object, "medianA.AB"))[i, J, ...]
155
-			  medianA.BB <- as.matrix(assayDataElement(object, "medianA.BB"))[i, J, ...]
156
-			  medianB.AA <- as.matrix(assayDataElement(object, "medianB.AA"))[i, J, ...]
157
-			  medianB.AB <- as.matrix(assayDataElement(object, "medianB.AB"))[i, J, ...]
158
-			  medianB.BB <- as.matrix(assayDataElement(object, "medianB.BB"))[i, J, ...]
159
-		  }
160
-		  if(!missing(i) & missing(j)){
161
-			  medianA.AA <- as.matrix(assayDataElement(object, "medianA.AA"))[i, ...]
162
-			  medianA.AB <- as.matrix(assayDataElement(object, "medianA.AB"))[i, ...]
163
-			  medianA.BB <- as.matrix(assayDataElement(object, "medianA.BB"))[i, ...]
164
-			  medianB.AA <- as.matrix(assayDataElement(object, "medianB.AA"))[i, ...]
165
-			  medianB.AB <- as.matrix(assayDataElement(object, "medianB.AB"))[i, ...]
166
-			  medianB.BB <- as.matrix(assayDataElement(object, "medianB.BB"))[i, ...]
167
-		  }
168 83
 		  res[, "A", "AA", ] <- medianA.AA
169 84
 		  res[, "A", "AB", ] <- medianA.AB
170 85
 		  res[, "A", "BB", ] <- medianA.BB
... ...
@@ -193,43 +108,6 @@ setMethod("mads", signature(object="AssayData"),
193 108
 		  dimnames(res)[[2]] <- c("A", "B")
194 109
 		  dimnames(res)[[3]] <- c("AA", "AB", "BB")
195 110
 		  dimnames(res)[[4]] <- batchnames
196
-		  if(missing(i) & missing(j)){
197
-			  madA.AA <- as.matrix(assayDataElement(object, "madA.AA"))
198
-			  madA.AB <- as.matrix(assayDataElement(object, "madA.AB"))
199
-			  madA.BB <- as.matrix(assayDataElement(object, "madA.BB"))
200
-			  madB.AA <- as.matrix(assayDataElement(object, "madB.AA"))
201
-			  madB.AB <- as.matrix(assayDataElement(object, "madB.AB"))
202
-			  madB.BB <- as.matrix(assayDataElement(object, "madB.BB"))
203
-		  }
204
-		  if(missing(i) & !missing(j)){
205
-			  J <- match(batchnames, batchNames(object))
206
-			  stopifnot(length(J) > 0 & !all(is.na(J)))
207
-			  madA.AA <- as.matrix(assayDataElement(object, "madA.AA"))[, J, ...]
208
-			  madA.AB <- as.matrix(assayDataElement(object, "madA.AB"))[, J, ...]
209
-			  madA.BB <- as.matrix(assayDataElement(object, "madA.BB"))[, J, ...]
210
-			  madB.AA <- as.matrix(assayDataElement(object, "madB.AA"))[, J, ...]
211
-			  madB.AB <- as.matrix(assayDataElement(object, "madB.AB"))[, J, ...]
212
-			  madB.BB <- as.matrix(assayDataElement(object, "madB.BB"))[, J, ...]
213
-
214
-		  }
215
-		  if(!missing(i) & !missing(j)){
216
-			  J <- match(batchnames, batchNames(object))
217
-			  stopifnot(length(J) > 0 & !all(is.na(J)))
218
-			  madA.AA <- as.matrix(assayDataElement(object, "madA.AA"))[i, J, ...]
219
-			  madA.AB <- as.matrix(assayDataElement(object, "madA.AB"))[i, J, ...]
220
-			  madA.BB <- as.matrix(assayDataElement(object, "madA.BB"))[i, J, ...]
221
-			  madB.AA <- as.matrix(assayDataElement(object, "madB.AA"))[i, J, ...]
222
-			  madB.AB <- as.matrix(assayDataElement(object, "madB.AB"))[i, J, ...]
223
-			  madB.BB <- as.matrix(assayDataElement(object, "madB.BB"))[i, J, ...]
224
-		  }
225
-		  if(!missing(i) & missing(j)){
226
-			  madA.AA <- as.matrix(assayDataElement(object, "madA.AA"))[i, ...]
227
-			  madA.AB <- as.matrix(assayDataElement(object, "madA.AB"))[i, ...]
228
-			  madA.BB <- as.matrix(assayDataElement(object, "madA.BB"))[i, ...]
229
-			  madB.AA <- as.matrix(assayDataElement(object, "madB.AA"))[i, ...]
230
-			  madB.AB <- as.matrix(assayDataElement(object, "madB.AB"))[i, ...]
231
-			  madB.BB <- as.matrix(assayDataElement(object, "madB.BB"))[i, ...]
232
-		  }
233 111
 		  res[, "A", "AA", ] <- madA.AA
234 112
 		  res[, "A", "AB", ] <- madA.AB
235 113
 		  res[, "A", "BB", ] <- madA.BB
Browse code

added open and close statements in Ns and corr accessors

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/crlmm@49137 bc3139a8-67e5-0310-9ffc-ced21a209358

Rob Scharp authored on 30/08/2010 19:40:57
Showing 1 changed files
... ...
@@ -7,9 +7,20 @@ setMethod("Ns", signature(object="AssayData"),
7 7
 		  batchnames <- sampleNames(object)
8 8
 		  if(!missing.j) batchnames <- batchnames[j]
9 9
 		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
10
+		  is.ff <- is(assayDataElement(object, "N.AA"), "ff")
11
+		  if(is.ff){
12
+			  open(assayDataElement(object, "N.AA"))
13
+			  open(assayDataElement(object, "N.AB"))
14
+			  open(assayDataElement(object, "N.BB"))
15
+		  }
10 16
 		  N.AA <- as.matrix(assayDataElement(object, "N.AA")[...])
11 17
 		  N.AB <- as.matrix(assayDataElement(object, "N.AB")[...])
12 18
 		  N.BB <- as.matrix(assayDataElement(object, "N.BB")[...])
19
+		  if(is.ff){
20
+			  close(assayDataElement(object, "N.AA"))
21
+			  close(assayDataElement(object, "N.AB"))
22
+			  close(assayDataElement(object, "N.BB"))
23
+		  }
13 24
 		  res <- array(NA, dim=c(nrow(N.AA), 3, ncol(N.AA)))
14 25
 		  dimnames(res)[[2]] <- c("AA", "AB", "BB")
15 26
 		  dimnames(res)[[3]] <- batchnames
... ...
@@ -51,9 +62,20 @@ setMethod("corr", signature(object="AssayData"),
51 62
 		  batchnames <- sampleNames(object)
52 63
 		  if(!missing.j) batchnames <- batchnames[j]
53 64
 		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
65
+		  is.ff <- is(assayDataElement(object, "corrAA"), "ff")
66
+		  if(is.ff){
67
+			  open(assayDataElement(object, "corrAA"))
68
+			  open(assayDataElement(object, "corrAB"))
69
+			  open(assayDataElement(object, "corrBB"))
70
+		  }
54 71
 		  corrAA <- as.matrix(assayDataElement(object, "corrAA")[...])
55 72
 		  corrAB <- as.matrix(assayDataElement(object, "corrAB")[...])
56 73
 		  corrBB <- as.matrix(assayDataElement(object, "corrBB")[...])
74
+		  if(is.ff){
75
+			  close(assayDataElement(object, "corrAA"))
76
+			  close(assayDataElement(object, "corrAB"))
77
+			  close(assayDataElement(object, "corrBB"))
78
+		  }
57 79
 		  res <- array(NA, dim=c(nrow(corrAA), 3, ncol(corrAA)))
58 80
 		  dimnames(res)[[2]] <- c("AA", "AB", "BB")
59 81
 		  dimnames(res)[[3]] <- batchnames
Browse code

CB estimates were NA for SNP indices were mixed with NP indices. Bug was fixed in the ACN function

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/crlmm@49136 bc3139a8-67e5-0310-9ffc-ced21a209358

Rob Scharp authored on 30/08/2010 19:40:54
Showing 1 changed files
... ...
@@ -43,7 +43,7 @@ setMethod("Ns", signature(object="AssayData"),
43 43
 		  return(res)
44 44
 	  })
45 45
 setMethod("corr", signature(object="AssayData"),
46
-	  function(object, i, j, ...){
46
+	  function(object, ...){
47 47
 		  dotArgs <- names(list(...))
48 48
 		  missing.i <- !("i" %in% dotArgs)
49 49
 		  missing.j <- !("j" %in% dotArgs)
Browse code

Fixed several bugs in the CA, CB, ACN functions. Updated the copynumber vignette

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/crlmm@49132 bc3139a8-67e5-0310-9ffc-ced21a209358

Rob Scharp authored on 30/08/2010 19:40:42
Showing 1 changed files
... ...
@@ -3,7 +3,8 @@ setMethod("Ns", signature(object="AssayData"),
3 3
 		  dotArgs <- names(list(...))
4 4
 		  missing.i <- !("i" %in% dotArgs)
5 5
 		  missing.j <- !("j" %in% dotArgs)
6
-		  batchnames <- batchNames(object)
6
+		  if(!missing.j) j <- list(...)[["j"]]
7
+		  batchnames <- sampleNames(object)
7 8
 		  if(!missing.j) batchnames <- batchnames[j]
8 9
 		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
9 10
 		  N.AA <- as.matrix(assayDataElement(object, "N.AA")[...])
... ...
@@ -46,7 +47,8 @@ setMethod("corr", signature(object="AssayData"),
46 47
 		  dotArgs <- names(list(...))
47 48
 		  missing.i <- !("i" %in% dotArgs)
48 49
 		  missing.j <- !("j" %in% dotArgs)
49
-		  batchnames <- batchNames(object)
50
+		  if(!missing.j) j <- list(...)[["j"]]
51
+		  batchnames <- sampleNames(object)
50 52
 		  if(!missing.j) batchnames <- batchnames[j]
51 53
 		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
52 54
 		  corrAA <- as.matrix(assayDataElement(object, "corrAA")[...])
... ...
@@ -90,7 +92,8 @@ setMethod("medians", signature(object="AssayData"),
90 92
 		  dotArgs <- names(list(...))
91 93
 		  missing.i <- !("i" %in% dotArgs)
92 94
 		  missing.j <- !("j" %in% dotArgs)
93
-		  batchnames <- batchNames(object)
95
+		  if(!missing.j) j <- list(...)[["j"]]
96
+		  batchnames <- sampleNames(object)
94 97
 		  if(!missing.j) batchnames <- batchnames[j]
95 98
 		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
96 99
 		  medianA.AA <- as.matrix(assayDataElement(object, "medianA.AA")[...])
... ...
@@ -154,7 +157,8 @@ setMethod("mads", signature(object="AssayData"),
154 157
 		  dotArgs <- names(list(...))
155 158
 		  missing.i <- !("i" %in% dotArgs)
156 159
 		  missing.j <- !("j" %in% dotArgs)
157
-		  batchnames <- batchNames(object)
160
+		  batchnames <- sampleNames(object)
161
+		  if(!missing.j) j <- list(...)[["j"]]
158 162
 		  if(!missing.j) batchnames <- batchnames[j]
159 163
 		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
160 164
 		  madA.AA <- as.matrix(assayDataElement(object, "madA.AA")[...])
... ...
@@ -216,26 +220,27 @@ setMethod("mads", signature(object="AssayData"),
216 220
 
217 221
 
218 222
 setMethod("tau2", signature(object="AssayData"),
219
-	  function(object, allele, batchname){
220
-		  stopifnot(!missing(allele))
221
-		  if(missing(batchname) & length(sampleNames(object)) > 1)
222
-			  stop("must supply batchname")
223
-		  if(!missing(batchname)){
224
-			  stopifnot(batchname %in% batchNames(object))
225
-			  j <- match(batchname, sampleNames(object))
226
-		  } else j <- 1
227
-		  getTaus <- function(allele){
228
-			  switch(allele,
229
-				 A=cbind(assayDataElement(object, "tau2A.AA")[, j],
230
-				         assayDataElement(object, "tau2A.AB")[, j],
231
-         			         assayDataElement(object, "tau2A.BB")[, j]),
232
-				 B=cbind(assayDataElement(object, "tau2B.AA")[, j],
233
-				         assayDataElement(object, "tau2B.AB")[, j],
234
-				         assayDataElement(object, "tau2B.BB")[, j]),
235
-				 stop("allele must be 'A' or 'B'")
236
-				 )
237
-		  }
238
-		  getTaus(allele)
223
+	  function(object, ...){
224
+		  dotArgs <- names(list(...))
225
+		  missing.i <- !("i" %in% dotArgs)
226
+		  missing.j <- !("j" %in% dotArgs)
227
+		  batchnames <- sampleNames(object)
228
+		  if(!missing.j) j <- list(...)[["j"]]
229
+		  if(!missing.j) batchnames <- batchnames[j]
230
+		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
231
+		  tau2A.AA <- as.matrix(assayDataElement(object, "tau2A.AA")[...])
232
+		  tau2A.BB <- as.matrix(assayDataElement(object, "tau2A.BB")[...])
233
+		  tau2B.AA <- as.matrix(assayDataElement(object, "tau2B.AA")[...])
234
+		  tau2B.BB <- as.matrix(assayDataElement(object, "tau2B.BB")[...])
235
+		  res <- array(NA, dim=c(nrow(tau2A.AA), 2, 2, ncol(tau2A.AA)))
236
+		  dimnames(res)[[2]] <- c("A", "B")
237
+		  dimnames(res)[[3]] <- c("AA", "BB")
238
+		  dimnames(res)[[4]] <- batchnames
239
+		  res[, "A", "AA", ] <- tau2A.AA
240
+		  res[, "A", "BB", ] <- tau2A.BB
241
+		  res[, "B", "AA", ] <- tau2B.AA
242
+		  res[, "B", "BB", ] <- tau2B.BB
243
+		  return(res)
239 244
 })
240 245
 
241 246
 
Browse code

constructIlluminaAssayData allows for either ff or matrices. Fixed bug in accessors for medians, mads, ...

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/crlmm@49131 bc3139a8-67e5-0310-9ffc-ced21a209358

Rob Scharp authored on 30/08/2010 19:40:33
Showing 1 changed files
... ...
@@ -1,11 +1,15 @@
1 1
 setMethod("Ns", signature(object="AssayData"),
2
-	  function(object, i, j, ...){
3
-		  if(!missing(j)){
4
-			  batchnames <- unique(as.character(batch(object)[j]))
5
-		  } else batchnames <- batchNames(object)
6
-		  nc <- length(batchnames)
7
-		  if(!missing(i)) nr <- length(i) else nr <- nrow(object)
8
-		  res <- array(NA, dim=c(nr, 3, nc))
2
+	  function(object, ...){
3
+		  dotArgs <- names(list(...))
4
+		  missing.i <- !("i" %in% dotArgs)
5
+		  missing.j <- !("j" %in% dotArgs)
6
+		  batchnames <- batchNames(object)
7
+		  if(!missing.j) batchnames <- batchnames[j]
8
+		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
9
+		  N.AA <- as.matrix(assayDataElement(object, "N.AA")[...])
10
+		  N.AB <- as.matrix(assayDataElement(object, "N.AB")[...])
11
+		  N.BB <- as.matrix(assayDataElement(object, "N.BB")[...])
12
+		  res <- array(NA, dim=c(nrow(N.AA), 3, ncol(N.AA)))
9 13
 		  dimnames(res)[[2]] <- c("AA", "AB", "BB")
10 14
 		  dimnames(res)[[3]] <- batchnames
11 15
 		  if(missing(i) & missing(j)){
... ...
@@ -39,12 +43,16 @@ setMethod("Ns", signature(object="AssayData"),
39 43
 	  })
40 44
 setMethod("corr", signature(object="AssayData"),
41 45
 	  function(object, i, j, ...){
42
-		  if(!missing(j)){
43
-			  batchnames <- unique(as.character(batch(object)[j]))
44
-		  } else batchnames <- batchNames(object)
45
-		  nc <- length(batchnames)
46
-		  if(!missing(i)) nr <- length(i) else nr <- nrow(object)
47
-		  res <- array(NA, dim=c(nr, 3, nc))
46
+		  dotArgs <- names(list(...))
47
+		  missing.i <- !("i" %in% dotArgs)
48
+		  missing.j <- !("j" %in% dotArgs)
49
+		  batchnames <- batchNames(object)
50
+		  if(!missing.j) batchnames <- batchnames[j]
51
+		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
52
+		  corrAA <- as.matrix(assayDataElement(object, "corrAA")[...])
53
+		  corrAB <- as.matrix(assayDataElement(object, "corrAB")[...])
54
+		  corrBB <- as.matrix(assayDataElement(object, "corrBB")[...])
55
+		  res <- array(NA, dim=c(nrow(corrAA), 3, ncol(corrAA)))
48 56
 		  dimnames(res)[[2]] <- c("AA", "AB", "BB")
49 57
 		  dimnames(res)[[3]] <- batchnames
50 58
 		  if(missing(i) & missing(j)){
... ...
@@ -78,13 +86,20 @@ setMethod("corr", signature(object="AssayData"),
78 86
 	  })
79 87
 
80 88
 setMethod("medians", signature(object="AssayData"),
81
-	  function(object, i, j, ...){
82
-		  if(!missing(j)){
83
-			  batchnames <- unique(as.character(batch(object)[j]))
84
-		  } else batchnames <- batchNames(object)
85
-		  nc <- length(batchnames)
86
-		  if(!missing(i)) nr <- length(i) else nr <- nrow(object)
87
-		  res <- array(NA, dim=c(nr, 2, 3, nc))
89
+	  function(object, ...){
90
+		  dotArgs <- names(list(...))
91
+		  missing.i <- !("i" %in% dotArgs)
92
+		  missing.j <- !("j" %in% dotArgs)
93
+		  batchnames <- batchNames(object)
94
+		  if(!missing.j) batchnames <- batchnames[j]
95
+		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
96
+		  medianA.AA <- as.matrix(assayDataElement(object, "medianA.AA")[...])
97
+		  medianA.AB <- as.matrix(assayDataElement(object, "medianA.AB")[...])
98
+		  medianA.BB <- as.matrix(assayDataElement(object, "medianA.BB")[...])
99
+		  medianB.AA <- as.matrix(assayDataElement(object, "medianB.AA")[...])
100
+		  medianB.AB <- as.matrix(assayDataElement(object, "medianB.AB")[...])
101
+		  medianB.BB <- as.matrix(assayDataElement(object, "medianB.BB")[...])
102
+		  res <- array(NA, dim=c(nrow(medianA.AA), 2, 3, ncol(medianA.AA)))
88 103
 		  dimnames(res)[[2]] <- c("A", "B")
89 104
 		  dimnames(res)[[3]] <- c("AA", "AB", "BB")
90 105
 		  dimnames(res)[[4]] <- batchnames
... ...
@@ -134,14 +149,21 @@ setMethod("medians", signature(object="AssayData"),
134 149
 		  return(res)
135 150
 })
136 151
 
137
-setMethod("medians", signature(object="AssayData"),
138
-	  function(object, i, j, ...){
139
-		  if(!missing(j)){
140
-			  batchnames <- unique(as.character(batch(object)[j]))
141
-		  } else batchnames <- batchNames(object)
142
-		  nc <- length(batchnames)
143
-		  if(!missing(i)) nr <- length(i) else nr <- nrow(object)
144
-		  res <- array(NA, dim=c(nr, 2, 3, nc))
152
+setMethod("mads", signature(object="AssayData"),
153
+	  function(object, ...){
154
+		  dotArgs <- names(list(...))
155
+		  missing.i <- !("i" %in% dotArgs)
156
+		  missing.j <- !("j" %in% dotArgs)
157
+		  batchnames <- batchNames(object)
158
+		  if(!missing.j) batchnames <- batchnames[j]
159
+		  if(missing.i & missing.j) stop("Must specify either the rows i or batches j")
160
+		  madA.AA <- as.matrix(assayDataElement(object, "madA.AA")[...])
161
+		  madA.AB <- as.matrix(assayDataElement(object, "madA.AB")[...])
162
+		  madA.BB <- as.matrix(assayDataElement(object, "madA.BB")[...])
163
+		  madB.AA <- as.matrix(assayDataElement(object, "madB.AA")[...])
164
+		  madB.AB <- as.matrix(assayDataElement(object, "madB.AB")[...])
165
+		  madB.BB <- as.matrix(assayDataElement(object, "madB.BB")[...])
166
+		  res <- array(NA, dim=c(nrow(madA.AA), 2, 3, ncol(madA.AA)))
145 167
 		  dimnames(res)[[2]] <- c("A", "B")
146 168
 		  dimnames(res)[[3]] <- c("AA", "AB", "BB")
147 169
 		  dimnames(res)[[4]] <- batchnames
Browse code

methods Ns, medians, corr, and mads return arrays.

Ns and corr return an array with dimension: features x genotype x batch

medians and mads return an array with dimension: features x allele x genotype x batch

git-svn-id: file:///home/git/hedgehog.fhcrc.org/bioconductor/trunk/madman/Rpacks/crlmm@48964 bc3139a8-67e5-0310-9ffc-ced21a209358

Rob Scharp authored on 21/08/2010 02:50:19
Showing 1 changed files
... ...
@@ -1,99 +1,198 @@
1 1
 setMethod("Ns", signature(object="AssayData"),
2
-	  function(object, genotype, batchname){
3
-		  if(missing(batchname) & length(sampleNames(object)) > 1)
4
-			  stop("must supply batchname")
5
-		  if(!missing(batchname)){
6
-			  stopifnot(batchname %in% batchNames(object))
7
-			  j <- match(batchname, sampleNames(object))
8
-		  } else j <- 1
9
-		  if(missing(genotype)){
10
-			  res <- cbind(assayDataElement(object, "N.AA")[, j],
11
-				       assayDataElement(object, "N.AB")[, j],
12
-				       assayDataElement(object, "N.BB")[, j])
13
-			  return(res)
14
-		  } else{
15
-			  getValue <- function(genotype){
16
-				  switch(genotype,
17
-					 AA="N.AA",
18
-					 AB="N.AB",
19
-					 BB="N.BB",
20
-					 stop("allele must be 'AA', 'AB', or 'BB'"))
21
-			  }
22
-			  val <- getValue(genotype)
23
-			  return(assayDataElement(object, val)[, j])
2
+	  function(object, i, j, ...){
3
+		  if(!missing(j)){
4
+			  batchnames <- unique(as.character(batch(object)[j]))
5
+		  } else batchnames <- batchNames(object)
6
+		  nc <- length(batchnames)
7
+		  if(!missing(i)) nr <- length(i) else nr <- nrow(object)
8
+		  res <- array(NA, dim=c(nr, 3, nc))
9
+		  dimnames(res)[[2]] <- c("AA", "AB", "BB")
10
+		  dimnames(res)[[3]] <- batchnames
11
+		  if(missing(i) & missing(j)){
12
+			  N.AA <- as.matrix(assayDataElement(object, "N.AA"))
13
+			  N.AB <- as.matrix(assayDataElement(object, "N.AB"))
14
+			  N.BB <- as.matrix(assayDataElement(object, "N.BB"))
15
+		  }
16
+		  if(missing(i) & !missing(j)){
17
+			  J <- match(batchnames, batchNames(object))
18
+			  stopifnot(length(J) > 0 & !all(is.na(J)))
19
+			  N.AA <- as.matrix(assayDataElement(object, "N.AA"))[, J, ...]
20
+			  N.AB <- as.matrix(assayDataElement(object, "N.AB"))[, J, ...]
21
+			  N.BB <- as.matrix(assayDataElement(object, "N.BB"))[, J, ...]
24 22
 		  }
23
+		  if(!missing(i) & !missing(j)){
24
+			  J <- match(batchnames, batchNames(object))
25
+			  stopifnot(length(J) > 0 & !all(is.na(J)))
26
+			  N.AA <- as.matrix(assayDataElement(object, "N.AA"))[i, J, ...]
27
+			  N.AB <- as.matrix(assayDataElement(object, "N.AB"))[i, J, ...]
28
+			  N.BB <- as.matrix(assayDataElement(object, "N.BB"))[i, J, ...]
29
+		  }
30
+		  if(!missing(i) & missing(j)){
31
+			  N.AA <- as.matrix(assayDataElement(object, "N.AA"))[i, , ...]
32
+			  N.AB <- as.matrix(assayDataElement(object, "N.AB"))[i, , ...]
33
+			  N.BB <- as.matrix(assayDataElement(object, "N.BB"))[i, , ...]
34
+		  }
35
+		  res[, "AA", ] <- N.AA
36
+		  res[, "AB", ] <- N.AB
37
+		  res[, "BB", ] <- N.BB
38
+		  return(res)
25 39
 	  })
26 40
 setMethod("corr", signature(object="AssayData"),
27
-	  function(object, genotype, batchname){
28
-		  if(missing(batchname) & length(sampleNames(object)) > 1)
29
-			  stop("must supply batchname")
30
-		  if(!missing(batchname)){
31
-			  stopifnot(batchname %in% batchNames(object))
32
-			  j <- match(batchname, sampleNames(object))
33
-		  } else j <- 1
34
-		  if(missing(genotype)){
35
-			  res <- cbind(assayDataElement(object, "corrAA")[, j],
36
-				       assayDataElement(object, "corrAB")[, j],
37
-				       assayDataElement(object, "corrBB")[, j])
38
-			  return(res)
39
-		  } else{
40
-			  getValue <- function(genotype){
41
-				  switch(genotype,
42
-					 AA="corrAA",
43
-					 AB="corrAB",
44
-					 BB="corrBB",
45
-					 stop("allele must be 'AA', 'AB', or 'BB'"))
46
-			  }
47
-			  val <- getValue(genotype)
48
-			  return(assayDataElement(object, val)[, j])
41
+	  function(object, i, j, ...){
42
+		  if(!missing(j)){
43
+			  batchnames <- unique(as.character(batch(object)[j]))
44
+		  } else batchnames <- batchNames(object)
45
+		  nc <- length(batchnames)
46
+		  if(!missing(i)) nr <- length(i) else nr <- nrow(object)
47
+		  res <- array(NA, dim=c(nr, 3, nc))
48
+		  dimnames(res)[[2]] <- c("AA", "AB", "BB")
49
+		  dimnames(res)[[3]] <- batchnames
50
+		  if(missing(i) & missing(j)){
51
+			  corrAA <- as.matrix(assayDataElement(object, "corrAA"))
52
+			  corrAB <- as.matrix(assayDataElement(object, "corrAB"))
53
+			  corrBB <- as.matrix(assayDataElement(object, "corrBB"))
54
+		  }
55
+		  if(missing(i) & !missing(j)){
56
+			  J <- match(batchnames, batchNames(object))
57
+			  stopifnot(length(J) > 0 & !all(is.na(J)))
58
+			  corrAA <- as.matrix(assayDataElement(object, "corrAA"))[, J, ...]
59
+			  corrAB <- as.matrix(assayDataElement(object, "corrAB"))[, J, ...]
60
+			  corrBB <- as.matrix(assayDataElement(object, "corrBB"))[, J, ...]
61
+		  }
62
+		  if(!missing(i) & !missing(j)){
63
+			  J <- match(batchnames, batchNames(object))
64
+			  stopifnot(length(J) > 0 & !all(is.na(J)))
65
+			  corrAA <- as.matrix(assayDataElement(object, "corrAA"))[i, J, ...]
66
+			  corrAB <- as.matrix(assayDataElement(object, "corrAB"))[i, J, ...]
67
+			  corrBB <- as.matrix(assayDataElement(object, "corrBB"))[i, J, ...]
49 68
 		  }
69
+		  if(!missing(i) & missing(j)){
70
+			  corrAA <- as.matrix(assayDataElement(object, "corrAA"))[i, , ...]
71
+			  corrAB <- as.matrix(assayDataElement(object, "corrAB"))[i, , ...]
72
+			  corrBB <- as.matrix(assayDataElement(object, "corrBB"))[i, , ...]
73
+		  }
74
+		  res[, "AA", ] <- corrAA
75
+		  res[, "AB", ] <- corrAB
76
+		  res[, "BB", ] <- corrBB
77
+		  return(res)
50 78
 	  })
51 79
 
52 80
 setMethod("medians", signature(object="AssayData"),
53
-	  function(object, allele, batchname){
54
-		  stopifnot(!missing(allele))
55
-		  if(missing(batchname) & length(sampleNames(object)) > 1)
56
-			  stop("must supply batchname")
57
-		  if(!missing(batchname)){
58
-			  stopifnot(batchname %in% batchNames(object))
59
-			  j <- match(batchname, sampleNames(object))
60
-		  } else j <- 1
61
-		  getMedians <- function(allele){
62
-			  switch(allele,
63
-				 A=cbind(assayDataElement(object, "medianA.AA")[, j],
64
-				         assayDataElement(object, "medianA.AB")[, j],
65
-         			         assayDataElement(object, "medianA.BB")[, j]),
66
-				 B=cbind(assayDataElement(object, "medianB.AA")[, j],
67
-				         assayDataElement(object, "medianB.AB")[, j],
68
-				         assayDataElement(object, "medianB.BB")[, j]),
69
-				 stop("allele must be 'A' or 'B'")
70
-				 )
81
+	  function(object, i, j, ...){
82
+		  if(!missing(j)){
83
+			  batchnames <- unique(as.character(batch(object)[j]))
84
+		  } else batchnames <- batchNames(object)
85
+		  nc <- length(batchnames)
86
+		  if(!missing(i)) nr <- length(i) else nr <- nrow(object)
87
+		  res <- array(NA, dim=c(nr, 2, 3, nc))
88
+		  dimnames(res)[[2]] <- c("A", "B")
89
+		  dimnames(res)[[3]] <- c("AA", "AB", "BB")
90
+		  dimnames(res)[[4]] <- batchnames
91
+		  if(missing(i) & missing(j)){
92
+			  medianA.AA <- as.matrix(assayDataElement(object, "medianA.AA"))
93
+			  medianA.AB <- as.matrix(assayDataElement(object, "medianA.AB"))
94
+			  medianA.BB <- as.matrix(assayDataElement(object, "medianA.BB"))
95
+			  medianB.AA <- as.matrix(assayDataElement(object, "medianB.AA"))
96
+			  medianB.AB <- as.matrix(assayDataElement(object, "medianB.AB"))
97
+			  medianB.BB <- as.matrix(assayDataElement(object, "medianB.BB"))
98
+		  }
99
+		  if(missing(i) & !missing(j)){
100
+			  J <- match(batchnames, batchNames(object))
101
+			  stopifnot(length(J) > 0 & !all(is.na(J)))
102
+			  medianA.AA <- as.matrix(assayDataElement(object, "medianA.AA"))[, J, ...]
103
+			  medianA.AB <- as.matrix(assayDataElement(object, "medianA.AB"))[, J, ...]
104
+			  medianA.BB <- as.matrix(assayDataElement(object, "medianA.BB"))[, J, ...]
105
+			  medianB.AA <- as.matrix(assayDataElement(object, "medianB.AA"))[, J, ...]
106
+			  medianB.AB <- as.matrix(assayDataElement(object, "medianB.AB"))[, J, ...]
107
+			  medianB.BB <- as.matrix(assayDataElement(object, "medianB.BB"))[, J, ...]
108
+
109
+		  }
110
+		  if(!missing(i) & !missing(j)){
111
+			  J <- match(batchnames, batchNames(object))
112
+			  stopifnot(length(J) > 0 & !all(is.na(J)))
113
+			  medianA.AA <- as.matrix(assayDataElement(object, "medianA.AA"))[i, J, ...]
114
+			  medianA.AB <- as.matrix(assayDataElement(object, "medianA.AB"))[i, J, ...]
115
+			  medianA.BB <- as.matrix(assayDataElement(object, "medianA.BB"))[i, J, ...]
116
+			  medianB.AA <- as.matrix(assayDataElement(object, "medianB.AA"))[i, J, ...]
117
+			  medianB.AB <- as.matrix(assayDataElement(object, "medianB.AB"))[i, J, ...]
118
+			  medianB.BB <- as.matrix(assayDataElement(object, "medianB.BB"))[i, J, ...]
119
+		  }
120
+		  if(!missing(i) & missing(j)){
121
+			  medianA.AA <- as.matrix(assayDataElement(object, "medianA.AA"))[i, ...]
122
+			  medianA.AB <- as.matrix(assayDataElement(object, "medianA.AB"))[i, ...]
123
+			  medianA.BB <- as.matrix(assayDataElement(object, "medianA.BB"))[i, ...]
124
+			  medianB.AA <- as.matrix(assayDataElement(object, "medianB.AA"))[i, ...]
125
+			  medianB.AB <- as.matrix(assayDataElement(object, "medianB.AB"))[i, ...]
126
+			  medianB.BB <- as.matrix(assayDataElement(object, "medianB.BB"))[i, ...]
71 127
 		  }
72
-		  getMedians(allele)
128
+		  res[, "A", "AA", ] <- medianA.AA
129
+		  res[, "A", "AB", ] <- medianA.AB
130
+		  res[, "A", "BB", ] <- medianA.BB
131
+		  res[, "B", "AA", ] <- medianB.AA
132
+		  res[, "B", "AB", ] <- medianB.AB
133
+		  res[, "B", "BB", ] <- medianB.BB
134
+		  return(res)
73 135
 })
74
-setMethod("mads", signature(object="AssayData"),
75
-	  function(object, allele, batchname){
76
-		  stopifnot(!missing(allele))
77
-		  if(missing(batchname) & length(sampleNames(object)) > 1)
78
-			  stop("must supply batchname")
79
-		  if(!missing(batchname)){
80
-			  stopifnot(batchname %in% batchNames(object))
81
-			  j <- match(batchname, sampleNames(object))
82
-		  } else j <- 1
83
-		  getMads <- function(allele){
84
-			  switch(allele,
85
-				 A=cbind(assayDataElement(object, "madA.AA")[, j],
86
-				         assayDataElement(object, "madA.AB")[, j],
87
-         			         assayDataElement(object, "madA.BB")[, j]),
88
-				 B=cbind(assayDataElement(object, "madB.AA")[, j],
89
-				         assayDataElement(object, "madB.AB")[, j],
90
-				         assayDataElement(object, "madB.BB")[, j]),
91
-				 stop("allele must be 'A' or 'B'")
92
-				 )
136
+
137
+setMethod("medians", signature(object="AssayData"),
138
+	  function(object, i, j, ...){
139
+		  if(!missing(j)){
140
+			  batchnames <- unique(as.character(batch(object)[j]))
141
+		  } else batchnames <- batchNames(object)
142
+		  nc <- length(batchnames)
143
+		  if(!missing(i)) nr <- length(i) else nr <- nrow(object)
144
+		  res <- array(NA, dim=c(nr, 2, 3, nc))
145
+		  dimnames(res)[[2]] <- c("A", "B")
146
+		  dimnames(res)[[3]] <- c("AA", "AB", "BB")
147
+		  dimnames(res)[[4]] <- batchnames
148
+		  if(missing(i) & missing(j)){
149
+			  madA.AA <- as.matrix(assayDataElement(object, "madA.AA"))
150
+			  madA.AB <- as.matrix(assayDataElement(object, "madA.AB"))
151
+			  madA.BB <- as.matrix(assayDataElement(object, "madA.BB"))
152
+			  madB.AA <- as.matrix(assayDataElement(object, "madB.AA"))
153
+			  madB.AB <- as.matrix(assayDataElement(object, "madB.AB"))
154
+			  madB.BB <- as.matrix(assayDataElement(object, "madB.BB"))
93 155
 		  }
94
-		  getMads(allele)
156
+		  if(missing(i) & !missing(j)){
157
+			  J <- match(batchnames, batchNames(object))
158
+			  stopifnot(length(J) > 0 & !all(is.na(J)))
159
+			  madA.AA <- as.matrix(assayDataElement(object, "madA.AA"))[, J, ...]
160
+			  madA.AB <- as.matrix(assayDataElement(object, "madA.AB"))[, J, ...]
161
+			  madA.BB <- as.matrix(assayDataElement(object, "madA.BB"))[, J, ...]
162