saeyslab / CytoNorm

R library to normalize cytometry data
33 stars 6 forks source link

README.md #7

Open SamGG opened 4 years ago

SamGG commented 4 years ago

Hi Sofie,

I think there is something missing in the sentence

normParams takes "nQ", the number of quantiles. Additionally, quantile_values The goal can be "mean", one of the batch labels, or nQ numbers (e.g. nQ = 2, )

Moreover, I think you should describe a basic workflow showing the use of nQ. I tried it and I think it could be more robust in some cases. In the following the setup tends to lead to a line (nQ=2) or relative straight line (nQ=5).

# A straight model is nQ = 2, quantileValues = c(0.001, 0.999)
# Model relying 5 quantiles (nQ = 5), which are described below
png("nQ_5.png",
    width = length(channels) * 300,
    height = (nrow(train_data) * 2 + 1) * 300)
model_nQ_5 <- QuantileNorm.train(
  files = train_data$Path,
  labels = train_data$Batch,
  channels = channels,
  transformList = transformList,
  nQ = 5,
  quantileValues = c(0.001, 0.01, 0.95, 0.98, 0.999),
  plot = TRUE)
dev.off()
# Check the result among the training data
QuantileNorm.normalize(
  model = model_nQ_5,
  files = train_data$Path,
  labels = train_data$Batch,
  transformList = transformList,
  transformList.reverse = transformList.reverse,
  outputDir = "nQ_5",
  prefix = "nQ_5_",
  verbose = TRUE)
# Apply to whole set
QuantileNorm.normalize(
  model = model_nQ_5,
  files = validation_data$Path,
  labels = validation_data$Batch,
  transformList = transformList,
  transformList.reverse = transformList.reverse,
  outputDir = "nQ_5",
  prefix = "nQ_5_",
  verbose = TRUE)

Best.