Browse code

rename omat as counts

Irisapo authored on 13/03/2019 14:40:11
Showing 4 changed files

... ...
@@ -61,22 +61,22 @@ simulateObservedMatrix = function(C=300, G=100, K=3, N.Range=c(500,1000), beta =
61 61
 
62 62
 # This function calculates the log-likelihood
63 63
 # 
64
-# omat Numeric/Integer matrix. Observed count matrix, rows represent features and columns represent cells
64
+# counts Numeric/Integer matrix. Observed count matrix, rows represent features and columns represent cells
65 65
 # z Integer vector. Cell population labels
66 66
 # phi Numeric matrix. Rows represent features and columns represent cell populations
67 67
 # eta Numeric matrix. Rows represent features and columns represent cell populations 
68 68
 # theta Numeric vector. Proportion of truely expressed transcripts
69
-decon.calcLL = function(omat, z,  phi, eta, theta){
70
-  #ll = sum( t(omat) * log( (1-conP )*geneDist[z,] + conP * conDist[z, ] + 1e-20 ) )  # when dist_mat are K x G matrices
71
-  ll = sum( t(omat) * log( theta * t(phi)[z,] + (1-theta) * t(eta)[z,]  + 1e-20  ))   
69
+decon.calcLL = function(counts, z,  phi, eta, theta){
70
+  #ll = sum( t(counts) * log( (1-conP )*geneDist[z,] + conP * conDist[z, ] + 1e-20 ) )  # when dist_mat are K x G matrices
71
+  ll = sum( t(counts) * log( theta * t(phi)[z,] + (1-theta) * t(eta)[z,]  + 1e-20  ))   
72 72
   return(ll)
73 73
 }
74 74
 
75 75
 # This function calculates the log-likelihood of background distribution decontamination
76 76
 #
77 77
 # bgDist Numeric matrix. Rows represent feature and columns are the times that the background-distribution has been replicated. 
78
-bg.calcLL = function(omat, cellDist, bgDist, theta){
79
-  ll = sum( t(omat) * log( theta * t(cellDist) + (1-theta) * t(bgDist) + 1e-20) ) 
78
+bg.calcLL = function(counts, cellDist, bgDist, theta){
79
+  ll = sum( t(counts) * log( theta * t(cellDist) + (1-theta) * t(bgDist) + 1e-20) ) 
80 80
   return(ll) 
81 81
 }
82 82
 
... ...
@@ -86,7 +86,7 @@ bg.calcLL = function(omat, cellDist, bgDist, theta){
86 86
 #  phi Numeric matrix. Rows represent features and columns represent cell populations
87 87
 #  eta Numeric matrix. Rows represent features and columns represent cell populations
88 88
 #  theta Numeric vector. Proportion of truely expressed transctripts
89
-cD.calcEMDecontamination = function(omat, phi, eta, theta,  z, K, beta, delta ) {
89
+cD.calcEMDecontamination = function(counts, phi, eta, theta,  z, K, beta, delta ) {
90 90
 
91 91
    # Notes: use fix-point iteration to update prior for theta, no need to feed delta anymore
92 92
    log.Pr = log(  t(phi)[z,] + 1e-20) + log(theta + 1e-20 )
... ...
@@ -96,12 +96,12 @@ cD.calcEMDecontamination = function(omat, phi, eta, theta,  z, K, beta, delta )
96 96
    Pc = 1 - Pr 
97 97
    delta.v2 = MCMCprecision::fit_dirichlet( matrix( c( Pr, Pc) , ncol = 2 ) )$alpha 
98 98
    
99
-   est.rmat = t(Pr) * omat 
99
+   est.rmat = t(Pr) * counts 
100 100
    rn.G.by.K = colSumByGroup.numeric(est.rmat, z, K)  
101 101
    cn.G.by.K = rowSums(rn.G.by.K) - rn.G.by.K 
102 102
 
103 103
    #update parameters 
104
-   theta = (colSums(est.rmat) + delta.v2[1]) / (colSums(omat) + sum(delta.v2)  )  
104
+   theta = (colSums(est.rmat) + delta.v2[1]) / (colSums(counts) + sum(delta.v2)  )  
105 105
    phi  = normalizeCounts(rn.G.by.K, normalize="proportion",  pseudocount.normalize =beta ) 
106 106
    eta  = normalizeCounts(cn.G.by.K, normalize="proportion",  pseudocount.normalize = beta) 
107 107
 
... ...
@@ -111,18 +111,18 @@ cD.calcEMDecontamination = function(omat, phi, eta, theta,  z, K, beta, delta )
111 111
 
112 112
 # This function updates decontamination using background distribution 
113 113
 # 
114
-cD.calcEMbgDecontamination = function(omat, cellDist, bgDist, theta, beta, delta){
114
+cD.calcEMbgDecontamination = function(counts, cellDist, bgDist, theta, beta, delta){
115 115
 
116
-  meanN.by.C = apply(omat, 2, mean) 
117
-  log.Pr = log( t(cellDist) + 1e-20) + log( theta + 1e-20) # + log( t(omat) / meanN.by.C )   # better when without panelty 
116
+  meanN.by.C = apply(counts, 2, mean) 
117
+  log.Pr = log( t(cellDist) + 1e-20) + log( theta + 1e-20) # + log( t(counts) / meanN.by.C )   # better when without panelty 
118 118
   log.Pc = log( t(bgDist)  + 1e-20) + log( 1-theta + 2e-20) 
119 119
 
120 120
   Pr = exp( log.Pr) / (exp(log.Pr) + exp( log.Pc) ) 
121 121
 
122
-  est.rmat = t(Pr) * omat
122
+  est.rmat = t(Pr) * counts
123 123
 
124 124
   # Update paramters 
125
-  theta = (colSums(est.rmat) + delta) / (colSums(omat) + 2*delta) 
125
+  theta = (colSums(est.rmat) + delta) / (colSums(counts) + 2*delta) 
126 126
   cellDist = normalizeCounts(est.rmat, normalize="proportion", pseudocount.normalize =beta) 
127 127
 
128 128
   return( list("est.rmat"=est.rmat, "theta"=theta, "cellDist"=cellDist) ) 
... ...
@@ -130,7 +130,7 @@ cD.calcEMbgDecontamination = function(omat, cellDist, bgDist, theta, beta, delta
130 130
 
131 131
 
132 132
 #' This function updates decontamination on dataset with multiple batches 
133
-#' @param omat Numeric/Integer matrix. Observed count matrix, rows represent features and columns represent cells. 
133
+#' @param counts Numeric/Integer matrix. Observed count matrix, rows represent features and columns represent cells. 
134 134
 #' @param z Integer vector. Cell population labels. Default NULL 
135 135
 #' @param batch Integer vector. Cell batch labels. Default NULL
136 136
 #' @param max.iter Integer. Maximum iterations of EM algorithm. Default to be 200 
... ...
@@ -140,26 +140,26 @@ cD.calcEMbgDecontamination = function(omat, cellDist, bgDist, theta, beta, delta
140 140
 #' @param verbose Logical. Whether to print log messages. Default TRUE
141 141
 #' @param seed Integer. Passed to set.seed(). Default to be 1234567. If NULL, no calls to `set.seed()` are made.
142 142
 #' @examples 
143
-#' decon.c = DecontX( omat = contamination.sim$rmat + contamination.sim$cmat, z=contamination.sim$z, max.iter=3)
144
-#' decon.bg = DecontX( omat=contamination.sim$rmat + contamination.sim$cmat, max.iter=3 ) 
143
+#' decon.c = DecontX( counts = contamination.sim$rmat + contamination.sim$cmat, z=contamination.sim$z, max.iter=3)
144
+#' decon.bg = DecontX( counts=contamination.sim$rmat + contamination.sim$cmat, max.iter=3 ) 
145 145
 #' @export 
146
-DecontX = function( omat , z=NULL, batch=NULL,  max.iter=200, beta=1e-6, delta=10, logfile=NULL, verbose=TRUE, seed=1234567 ) {
146
+DecontX = function( counts , z=NULL, batch=NULL,  max.iter=200, beta=1e-6, delta=10, logfile=NULL, verbose=TRUE, seed=1234567 ) {
147 147
   
148 148
 
149 149
   if ( !is.null(batch) ) { 
150 150
       
151 151
       # Set result lists upfront for all cells from different batches 
152 152
       logLikelihood = c() 
153
-      est.rmat = matrix(NA, ncol = ncol(omat) , nrow = nrow(omat ) , dimnames = list( rownames( omat) , colnames( omat ) )      ) 
154
-      theta = rep(NA, ncol(omat ) ) 
155
-      est.conp = rep(NA, ncol(omat) ) 
153
+      est.rmat = matrix(NA, ncol = ncol(counts) , nrow = nrow(counts ) , dimnames = list( rownames( counts) , colnames( counts ) )      ) 
154
+      theta = rep(NA, ncol(counts ) ) 
155
+      est.conp = rep(NA, ncol(counts) ) 
156 156
 
157 157
       batch.index = unique(batch) 
158 158
 
159 159
       for ( BATCH in batch.index ) {  
160
-          omat.BATCH = omat[, batch == BATCH  ]
160
+          counts.BATCH = counts[, batch == BATCH  ]
161 161
           if( !is.null(z) ) { z.BATCH = z[ batch == BATCH ]  }  else { z.BATCH = z } 
162
-          res.BATCH = DecontXoneBatch( omat = omat.BATCH, z = z.BATCH, batch = BATCH  ,max.iter = max.iter, beta = beta, delta = delta, logfile=logfile, verbose=verbose, seed=seed ) 
162
+          res.BATCH = DecontXoneBatch( counts = counts.BATCH, z = z.BATCH, batch = BATCH  ,max.iter = max.iter, beta = beta, delta = delta, logfile=logfile, verbose=verbose, seed=seed ) 
163 163
 
164 164
           est.rmat[, batch == BATCH ] = res.BATCH$res.list$est.rmat
165 165
           est.conp[ batch == BATCH ] = res.BATCH$res.list$est.conp 
... ...
@@ -179,7 +179,7 @@ DecontX = function( omat , z=NULL, batch=NULL,  max.iter=200, beta=1e-6, delta=1
179 179
       return( list("run.params"=run.params, "res.list"=res.list, "method"=method )  ) 
180 180
   } 
181 181
 
182
-  return( DecontXoneBatch( omat = omat, z = z, max.iter = max.iter, beta = beta, delta = delta, logfile=logfile, verbose=verbose, seed=seed )  ) 
182
+  return( DecontXoneBatch( counts = counts, z = z, max.iter = max.iter, beta = beta, delta = delta, logfile=logfile, verbose=verbose, seed=seed )  ) 
183 183
 
184 184
 }
185 185
 
... ...
@@ -188,13 +188,13 @@ DecontX = function( omat , z=NULL, batch=NULL,  max.iter=200, beta=1e-6, delta=1
188 188
 
189 189
 # This function updates decontamination for one batch  
190 190
 #
191
-DecontXoneBatch = function(omat, z=NULL, batch= NULL,  max.iter=200, beta=1e-6, delta=10, logfile=NULL, verbose=TRUE, seed=1234567 ) {
191
+DecontXoneBatch = function(counts, z=NULL, batch= NULL,  max.iter=200, beta=1e-6, delta=10, logfile=NULL, verbose=TRUE, seed=1234567 ) {
192 192
 
193
-  checkCounts.decon(omat)
193
+  checkCounts.decon(counts)
194 194
   checkParameters.decon(proportion.prior=delta, distribution.prior=beta) 
195 195
 
196
-  nG = nrow(omat)
197
-  nC = ncol(omat)
196
+  nG = nrow(counts)
197
+  nC = ncol(counts)
198 198
   K =  length(unique(z)) 
199 199
  
200 200
   if ( is.null(z) ) {
... ...
@@ -225,7 +225,7 @@ DecontXoneBatch = function(omat, z=NULL, batch= NULL,  max.iter=200, beta=1e-6,
225 225
 
226 226
   # Initialization
227 227
   theta  = runif(nC, min = 0.1, max = 0.5)  
228
-  est.rmat = t (t(omat) * theta )       
228
+  est.rmat = t (t(counts) * theta )       
229 229
   phi =   colSumByGroup.numeric(est.rmat, z, K)
230 230
   eta =   rowSums(phi) - phi 
231 231
   phi = normalizeCounts(phi, normalize="proportion", pseudocount.normalize =beta )
... ...
@@ -233,14 +233,14 @@ DecontXoneBatch = function(omat, z=NULL, batch= NULL,  max.iter=200, beta=1e-6,
233 233
   ll = c()
234 234
   
235 235
 
236
-  ll.round =  decon.calcLL(omat=omat, z=z, phi = phi, eta = eta, theta=theta ) 
236
+  ll.round =  decon.calcLL(counts=counts, z=z, phi = phi, eta = eta, theta=theta ) 
237 237
 
238 238
 
239 239
   # EM updates
240 240
   while (iter <=  max.iter &  num.iter.without.improvement <= stop.iter  ) {
241 241
 
242 242
 
243
-    next.decon = cD.calcEMDecontamination(omat=omat, phi=phi, eta=eta, theta=theta, z=z, K=K,  beta=beta, delta=delta) 
243
+    next.decon = cD.calcEMDecontamination(counts=counts, phi=phi, eta=eta, theta=theta, z=z, K=K,  beta=beta, delta=delta) 
244 244
 
245 245
     theta = next.decon$theta 
246 246
     phi = next.decon$phi
... ...
@@ -248,7 +248,7 @@ DecontXoneBatch = function(omat, z=NULL, batch= NULL,  max.iter=200, beta=1e-6,
248 248
     delta = next.decon$delta
249 249
 
250 250
     # Calculate log-likelihood
251
-    ll.temp = decon.calcLL(omat=omat, z=z, phi = phi, eta = eta, theta=theta )
251
+    ll.temp = decon.calcLL(counts=counts, z=z, phi = phi, eta = eta, theta=theta )
252 252
     ll  = c(ll, ll.temp)
253 253
     ll.round = c( ll.round, round( ll.temp, 2) )  
254 254
 
... ...
@@ -267,27 +267,27 @@ DecontXoneBatch = function(omat, z=NULL, batch= NULL,  max.iter=200, beta=1e-6,
267 267
 
268 268
   # Initialization
269 269
   theta = runif( nC, min =0.1, max=0.5) 
270
-  est.rmat = t( t(omat) *theta) 
271
-  bgDist = rowSums( omat ) / sum( omat) 
270
+  est.rmat = t( t(counts) *theta) 
271
+  bgDist = rowSums( counts ) / sum( counts) 
272 272
   bgDist = matrix( rep( bgDist, nC), ncol=nC) 
273 273
   cellDist = normalizeCounts( est.rmat, normalize="proportion", pseudocount.normalize=beta) 
274 274
   ll =c()
275 275
 
276 276
 
277
-  ll.round = bg.calcLL(omat=omat, cellDist=cellDist, bgDist=bgDist, theta=theta)  
277
+  ll.round = bg.calcLL(counts=counts, cellDist=cellDist, bgDist=bgDist, theta=theta)  
278 278
 
279 279
 
280 280
   # EM updates
281 281
     while (iter <=  max.iter &  num.iter.without.improvement <= stop.iter  ) { 
282 282
 
283 283
 
284
-    next.decon = cD.calcEMbgDecontamination(omat=omat, cellDist=cellDist, bgDist=bgDist, theta=theta, beta=beta, delta=delta)  
284
+    next.decon = cD.calcEMbgDecontamination(counts=counts, cellDist=cellDist, bgDist=bgDist, theta=theta, beta=beta, delta=delta)  
285 285
 
286 286
     theta = next.decon$theta
287 287
     cellDist = next.decon$cellDist
288 288
 
289 289
     # Calculate log-likelihood
290
-    ll.temp = bg.calcLL(omat=omat, cellDist=cellDist, bgDist=bgDist, theta=theta) 
290
+    ll.temp = bg.calcLL(counts=counts, cellDist=cellDist, bgDist=bgDist, theta=theta) 
291 291
     ll  = c(ll, ll.temp) 
292 292
     ll.round = c( ll.round, round( ll.temp, 2) )
293 293
 
... ...
@@ -301,7 +301,7 @@ DecontXoneBatch = function(omat, z=NULL, batch= NULL,  max.iter=200, beta=1e-6,
301 301
 
302 302
   }
303 303
 
304
-  res.conp  = 1- colSums(next.decon$est.rmat) / colSums(omat)
304
+  res.conp  = 1- colSums(next.decon$est.rmat) / colSums(counts)
305 305
 
306 306
 
307 307
   end.time = Sys.time() 
... ...
@@ -334,9 +334,9 @@ checkParameters.decon = function(proportion.prior, distribution.prior) {
334 334
 }
335 335
 
336 336
 # Make sure provided rmat is the right type
337
-checkCounts.decon = function(omat) {
338
-  if ( sum(is.na(omat)) >0   ) {
339
-    stop("Missing value in 'omat' matrix.") 
337
+checkCounts.decon = function(counts) {
338
+  if ( sum(is.na(counts)) >0   ) {
339
+    stop("Missing value in 'counts' matrix.") 
340 340
   }
341 341
 }
342 342
 
... ...
@@ -38,7 +38,7 @@ An analysis example using celda with RNASeq via vignette('celda-analysis')
38 38
 Highly expressed genes from various cells clusters will be expressed at low levels in other clusters in droplet-based systems due to contamination. DecontX will decompose an observed count matrix into a decontaminated expression matrix and a contamination matrix. The only other parameter needed is a vector of cell cluster labels. 
39 39
 
40 40
 ```
41
-new.counts = DecontX( omat = counts, z = cell.label) 
41
+new.counts = DecontX( counts = counts, z = cell.label) 
42 42
 # Decontaminated matrix: new.counts$res.list$est.rmat
43 43
 # Percentage of contamination per cell: new.counts$res.list$est.conp
44 44
 ```
... ...
@@ -4,11 +4,12 @@
4 4
 \alias{DecontX}
5 5
 \title{This function updates decontamination on dataset with multiple batches}
6 6
 \usage{
7
-DecontX(omat, z = NULL, batch = NULL, max.iter = 200, beta = 1e-06,
8
-  delta = 10, logfile = NULL, verbose = TRUE, seed = 1234567)
7
+DecontX(counts, z = NULL, batch = NULL, max.iter = 200,
8
+  beta = 1e-06, delta = 10, logfile = NULL, verbose = TRUE,
9
+  seed = 1234567)
9 10
 }
10 11
 \arguments{
11
-\item{omat}{Numeric/Integer matrix. Observed count matrix, rows represent features and columns represent cells.}
12
+\item{counts}{Numeric/Integer matrix. Observed count matrix, rows represent features and columns represent cells.}
12 13
 
13 14
 \item{z}{Integer vector. Cell population labels. Default NULL}
14 15
 
... ...
@@ -30,6 +31,6 @@ DecontX(omat, z = NULL, batch = NULL, max.iter = 200, beta = 1e-06,
30 31
 This function updates decontamination on dataset with multiple batches
31 32
 }
32 33
 \examples{
33
-decon.c = DecontX( omat = contamination.sim$rmat + contamination.sim$cmat, z=contamination.sim$z, max.iter=3)
34
-decon.bg = DecontX( omat=contamination.sim$rmat + contamination.sim$cmat, max.iter=3 ) 
34
+decon.c = DecontX( counts = contamination.sim$rmat + contamination.sim$cmat, z=contamination.sim$z, max.iter=3)
35
+decon.bg = DecontX( counts=contamination.sim$rmat + contamination.sim$cmat, max.iter=3 ) 
35 36
 }
... ...
@@ -41,16 +41,16 @@
41 41
   test_that( desc = "Testing DecontXoneBatch", {
42 42
     expect_equal( model_DecontXoneBatch$res.list$est.conp  , 1 - colSums(model_DecontXoneBatch$res.list$est.rmat) /  colSums( Decon.sim$rmat + Decon.sim$cmat) )
43 43
     expect_equal( model_DecontXoneBatch$res.list$theta, (model_DecontXoneBatch$run.params$delta + colSums(model_DecontXoneBatch$res.list$est.rmat) ) / ( 2*model_DecontXoneBatch$run.params$delta + colSums(Decon.sim$cmat + Decon.sim$rmat) ) )
44
-    expect_error( DecontXoneBatch(omat=Decon.sim$rmat+Decon.sim$cmat, z=Decon.sim$z, beta=-1), "'beta' should be a single positive value.")
45
-    expect_error( DecontXoneBatch(omat=Decon.sim$rmat+Decon.sim$cmat, z=Decon.sim$z, beta=c(1,1) ), "'beta' should be a single positive value.")
46
-    expect_error( DecontXoneBatch(omat=Decon.sim$rmat+Decon.sim$cmat, z=Decon.sim$z, delta=-1), "'delta' should be a single positive value.")
47
-    expect_error( DecontXoneBatch(omat=Decon.sim$rmat+Decon.sim$cmat, z=Decon.sim$z, delta=c(1,1) ), "'delta' should be a single positive value.")
48
-    expect_error( DecontXoneBatch(omat=Decon.sim$rmat+Decon.sim$cmat, z=c(Decon.sim$z, 1) ), "'z' must be of the same length as the number of cells in the 'counts' matrix.")   
49
-    expect_error( DecontXoneBatch(omat=Decon.sim$rmat+Decon.sim$cmat, z=rep(1, ncol(Decon.sim$rmat)) ), "'z' must have at least 2 different values.") 
50
-
51
-    omat.NA = Decon.sim$rmat + Decon.sim$cmat
52
-    omat.NA[1,1] = NA
53
-    expect_error( DecontXoneBatch(omat=omat.NA, z=Decon.sim$z), "Missing value in 'omat' matrix.") 
44
+    expect_error( DecontXoneBatch(counts=Decon.sim$rmat+Decon.sim$cmat, z=Decon.sim$z, beta=-1), "'beta' should be a single positive value.")
45
+    expect_error( DecontXoneBatch(counts=Decon.sim$rmat+Decon.sim$cmat, z=Decon.sim$z, beta=c(1,1) ), "'beta' should be a single positive value.")
46
+    expect_error( DecontXoneBatch(counts=Decon.sim$rmat+Decon.sim$cmat, z=Decon.sim$z, delta=-1), "'delta' should be a single positive value.")
47
+    expect_error( DecontXoneBatch(counts=Decon.sim$rmat+Decon.sim$cmat, z=Decon.sim$z, delta=c(1,1) ), "'delta' should be a single positive value.")
48
+    expect_error( DecontXoneBatch(counts=Decon.sim$rmat+Decon.sim$cmat, z=c(Decon.sim$z, 1) ), "'z' must be of the same length as the number of cells in the 'counts' matrix.")   
49
+    expect_error( DecontXoneBatch(counts=Decon.sim$rmat+Decon.sim$cmat, z=rep(1, ncol(Decon.sim$rmat)) ), "'z' must have at least 2 different values.") 
50
+
51
+    counts.NA = Decon.sim$rmat + Decon.sim$cmat
52
+    counts.NA[1,1] = NA
53
+    expect_error( DecontXoneBatch(counts=counts.NA, z=Decon.sim$z), "Missing value in 'counts' matrix.") 
54 54
     } )
55 55
 
56 56
   test_that( desc = " Testing DecontXoneBatch using background distribution", {
... ...
@@ -61,18 +61,18 @@
61 61
   # logLikelihood
62 62
   test_that( desc = "Testing logLikelihood.DecontXoneBatch", {
63 63
     z.process = processCellLabels(Decon.sim$z, num.cells=ncol(Decon.sim$rmat) )
64
-    expect_equal( decon.calcLL(omat=Decon.sim$cmat+Decon.sim$rmat, z=z.process  ,  theta=model_DecontXoneBatch$res.list$theta, eta=model_DecontXoneBatch$res.list$est.ConDist, phi=model_DecontXoneBatch$res.list$est.GeneDist ), model_DecontXoneBatch$res.list$logLikelihood[ model_DecontXoneBatch$run.params$iteration  ] )
64
+    expect_equal( decon.calcLL(counts=Decon.sim$cmat+Decon.sim$rmat, z=z.process  ,  theta=model_DecontXoneBatch$res.list$theta, eta=model_DecontXoneBatch$res.list$est.ConDist, phi=model_DecontXoneBatch$res.list$est.GeneDist ), model_DecontXoneBatch$res.list$logLikelihood[ model_DecontXoneBatch$run.params$iteration  ] )
65 65
 
66 66
     cellDist.model.bg = normalizeCounts( model_DecontXoneBatchbg$res.list$est.rmat, normalize="proportion", pseudocount.normalize= model_DecontXoneBatchbg$run.params$beta) 
67 67
     bgDist.model.bg = rowSums( Decon.sim$rmat+ Decon.sim$cmat) / sum( Decon.sim$N.by.C) 
68 68
     bgDist.model.bg = matrix( rep(bgDist.model.bg, length(Decon.sim$N.by.C)   ), ncol= length(Decon.sim$N.by.C)  )
69
-    expect_equal( bg.calcLL( omat=Decon.sim$cmat+Decon.sim$rmat, theta=model_DecontXoneBatchbg$res.list$theta, cellDist= cellDist.model.bg, bgDist= bgDist.model.bg), model_DecontXoneBatchbg$res.list$logLikelihood[ model_DecontXoneBatchbg$run.params$iteration  ] )
69
+    expect_equal( bg.calcLL( counts=Decon.sim$cmat+Decon.sim$rmat, theta=model_DecontXoneBatchbg$res.list$theta, cellDist= cellDist.model.bg, bgDist= bgDist.model.bg), model_DecontXoneBatchbg$res.list$logLikelihood[ model_DecontXoneBatchbg$run.params$iteration  ] )
70 70
     } )
71 71
 
72 72
   # decontamination EM updates
73 73
   test_that( desc = "Testing decontamination EM updates", {
74 74
     z.process = processCellLabels(Decon.sim$z, num.cells=ncol(Decon.sim$rmat) )
75
-    expect_equal( cD.calcEMDecontamination( omat=Decon.sim$cmat+Decon.sim$rmat, z=z.process, K=length(unique(Decon.sim$z)), theta=model_DecontXoneBatch.iter1$res.list$theta, phi=model_DecontXoneBatch.iter1$res.list$est.GeneDist, eta=model_DecontXoneBatch.iter1$res.list$est.ConDist, beta=model_DecontXoneBatch.iter1$run.params$beta, delta=model_DecontXoneBatch.iter1$run.params$delta)$theta,   model_DecontXoneBatch$res.list$theta )
75
+    expect_equal( cD.calcEMDecontamination( counts=Decon.sim$cmat+Decon.sim$rmat, z=z.process, K=length(unique(Decon.sim$z)), theta=model_DecontXoneBatch.iter1$res.list$theta, phi=model_DecontXoneBatch.iter1$res.list$est.GeneDist, eta=model_DecontXoneBatch.iter1$res.list$est.ConDist, beta=model_DecontXoneBatch.iter1$run.params$beta, delta=model_DecontXoneBatch.iter1$run.params$delta)$theta,   model_DecontXoneBatch$res.list$theta )
76 76
     } )
77 77
 
78 78