Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
8 changes: 5 additions & 3 deletions R/converters.R
Original file line number Diff line number Diff line change
Expand Up @@ -640,8 +640,6 @@ MaxQtoMSstatsPTMFormat = function(evidence=NULL,
keep = 1)]
}

MSstatsPTMformat = list('PTM' = msstatsptm_input)

if (!is.null(evidence_prot)){
annotation_protein = as.data.table(annotation_protein)

Expand All @@ -657,9 +655,10 @@ MaxQtoMSstatsPTMFormat = function(evidence=NULL,
proteinID = which_proteinid_protein)
}

msstatsptm_input = msstatsptm_input[grepl(mod_id, msstatsptm_input$PeptideSequence),]
MSstatsPTMformat = list('PTM' = msstatsptm_input,
"PROTEIN" = msstats.abun)

return(MSstatsPTMformat)
}

if (use_unmod_peptides){
Expand All @@ -668,6 +667,9 @@ MaxQtoMSstatsPTMFormat = function(evidence=NULL,

MSstatsPTMformat = list(PTM = msstatsptm_input,
PROTEIN = msstats.abun)
} else {
msstatsptm_input = msstatsptm_input[grepl(mod_id, msstatsptm_input$PeptideSequence),]
Copy link

Copilot AI Jul 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Using grepl without fixed = TRUE treats mod_id as a regex. If mod_id is literal, add fixed = TRUE to avoid unintended regex interpretation.

Copilot uses AI. Check for mistakes.
MSstatsPTMformat = list('PTM' = msstatsptm_input)
}

return(MSstatsPTMformat)
Expand Down
50 changes: 43 additions & 7 deletions inst/tinytest/test_converters.R
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,15 @@
#' @author Anthony Wu
#'
#' @param msstats_ptm_input A list containing PTM and PROTEIN data tables
.validatePositiveNumberOfRows = function(msstats_ptm_input) {
#' @param global_profiling Default TRUE indicates msstats_ptm_input should have
#' the PROTEIN element
.validatePositiveNumberOfRows = function(msstats_ptm_input, global_profiling = TRUE) {
expect_true(nrow(msstats_ptm_input$PTM) > 0)
expect_true(nrow(msstats_ptm_input$PROTEIN) > 0)
if (global_profiling) {
expect_true(nrow(msstats_ptm_input$PROTEIN) > 0)
} else {
expect_true(is.null(msstats_ptm_input$PROTEIN))
}
}

#' Validate protein ID count in converter output
Expand Down Expand Up @@ -35,7 +41,7 @@
)
}

## MaxQ TMT
## MaxQ TMT useUnmodPeptides = TRUE
data("maxq_tmt_evidence", package = "MSstatsPTM")
data("maxq_tmt_annotation", package = "MSstatsPTM")

Expand Down Expand Up @@ -84,12 +90,26 @@ mq_imported = MaxQtoMSstatsPTMFormat(evidence=maxq_tmt_evidence,
.validateProteinId(mq_imported$PTM, "P29966_T150", 70)
.validateProteinId(mq_imported$PTM, "P29966_T143_S145", 10)
.validatePtmSubstring(
mq_imported$PTM, "Phospho \\(STY\\)",
length(mq_imported$PTM$PeptideSequence))
mq_imported$PTM, "Phospho \\(STY\\)",
length(mq_imported$PTM$PeptideSequence))
.validatePtmSubstring(
mq_imported$PROTEIN, "Phospho \\(STY\\)", 0)
mq_imported$PROTEIN, "Phospho \\(STY\\)", 0)

## MaxQ TMT useUnmodPeptides = FALSE
mq_imported = MaxQtoMSstatsPTMFormat(evidence=maxq_tmt_evidence,
annotation=maxq_tmt_annotation,
fasta=system.file("extdata", "maxq_tmt_fasta.fasta", package="MSstatsPTM"),
fasta_protein_name="uniprot_ac",
use_unmod_peptides=FALSE,
labeling_type = "TMT")
.validatePositiveNumberOfRows(mq_imported, global_profiling = FALSE)
.validateProteinId(mq_imported$PTM, "P29966_T150", 70)
.validateProteinId(mq_imported$PTM, "P29966_T143_S145", 10)
.validatePtmSubstring(
mq_imported$PTM, "Phospho \\(STY\\)",
length(mq_imported$PTM$PeptideSequence))

## MaxQ LF
## MaxQ LF useUnmodPeptides = TRUE
data("maxq_lf_evidence", package = "MSstatsPTM")
data("maxq_lf_annotation", package = "MSstatsPTM")

Expand Down Expand Up @@ -155,6 +175,22 @@ mq_imported = MaxQtoMSstatsPTMFormat(evidence=maxq_lf_evidence,
.validatePtmSubstring(
mq_imported$PROTEIN, "Phospho \\(STY\\)", 0)

## MaxQ LF useUnmodPeptides = FALSE
mq_imported = MaxQtoMSstatsPTMFormat(evidence=maxq_lf_evidence,
annotation=maxq_lf_annotation,
fasta=system.file("extdata", "maxq_lf_fasta.fasta", package="MSstatsPTM"),
fasta_protein_name="uniprot_ac",
mod_id="\\(Phospho \\(STY\\)\\)",
use_unmod_peptides=FALSE,
labeling_type = "LF",
which_proteinid_ptm = "Proteins")
.validatePositiveNumberOfRows(mq_imported, global_profiling = FALSE)
.validateProteinId(mq_imported$PTM, "P36578_S295", 66)
.validateProteinId(mq_imported$PTM, "Q13523_S431_S437", 33)
.validatePtmSubstring(
mq_imported$PTM, "Phospho \\(STY\\)",
length(mq_imported$PTM$PeptideSequence))

## Spectronaut
data("spectronaut_input", package = "MSstatsPTM")
data("spectronaut_annotation", package = "MSstatsPTM")
Expand Down
Loading