diff --git a/R/buildNetwork.R b/R/buildNetwork.R index 4d9eee0..ef32f53 100644 --- a/R/buildNetwork.R +++ b/R/buildNetwork.R @@ -71,8 +71,8 @@ defineEIC <- function(xdata) { ncol = length(rts.xdata)) for( i in seq_len(nrow(peaks)) ){ peak <- peaks[i,] - posrtmin <- which(rts.xdata == peak["rtmin"]) - posrtmax <- which(rts.xdata == peak["rtmax"]) + posrtmin <- which.min(abs(rts.xdata - peak["rtmin"])) + posrtmax <- which.min(abs(rts.xdata - peak["rtmax"])) rangepeak <- seq(posrtmin, posrtmax, by = 1) peakint <- unlist(lapply(rangepeak,function(y) { mzposc <- which(mzs.xdata[[y]] >= peak["mzmin"]) diff --git a/R/findIsotopes.R b/R/findIsotopes.R index a84ec58..86f6464 100644 --- a/R/findIsotopes.R +++ b/R/findIsotopes.R @@ -243,7 +243,7 @@ getIsotopes <- function(anclique, maxCharge = 3, ## If there are no isotopes in all dataset if( length(listofisoTable) == sum(vapply(listofisoTable, is.null, logical(1))) ) { - isoTable <- matrix(c(NA,NA,NA,NA), nrow = 1) + isoTable <- as.data.frame(matrix(c(NA,NA,NA,NA), nrow = 1)) colnames(isoTable) <- c("feature","charge","grade","cluster") anclique@peaklist$isotope <- rep("M0", nrow(anclique@peaklist)) } else { @@ -252,9 +252,11 @@ getIsotopes <- function(anclique, maxCharge = 3, listofisoTable <- listofisoTable[ !vapply(listofisoTable, is.null, logical(1))] maxC <- max(listofisoTable[[1]]$cluster) - for(i in 2:length(listofisoTable)) { - listofisoTable[[i]]$cluster = listofisoTable[[i]]$cluster + maxC + 1 - maxC <- max(listofisoTable[[i]]$cluster) + if (length(listofisoTable) > 1) { + for(i in 2:length(listofisoTable)) { + listofisoTable[[i]]$cluster = listofisoTable[[i]]$cluster + maxC + 1 + maxC <- max(listofisoTable[[i]]$cluster) + } } isoTable <- do.call(rbind, listofisoTable) rownames(isoTable) <- seq_len(nrow(isoTable))