Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion R/clean_DIANN.R
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
#' Clean raw Diann files
#' @param msstats_object an object of class `MSstatsDIANNFiles`.
#' @param MBR True if analysis was done with match between runs
#' @param quantificationColumn Use 'FragmentQuantCorrected'(default) column for quantified intensities. 'FragmentQuantRaw' can be used instead.
#' @param quantificationColumn Use 'FragmentQuantCorrected'(default) column for quantified intensities.
#' 'FragmentQuantRaw' can be used instead.
#' 'auto' should be used for DIANN 2.0 where each fragment intensity is a separate column, e.g. Fr0Quantity.
#' @return data.table
#' @importFrom stats na.omit
#' @keywords internal
Expand All @@ -10,6 +12,18 @@
dn_input = getInputFile(msstats_object, "input")
dn_input = data.table::as.data.table(dn_input)

# Auto-detect and collapse multiple fragment columns (DIANN 2.0 format)
if (quantificationColumn == "auto") {
fragment_columns <- grep("^Fr[0-9]+Quantity$", names(dn_input), value = TRUE)
if (length(fragment_columns) == 0) {
stop("No fragment quantification columns found. Please check your input.")
}
dn_input[, FragmentQuantCorrected := apply(.SD, 1, function(row) {
paste(as.character(row), collapse = ";")
}), .SDcols = fragment_columns]
Comment thread
tonywu1999 marked this conversation as resolved.
Outdated
quantificationColumn <- "FragmentQuantCorrected"
}

if (!is.element("PrecursorMz", colnames(dn_input))) {
dn_input[, PrecursorMz := NA]
}
Expand Down
6 changes: 4 additions & 2 deletions R/converters_DIANNtoMSstatsFormat.R
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,9 @@
#' @param removeFewMeasurements should proteins with few measurements be removed
#' @param removeOxidationMpeptides should peptides with oxidation be removed
#' @param removeProtein_with1Feature should proteins with a single feature be removed
#' @param quantificationColumn Use 'FragmentQuantCorrected'(default) column for quantified intensities. 'FragmentQuantRaw' can be used instead.
#' @param quantificationColumn Use 'FragmentQuantCorrected'(default) column for quantified intensities.
#' 'FragmentQuantRaw' can be used instead.
#' 'auto' should be used for DIANN 2.0 where each fragment intensity is a separate column, e.g. Fr0Quantity.
#' @param ... additional parameters to `data.table::fread`.
#'
#' @return data.frame in the MSstats required format.
Expand All @@ -30,7 +32,7 @@
#' @export
#'
#' @examples
#' # See https://github.com/vdemichev/DiaNN/discussions/1525 for workaround for DIANN 2.0
#' # For DIANN 2.0, set quantificationColumn = 'auto'
#' input_file_path = system.file("tinytest/raw_data/DIANN/diann_input.tsv",
#' package="MSstatsConvert")
#' annotation_file_path = system.file("tinytest/raw_data/DIANN/annotation.csv",
Expand Down
6 changes: 4 additions & 2 deletions man/DIANNtoMSstatsFormat.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion man/MSstatsClean.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion man/dot-cleanRawDIANN.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading