@@ -222,7 +222,7 @@ calculateStats <- function(counts.all, biSites.all, slice1, slice2, slice3, slic
222222 maxBABA_23 <- vector(mode = " numeric" , length = length(biSites.all ))
223223 maxABBA_13 <- vector(mode = " numeric" , length = length(biSites.all ))
224224 maxBABA_13 <- vector(mode = " numeric" , length = length(biSites.all ))
225- for (i in 1 : length (biSites.all )){
225+ for (i in seq_along (biSites.all )){
226226 i.bi.counts <- counts.all [, biSites.all [i ]]
227227 alleles <- names(which(i.bi.counts > 0 ))
228228 anc <- names(which(slice4 $ countsBi [, i ] != 0 ))
@@ -268,7 +268,11 @@ calculateStats <- function(counts.all, biSites.all, slice1, slice2, slice3, slic
268268
269269populationSlice <- function (popSeqs , biSites ){
270270 counts <- consensusMatrix(popSeqs )
271- alleles <- colSums(counts != 0 )
271+ if (any(biSites > 0 )){
272+ alleles <- colSums(counts != 0 )
273+ } else {
274+ alleles <- 0
275+ }
272276 S <- sum(alleles > 1 )
273277 return (list (counts = counts , countsBi = counts [, biSites ], alleles = alleles , S = S ))
274278}
@@ -295,7 +299,7 @@ calculateDandFd <- function(aln, pops){
295299 p3Slice <- populationSlice(aln.var [pops [[3 ]]], bi.var )
296300 p4Slice <- populationSlice(aln.var [pops [[4 ]]], bi.var )
297301 return (data.frame (S = s.all , P1_S = p1Slice $ S , P2_S = p2Slice $ S ,
298- P3_S = p3Slice $ S , P4_S = p4Slice $ S ,
302+ P3_S = p3Slice $ S , P4_S = p4Slice $ S ,
299303 calculateStats(counts.all , bi.all ,
300304 p1Slice , p2Slice , p3Slice , p4Slice )))
301305}
0 commit comments