From 0d2af528634d4bbd22ca32d3fb2161897509d82f Mon Sep 17 00:00:00 2001 From: Tony Wu Date: Wed, 10 Jan 2024 10:55:48 -0500 Subject: [PATCH 1/4] feat(metamorpheus-converter): Add clean functionality of metamorpheus converter --- .gitignore | 1 + DESCRIPTION | 1 + R/MSstatsConvert_core_functions.R | 7 +++++++ R/clean_Metamorpheus.R | 18 ++++++++++++++++++ .../Metamorpheus/AllQuantifiedPeaks.rds | Bin 0 -> 24765 bytes .../Metamorpheus/ExperimentalDesign.tsv | 5 +++++ inst/tinytest/test_clean_Metamorpheus.R | 12 ++++++++++++ man/MSstatsClean.Rd | 7 +++++++ man/dot-cleanRawMetamorpheus.Rd | 18 ++++++++++++++++++ 9 files changed, 69 insertions(+) create mode 100644 R/clean_Metamorpheus.R create mode 100644 inst/tinytest/raw_data/Metamorpheus/AllQuantifiedPeaks.rds create mode 100644 inst/tinytest/raw_data/Metamorpheus/ExperimentalDesign.tsv create mode 100644 inst/tinytest/test_clean_Metamorpheus.R create mode 100644 man/dot-cleanRawMetamorpheus.Rd diff --git a/.gitignore b/.gitignore index 7c81cae0..ee6edbaa 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ inst/doc *.Rproj *.DS_Store +*.log diff --git a/DESCRIPTION b/DESCRIPTION index 365ec25c..89057915 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -29,6 +29,7 @@ Suggests: knitr, rmarkdown Collate: + 'clean_Metamorpheus.R' 'clean_DIANN.R' 'clean_Philosopher.R' 'clean_Spectronaut.R' diff --git a/R/MSstatsConvert_core_functions.R b/R/MSstatsConvert_core_functions.R index 1bd59788..7141e231 100644 --- a/R/MSstatsConvert_core_functions.R +++ b/R/MSstatsConvert_core_functions.R @@ -271,6 +271,13 @@ setMethod("MSstatsClean", signature = "MSstatsPhilosopherFiles", #' @return data.table setMethod("MSstatsClean", signature = "MSstatsDIANNFiles", .cleanRawDIANN) +#' Clean Metamorpheus files +#' @include clean_Metamorpheus.R +#' @rdname MSstatsClean +#' @inheritParams .cleanRawMetamorpheus +#' @return data.table +setMethod("MSstatsClean", signature = "MSstatsMetamorpheusFiles", + .cleanRawMetamorpheus) #' Preprocess outputs from MS signal processing tools for analysis with MSstats diff --git a/R/clean_Metamorpheus.R b/R/clean_Metamorpheus.R new file mode 100644 index 00000000..1ebeb10d --- /dev/null +++ b/R/clean_Metamorpheus.R @@ -0,0 +1,18 @@ +#' Clean raw Metamorpheus files +#' @param msstats_object an object of class `MSstatsMetamorpheusFiles`. +#' @return data.table +#' @keywords internal +.cleanRawMetamorpheus = function(msstats_object) { + metamorpheus_input = getInputFile(msstats_object, "input") + metamorpheus_input = data.table::as.data.table(metamorpheus_input) + req_cols = c('FileName', 'ProteinGroup', 'FullSequence', + 'PrecursorCharge', 'Peakintensity') + metamorpheus_input = metamorpheus_input[, req_cols, with = FALSE] + data.table::setnames( + metamorpheus_input, + c("ProteinGroup", "FullSequence", "PrecursorCharge", "FileName", "Peakintensity"), + c("ProteinName", "PeptideSequence", "PrecursorCharge", "Run", "Intensity"), + skip_absent = TRUE) + .logSuccess("Metamorpheus", "clean") + metamorpheus_input +} \ No newline at end of file diff --git a/inst/tinytest/raw_data/Metamorpheus/AllQuantifiedPeaks.rds b/inst/tinytest/raw_data/Metamorpheus/AllQuantifiedPeaks.rds new file mode 100644 index 0000000000000000000000000000000000000000..252a091203fbb9efef174c09e6e235c8118da3dc GIT binary patch literal 24765 zcmV)uK$gEBiwFP!000001MPhWU=&r?cIY9YgpMdpI!M^*Gqk-!I@yFxcC#Tg2@s@% zA@tq_1f(NPqzZ_LN>vz;u1J-Rbg9xrK>B~~Bs2H!rVxU@@ArLw_`ZFUoy^|3=d?JHFnA&aQyL4=meI@%!_Lb}_|7)+X*;lf!WM9d?l6@un z%75>Qy@`X#zLI?<`%3ne>?_$?_$$_pb%$>aotA^aRoV@;dY1d@%*;9 zK%3na7-Za1GExn<1xDE8g5qq^c8ALq6zOoOVaDyD(Lq5$wjlHN{2{@1m%|pN8W+4> zPM0kt%5FR$pBfnAu)EB+4mH$fH}5WBv)LnDVNtdyo87op*cGCNsv$vfA!?9nGoR!W z?ojOxXGn|lnyDP$_xIaB{UlK z1r*xVz;I_I0Rdc6Bh3E!IRjy=;emm6=%F(4r>A}Lr(g<`+3fWW9& z7)gl3<_vX2oAau=)ZobQ==32`$mN38)JWB)hK9$58cz;)Ic*N;rHSeghZB~=1cx_9 zX1LP?PvIzAkQx>UlWYr$Q_Tk!j{=kg+njMQ)d6;UV4zJkZL~mWG>kVaC@wJEMvNya z%I310pZ8W(HNs^#vEv&UVhgiHMnJ2^lgqnc!BmGWP6cR3M!BMFu{Mkwz#L46*^-ZG zxYQNn`Nq?t-Hp@76&h~0hr6Q8Vfs1ag6*Nffi_2Ih(nDs7t}Y*7GMjGwnsV4t`_!K z664P3z);l&{fHtI6apqh|~XirK_-AH;C z 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 literal 0 HcmV?d00001 diff --git a/inst/tinytest/raw_data/Metamorpheus/ExperimentalDesign.tsv b/inst/tinytest/raw_data/Metamorpheus/ExperimentalDesign.tsv new file mode 100644 index 00000000..496eff7e --- /dev/null +++ b/inst/tinytest/raw_data/Metamorpheus/ExperimentalDesign.tsv @@ -0,0 +1,5 @@ +Run Condition BioReplicate Fraction Techrep +NEG1-calib neg 1 1 1 +NEG2-calib neg 2 1 1 +POS1-calib pos 1 1 1 +POS2-calib pos 2 1 1 \ No newline at end of file diff --git a/inst/tinytest/test_clean_Metamorpheus.R b/inst/tinytest/test_clean_Metamorpheus.R new file mode 100644 index 00000000..145459d6 --- /dev/null +++ b/inst/tinytest/test_clean_Metamorpheus.R @@ -0,0 +1,12 @@ +# Test Metamorpheus .cleanRawMetamorpheus --------------------------- + +file_path = system.file("tinytest/raw_data/Metamorpheus/AllQuantifiedPeaks.rds", package="MSstatsConvert") +input = readRDS(file_path) +output = MSstatsConvert:::.cleanRawMetamorpheus(input) +expect_equal(ncol(output), 5) +expect_true(nrow(output) > 0) +expect_true("Run" %in% colnames(output)) +expect_true("ProteinName" %in% colnames(output)) +expect_true("PeptideSequence" %in% colnames(output)) +expect_true("PrecursorCharge" %in% colnames(output)) +expect_true("Intensity" %in% colnames(output)) \ No newline at end of file diff --git a/man/MSstatsClean.Rd b/man/MSstatsClean.Rd index 5568bd5a..bca5ce16 100644 --- a/man/MSstatsClean.Rd +++ b/man/MSstatsClean.Rd @@ -13,6 +13,7 @@ \alias{MSstatsClean,MSstatsSpectronautFiles-method} \alias{MSstatsClean,MSstatsPhilosopherFiles-method} \alias{MSstatsClean,MSstatsDIANNFiles-method} +\alias{MSstatsClean,MSstatsMetamorpheusFiles-method} \title{Clean files generated by a signal processing tools.} \usage{ MSstatsClean(msstats_object, ...) @@ -57,6 +58,8 @@ MSstatsClean(msstats_object, ...) ) \S4method{MSstatsClean}{MSstatsDIANNFiles}(msstats_object, MBR = TRUE) + +\S4method{MSstatsClean}{MSstatsMetamorpheusFiles}(msstats_object) } \arguments{ \item{msstats_object}{object that inherits from \code{MSstatsInputFiles} class.} @@ -125,6 +128,8 @@ data.table data.table +data.table + data.table } \description{ @@ -151,6 +156,8 @@ Clean Spectronaut files Clean Philosopher files Clean DIA-NN files + +Clean Metamorpheus files } \examples{ evidence_path = system.file("tinytest/raw_data/MaxQuant/mq_ev.csv", diff --git a/man/dot-cleanRawMetamorpheus.Rd b/man/dot-cleanRawMetamorpheus.Rd new file mode 100644 index 00000000..b977802d --- /dev/null +++ b/man/dot-cleanRawMetamorpheus.Rd @@ -0,0 +1,18 @@ +% Generated by roxygen2: do not edit by hand +% Please edit documentation in R/clean_Metamorpheus.R +\name{.cleanRawMetamorpheus} +\alias{.cleanRawMetamorpheus} +\title{Clean raw Metamorpheus files} +\usage{ +.cleanRawMetamorpheus(msstats_object) +} +\arguments{ +\item{msstats_object}{an object of class \code{MSstatsMetamorpheusFiles}.} +} +\value{ +data.table +} +\description{ +Clean raw Metamorpheus files +} +\keyword{internal} From 342e9b055e938ba155efc9dbbcf784d42dc2e7a6 Mon Sep 17 00:00:00 2001 From: Tony Wu Date: Wed, 10 Jan 2024 16:01:58 -0500 Subject: [PATCH 2/4] Modified metamorpheus annotation filename and removed techRep column from annotation file --- inst/tinytest/raw_data/Metamorpheus/Annotation.tsv | 5 +++++ inst/tinytest/raw_data/Metamorpheus/ExperimentalDesign.tsv | 5 ----- 2 files changed, 5 insertions(+), 5 deletions(-) create mode 100644 inst/tinytest/raw_data/Metamorpheus/Annotation.tsv delete mode 100644 inst/tinytest/raw_data/Metamorpheus/ExperimentalDesign.tsv diff --git a/inst/tinytest/raw_data/Metamorpheus/Annotation.tsv b/inst/tinytest/raw_data/Metamorpheus/Annotation.tsv new file mode 100644 index 00000000..3745fb78 --- /dev/null +++ b/inst/tinytest/raw_data/Metamorpheus/Annotation.tsv @@ -0,0 +1,5 @@ +Run Condition BioReplicate Fraction +NEG1-calib neg 1 1 +NEG2-calib neg 2 1 +POS1-calib pos 3 1 +POS2-calib pos 4 1 \ No newline at end of file diff --git a/inst/tinytest/raw_data/Metamorpheus/ExperimentalDesign.tsv b/inst/tinytest/raw_data/Metamorpheus/ExperimentalDesign.tsv deleted file mode 100644 index 496eff7e..00000000 --- a/inst/tinytest/raw_data/Metamorpheus/ExperimentalDesign.tsv +++ /dev/null @@ -1,5 +0,0 @@ -Run Condition BioReplicate Fraction Techrep -NEG1-calib neg 1 1 1 -NEG2-calib neg 2 1 1 -POS1-calib pos 1 1 1 -POS2-calib pos 2 1 1 \ No newline at end of file From d8336c3f8a4223acd150e2ad837a70a1120134d1 Mon Sep 17 00:00:00 2001 From: Tony Wu Date: Fri, 12 Jan 2024 13:01:07 -0500 Subject: [PATCH 3/4] Modify RDS filename to MSstatsMetamorpheusFilesObject for unit testing --- ...Peaks.rds => MSstatsMetamorpheusFilesObject.rds} | Bin inst/tinytest/test_clean_Metamorpheus.R | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename inst/tinytest/raw_data/Metamorpheus/{AllQuantifiedPeaks.rds => MSstatsMetamorpheusFilesObject.rds} (100%) diff --git a/inst/tinytest/raw_data/Metamorpheus/AllQuantifiedPeaks.rds b/inst/tinytest/raw_data/Metamorpheus/MSstatsMetamorpheusFilesObject.rds similarity index 100% rename from inst/tinytest/raw_data/Metamorpheus/AllQuantifiedPeaks.rds rename to inst/tinytest/raw_data/Metamorpheus/MSstatsMetamorpheusFilesObject.rds diff --git a/inst/tinytest/test_clean_Metamorpheus.R b/inst/tinytest/test_clean_Metamorpheus.R index 145459d6..49904f29 100644 --- a/inst/tinytest/test_clean_Metamorpheus.R +++ b/inst/tinytest/test_clean_Metamorpheus.R @@ -1,6 +1,6 @@ # Test Metamorpheus .cleanRawMetamorpheus --------------------------- -file_path = system.file("tinytest/raw_data/Metamorpheus/AllQuantifiedPeaks.rds", package="MSstatsConvert") +file_path = system.file("tinytest/raw_data/Metamorpheus/MSstatsMetamorpheusFilesObject.rds", package="MSstatsConvert") input = readRDS(file_path) output = MSstatsConvert:::.cleanRawMetamorpheus(input) expect_equal(ncol(output), 5) From 0199ea911413874c61342d0e27d12d30fbada1bd Mon Sep 17 00:00:00 2001 From: Tony Wu Date: Tue, 16 Jan 2024 21:26:21 -0500 Subject: [PATCH 4/4] create processed_data folder for testing --- .../Metamorpheus/MSstatsMetamorpheusFilesObject.rds | Bin inst/tinytest/test_clean_Metamorpheus.R | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename inst/tinytest/{raw_data => processed_data}/Metamorpheus/MSstatsMetamorpheusFilesObject.rds (100%) diff --git a/inst/tinytest/raw_data/Metamorpheus/MSstatsMetamorpheusFilesObject.rds b/inst/tinytest/processed_data/Metamorpheus/MSstatsMetamorpheusFilesObject.rds similarity index 100% rename from inst/tinytest/raw_data/Metamorpheus/MSstatsMetamorpheusFilesObject.rds rename to inst/tinytest/processed_data/Metamorpheus/MSstatsMetamorpheusFilesObject.rds diff --git a/inst/tinytest/test_clean_Metamorpheus.R b/inst/tinytest/test_clean_Metamorpheus.R index 49904f29..5bbc2136 100644 --- a/inst/tinytest/test_clean_Metamorpheus.R +++ b/inst/tinytest/test_clean_Metamorpheus.R @@ -1,6 +1,6 @@ # Test Metamorpheus .cleanRawMetamorpheus --------------------------- -file_path = system.file("tinytest/raw_data/Metamorpheus/MSstatsMetamorpheusFilesObject.rds", package="MSstatsConvert") +file_path = system.file("tinytest/processed_data/Metamorpheus/MSstatsMetamorpheusFilesObject.rds", package="MSstatsConvert") input = readRDS(file_path) output = MSstatsConvert:::.cleanRawMetamorpheus(input) expect_equal(ncol(output), 5)