Cyclic loess leading to complete rows of NA

68 views Asked by At

I am currently evaluating normalization methods on proteomics data. As proteomics data are often affected by a high extent of missingness, filtering of proteins with too many missing values is applied (imputation is not wanted). However, some missing values will still be in the data, as for instance in here: Proteomics Dataset Prior Normalization

I am evaluating many normalization methods and performing cyclic loess using limma::normalizeCyclicLoess(as.matrix(dt), method="pairs")

However, what I noticed now that NA values become additive, i.e. one NA value in a row prior normalization, gives NA values for this protein over all samples. Proteomics Dataset After Normalization

After having checked the source code, actually this also makes sense to me. Here again the function:

 if (method == "pairs") {
    for (k in 1:iterations) for (i in 1:(n - 1)) for (j in (i + 
      1):n) {
      m <- x[, j] - x[, i]
      a <- 0.5 * (x[, j] + x[, i])
      f <- loessFit(m, a, weights = weights, span = span)$fitted
      x[, i] <- x[, i] + f/2
      x[, j] <- x[, j] - f/2
    }
  }

Can anyone help me how to normalize incomplete proteomics data with cyclic loess?

0

There are 0 answers