This vignette provides an example workflow for how to use the package MSstatsPTM
for a mass spectrometry based proteomics experiment acquired with a labelfree acquisition methods, such as DDA/DIA/SRM/PRM. It also provides examples and an analysis of how adjusting for global protein levels allows for better interpretations of PTM modeling results.
To install this package, start R (version “4.0”) and enter:
Note: We are actively developing dedicated converters for MSstatsPTM
. If you have data from a processing tool that does not have a dedicated converter in MSstatsPTM please add a github issue https://github.com/Vitek-Lab/MSstatsPTM/issues
and we will add the converter.
The first step is to load in the raw dataset for both the PTM and Protein datasets. Each dataset can formatted using dedicated converters in MSstatsPTM
, such as FragePipetoMSstatsPTMFormat
. If there is not a dedicated converter for your tool in MSstatsPTM
, you can alternatively leverage converters from base MSstats
. If using converters from MSstats
note they will need to be run both on the global protein and PTM datasets.
You might notice a FASTA file is also needed for some converters. This FASTA file can be obtained by querying Uniprot with all of the protein IDs present in your PTM dataset. The FASTA file is a necessary input because some tools (e.g. MaxQuant) do not report the specific amino acid that is modified relative to the whole protein sequence. Rather, they report the specific amino acid relative to the reported peptide. This distinction is important because modifications like phosphorylation, methylation, or acetylation often have specific roles depending on where they occur within the full-length protein. With the help of a FASTA file, MSstatsPTM can determine the specific amino acid that is modified in the context of the whole protein sequence.
Please note for the PTM dataset, both the protein and modification site (or peptide), must be added into the ProteinName
column. This allows for the package to summarize to the peptide level, and avoid the off chance there are matching peptides between proteins. For an example of how this can be done please see the code below.
The output of the converter is a list with two formatted data.tables. One each for the PTM and Protein datasets. If a global profiling run was not performed, the Protein data.table will just be NULL
MaxQtoMSstatsPTMFormat
MSstatsPTM
includes a dedicated converter for MaxQuant output. Experiments can be acquired with label-free or TMT labeling methods. No matter the experiment, we recommend using the evidence.txt
file, and not a PTM specific file such as the Phospho (STY).txt
file. The MaxQtoMSstatsPTMFormat
converter includes a variety of parameters. Examples for processing a TMT and LF dataset can be seen below.
# TMT experiment
head(maxq_tmt_evidence)
#> Sequence Length Modifications
#> 1 AALLAQYADVTDEEDEADEK 20 Phospho (STY)
#> 2 AALLAQYADVTDEEDEADEK 20 Phospho (STY)
#> 3 AALLAQYADVTDEEDEADEK 20 Phospho (STY)
#> 4 AALLAQYADVTDEEDEADEK 20 Phospho (STY)
#> 5 AALLAQYADVTDEEDEADEK 20 Phospho (STY)
#> 6 AALLAQYADVTDEEDEADEK 20 Phospho (STY)
#> Modified.sequence Oxidation..M..Probabilities
#> 1 _AALLAQYADVT(Phospho (STY))DEEDEADEK_
#> 2 _AALLAQYADVT(Phospho (STY))DEEDEADEK_
#> 3 _AALLAQYADVT(Phospho (STY))DEEDEADEK_
#> 4 _AALLAQYADVT(Phospho (STY))DEEDEADEK_
#> 5 _AALLAQYADVT(Phospho (STY))DEEDEADEK_
#> 6 _AALLAQYADVT(Phospho (STY))DEEDEADEK_
#> Phospho..STY..Probabilities Oxidation..M..Score.Diffs
#> 1 AALLAQYADVT(1)DEEDEADEK
#> 2 AALLAQY(0.316)ADVT(0.684)DEEDEADEK
#> 3 AALLAQYADVT(1)DEEDEADEK
#> 4 AALLAQY(0.001)ADVT(0.999)DEEDEADEK
#> 5 AALLAQY(0.001)ADVT(0.999)DEEDEADEK
#> 6 AALLAQYADVT(1)DEEDEADEK
#> Phospho..STY..Score.Diffs Acetyl..N.term. Oxidation..M. Phospho..STY.
#> 1 AALLAQY(-74)ADVT(74)DEEDEADEK 0 0 1
#> 2 AALLAQY(-3.3)ADVT(3.3)DEEDEADEK 0 0 1
#> 3 AALLAQY(-75)ADVT(75)DEEDEADEK 0 0 1
#> 4 AALLAQY(-29)ADVT(29)DEEDEADEK 0 0 1
#> 5 AALLAQY(-29)ADVT(29)DEEDEADEK 0 0 1
#> 6 AALLAQY(-39)ADVT(39)DEEDEADEK 0 0 1
#> Missed.cleavages Proteins Leading.proteins Leading.razor.protein Gene.names
#> 1 0 Q96MW1 Q96MW1 Q96MW1 CCDC43
#> 2 0 Q96MW1 Q96MW1 Q96MW1 CCDC43
#> 3 0 Q96MW1 Q96MW1 Q96MW1 CCDC43
#> 4 0 Q96MW1 Q96MW1 Q96MW1 CCDC43
#> 5 0 Q96MW1 Q96MW1 Q96MW1 CCDC43
#> 6 0 Q96MW1 Q96MW1 Q96MW1 CCDC43
#> Protein.names Type
#> 1 Coiled-coil domain-containing protein 43 MULTI-MSMS
#> 2 Coiled-coil domain-containing protein 43 MSMS
#> 3 Coiled-coil domain-containing protein 43 MULTI-MSMS
#> 4 Coiled-coil domain-containing protein 43 MULTI-MSMS
#> 5 Coiled-coil domain-containing protein 43 MSMS
#> 6 Coiled-coil domain-containing protein 43 MSMS
#> Raw.file Fraction Experiment MS.MS.m.z
#> 1 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 1 MS2 912.0978
#> 2 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 1 MS2 911.7875
#> 3 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_2 2 MS2 912.4321
#> 4 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_2 2 MS2 912.4330
#> 5 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_2 2 MS2 912.0959
#> 6 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_2 2 MS2 912.1791
#> Charge m.z Mass Uncalibrated...Calibrated.m.z..ppm.
#> 1 3 759.3212 2274.942 2.5755
#> 2 3 759.3212 2274.942 NaN
#> 3 3 759.3212 2274.942 2.0210
#> 4 3 759.3212 2274.942 2.2832
#> 5 3 759.3212 2274.942 NaN
#> 6 3 759.3212 2274.942 NaN
#> Uncalibrated...Calibrated.m.z..Da. Mass.error..ppm. Mass.error..Da.
#> 1 0.0019556 201200 152.78
#> 2 NaN NaN NaN
#> 3 0.0015346 201200 152.78
#> 4 0.0017337 201200 152.78
#> 5 NaN NaN NaN
#> 6 NaN NaN NaN
#> Uncalibrated.mass.error..ppm. Uncalibrated.mass.error..Da.
#> 1 201200 152.78
#> 2 NaN NaN
#> 3 201200 152.78
#> 4 201200 152.78
#> 5 NaN NaN
#> 6 NaN NaN
#> Max.intensity.m.z.0 Retention.time Retention.length Calibrated.retention.time
#> 1 912.4306 115.23 2.47460 115.23
#> 2 NaN 118.50 1.00000 118.50
#> 3 912.4308 114.72 2.35110 114.72
#> 4 912.4312 116.72 0.53974 116.72
#> 5 NaN 116.50 1.00000 116.50
#> 6 NaN 117.68 1.00000 117.68
#> Calibrated.retention.time.start Calibrated.retention.time.finish
#> 1 114.78 117.25
#> 2 118.00 119.00
#> 3 114.22 116.57
#> 4 116.57 117.11
#> 5 116.00 117.00
#> 6 117.18 118.18
#> Retention.time.calibration Match.time.difference Match.m.z.difference
#> 1 0 NA NA
#> 2 0 NA NA
#> 3 0 NA NA
#> 4 0 NA NA
#> 5 0 NA NA
#> 6 0 NA NA
#> Match.q.value Match.score Number.of.data.points Number.of.scans
#> 1 NA NA 382 108
#> 2 NA NA NA NA
#> 3 NA NA 356 106
#> 4 NA NA 42 23
#> 5 NA NA NA NA
#> 6 NA NA NA NA
#> Number.of.isotopic.peaks PIF Fraction.of.total.spectrum
#> 1 6 0.9277212 0.004005980
#> 2 NA NaN NaN
#> 3 6 0.9841691 0.006051585
#> 4 3 0.7940387 0.001093331
#> 5 NA NaN NaN
#> 6 NA NaN NaN
#> Base.peak.fraction PEP MS.MS.count MS.MS.scan.number Score
#> 1 0.09994941 1.8662e-46 2 38414 189.110
#> 2 NaN 1.6689e-02 1 39380 47.726
#> 3 0.08806564 5.8955e-39 2 38486 176.840
#> 4 0.02217602 5.4630e-08 1 38940 104.880
#> 5 NaN 8.6608e-27 1 38878 127.050
#> 6 NaN 4.8577e-26 1 39319 122.300
#> Delta.score Combinatorics Intensity Reporter.intensity.corrected.1
#> 1 180.010 2 240530000 125940
#> 2 30.847 2 NA 0
#> 3 167.750 2 102250000 155390
#> 4 89.116 2 11613000 69254
#> 5 118.860 2 NA 0
#> 6 114.110 2 NA 0
#> Reporter.intensity.corrected.2 Reporter.intensity.corrected.3
#> 1 133100 113620
#> 2 0 0
#> 3 164220 143320
#> 4 80370 60918
#> 5 0 0
#> 6 0 0
#> Reporter.intensity.corrected.4 Reporter.intensity.corrected.5
#> 1 119420 108710
#> 2 0 0
#> 3 160600 163330
#> 4 75915 67276
#> 5 0 0
#> 6 0 0
#> Reporter.intensity.corrected.6 Reporter.intensity.corrected.7
#> 1 155830 138320
#> 2 0 0
#> 3 205080 184670
#> 4 86921 80510
#> 5 0 0
#> 6 0 0
#> Reporter.intensity.corrected.8 Reporter.intensity.corrected.9
#> 1 158440 174430
#> 2 0 0
#> 3 178690 203130
#> 4 80892 87856
#> 5 0 0
#> 6 0 0
#> Reporter.intensity.corrected.10 Reporter.intensity.1 Reporter.intensity.2
#> 1 130450 125940 133100
#> 2 0 0 0
#> 3 155170 155390 164220
#> 4 82300 69254 80370
#> 5 0 0 0
#> 6 0 0 0
#> Reporter.intensity.3 Reporter.intensity.4 Reporter.intensity.5
#> 1 113620 119420 108710
#> 2 0 0 0
#> 3 143320 160600 163330
#> 4 60918 75915 67276
#> 5 0 0 0
#> 6 0 0 0
#> Reporter.intensity.6 Reporter.intensity.7 Reporter.intensity.8
#> 1 155830 138320 158440
#> 2 0 0 0
#> 3 205080 184670 178690
#> 4 86921 80510 80892
#> 5 0 0 0
#> 6 0 0 0
#> Reporter.intensity.9 Reporter.intensity.10 Reporter.intensity.count.1
#> 1 174430 130450 2
#> 2 0 0 0
#> 3 203130 155170 2
#> 4 87856 82300 1
#> 5 0 0 0
#> 6 0 0 0
#> Reporter.intensity.count.2 Reporter.intensity.count.3
#> 1 2 2
#> 2 0 0
#> 3 2 2
#> 4 1 1
#> 5 0 0
#> 6 0 0
#> Reporter.intensity.count.4 Reporter.intensity.count.5
#> 1 2 2
#> 2 0 0
#> 3 2 2
#> 4 1 1
#> 5 0 0
#> 6 0 0
#> Reporter.intensity.count.6 Reporter.intensity.count.7
#> 1 2 2
#> 2 0 0
#> 3 2 2
#> 4 1 1
#> 5 0 0
#> 6 0 0
#> Reporter.intensity.count.8 Reporter.intensity.count.9
#> 1 2 2
#> 2 0 0
#> 3 2 2
#> 4 1 1
#> 5 0 0
#> 6 0 0
#> Reporter.intensity.count.10 Reverse Potential.contaminant id
#> 1 2 125
#> 2 0 126
#> 3 2 127
#> 4 1 128
#> 5 0 129
#> 6 0 130
#> Protein.group.IDs Peptide.ID Mod..peptide.ID MS.MS.IDs Best.MS.MS
#> 1 2449 42 50 153;154 154
#> 2 2449 42 50 155 155
#> 3 2449 42 50 156;157 157
#> 4 2449 42 50 158 158
#> 5 2449 42 50 159 159
#> 6 2449 42 50 160 160
#> Oxidation..M..site.IDs Phospho..STY..site.IDs Taxonomy.IDs
#> 1 6884 NA
#> 2 6884 NA
#> 3 6884 NA
#> 4 6884 NA
#> 5 6884 NA
#> 6 6884 NA
head(maxq_tmt_annotation)
#> Run Fraction TechRepMixture
#> 1 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 1 1
#> 2 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 1 1
#> 3 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 1 1
#> 4 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 1 1
#> 5 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 1 1
#> 6 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 1 1
#> Channel Condition Mixture BioReplicate
#> 1 channel.10 yeast_01x Mixture1 yeast_01x_1
#> 2 channel.1 yeast_04x Mixture1 yeast_04x_1
#> 3 channel.2 yeast_10x Mixture1 yeast_10x_1
#> 4 channel.3 yeast_01x Mixture1 yeast_01x_2
#> 5 channel.4 yeast_04x Mixture1 yeast_04x_2
#> 6 channel.5 yeast_10x Mixture1 yeast_10x_2
msstats_format_tmt = MaxQtoMSstatsPTMFormat(evidence=maxq_tmt_evidence,
annotation=maxq_tmt_annotation,
fasta=system.file("extdata",
"maxq_tmt_fasta.fasta",
package="MSstatsPTM"),
fasta_protein_name="uniprot_ac",
mod_id="\\(Phospho \\(STY\\)\\)",
use_unmod_peptides=TRUE,
labeling_type = "TMT",
which_proteinid_ptm = "Proteins")
#> INFO [2024-09-25 19:16:17] ** Raw data from MaxQuant imported successfully.
#> INFO [2024-09-25 19:16:17] ** Rows with values of Potentialcontaminant equal to + are removed
#> INFO [2024-09-25 19:16:17] ** Rows with values of Reverse equal to + are removed
#> INFO [2024-09-25 19:16:17] ** Features with all missing measurements across channels within each run are removed.
#> INFO [2024-09-25 19:16:17] ** Using provided annotation.
#> INFO [2024-09-25 19:16:17] ** Run and Channel labels were standardized to remove symbols such as '.' or '%'.
#> INFO [2024-09-25 19:16:17] ** The following options are used:
#> - Features will be defined by the columns: PeptideSequence, PrecursorCharge
#> - Shared peptides will be removed.
#> - Proteins with single feature will not be removed.
#> - Features with less than 3 measurements within each run will be kept.
#> INFO [2024-09-25 19:16:17] ** Features with all missing measurements across channels within each run are removed.
#> INFO [2024-09-25 19:16:17] ** Shared peptides are removed.
#> INFO [2024-09-25 19:16:17] ** Features with all missing measurements across channels within each run are removed.
#> INFO [2024-09-25 19:16:17] ** PSMs have been aggregated to peptide ions.
#> INFO [2024-09-25 19:16:17] ** Run annotation merged with quantification data.
#> INFO [2024-09-25 19:16:17] ** Features with one or two measurements across channels within each run are removed.
#> INFO [2024-09-25 19:16:17] ** Fractionation handled.
#> INFO [2024-09-25 19:16:17] ** Updated quantification data to make balanced design. Missing values are marked by NA
#> INFO [2024-09-25 19:16:17] ** Finished preprocessing. The dataset is ready to be processed by the proteinSummarization function.
head(msstats_format_tmt$PTM)
#> ProteinName PeptideSequence Charge
#> 1 Q96MW1_T139 AALLAQYADVT(Phospho (STY))DEEDEADEK 3
#> 2 Q96MW1_T139 AALLAQYADVT(Phospho (STY))DEEDEADEK 3
#> 3 Q96MW1_T139 AALLAQYADVT(Phospho (STY))DEEDEADEK 3
#> 4 Q96MW1_T139 AALLAQYADVT(Phospho (STY))DEEDEADEK 3
#> 5 Q96MW1_T139 AALLAQYADVT(Phospho (STY))DEEDEADEK 3
#> 6 Q96MW1_T139 AALLAQYADVT(Phospho (STY))DEEDEADEK 3
#> PSM Mixture TechRepMixture
#> 1 AALLAQYADVT(Phospho (STY))DEEDEADEK_3 Mixture1 1
#> 2 AALLAQYADVT(Phospho (STY))DEEDEADEK_3 Mixture1 1
#> 3 AALLAQYADVT(Phospho (STY))DEEDEADEK_3 Mixture1 1
#> 4 AALLAQYADVT(Phospho (STY))DEEDEADEK_3 Mixture1 1
#> 5 AALLAQYADVT(Phospho (STY))DEEDEADEK_3 Mixture1 1
#> 6 AALLAQYADVT(Phospho (STY))DEEDEADEK_3 Mixture1 1
#> Run Channel BioReplicate
#> 1 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 channel1 yeast_04x_1
#> 2 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 channel10 yeast_01x_1
#> 3 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 channel2 yeast_10x_1
#> 4 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 channel3 yeast_01x_2
#> 5 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 channel4 yeast_04x_2
#> 6 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 channel5 yeast_10x_2
#> Condition Intensity
#> 1 yeast_04x 125940
#> 2 yeast_01x 130450
#> 3 yeast_10x 133100
#> 4 yeast_01x 113620
#> 5 yeast_04x 119420
#> 6 yeast_10x 108710
head(msstats_format_tmt$PROTEIN)
#> ProteinName PeptideSequence Charge PSM Mixture
#> 351 P29966 EAGEGGEAEAPAAEGGK 2 EAGEGGEAEAPAAEGGK_2 Mixture1
#> 352 P29966 EAGEGGEAEAPAAEGGK 2 EAGEGGEAEAPAAEGGK_2 Mixture1
#> 353 P29966 EAGEGGEAEAPAAEGGK 2 EAGEGGEAEAPAAEGGK_2 Mixture1
#> 354 P29966 EAGEGGEAEAPAAEGGK 2 EAGEGGEAEAPAAEGGK_2 Mixture1
#> 355 P29966 EAGEGGEAEAPAAEGGK 2 EAGEGGEAEAPAAEGGK_2 Mixture1
#> 356 P29966 EAGEGGEAEAPAAEGGK 2 EAGEGGEAEAPAAEGGK_2 Mixture1
#> TechRepMixture Run Channel
#> 351 1 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 channel1
#> 352 1 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 channel10
#> 353 1 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 channel2
#> 354 1 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 channel3
#> 355 1 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 channel4
#> 356 1 20171106_LUMOS1_nLC13_AH_TechBench2_TMTMS2L_1 channel5
#> BioReplicate Condition Intensity
#> 351 yeast_04x_1 yeast_04x 23384
#> 352 yeast_01x_1 yeast_01x 29612
#> 353 yeast_10x_1 yeast_10x 26450
#> 354 yeast_01x_2 yeast_01x 33341
#> 355 yeast_04x_2 yeast_04x 22335
#> 356 yeast_10x_2 yeast_10x 27212
# LF experiment
head(maxq_lf_evidence)
#> Sequence Length Modifications Modified.sequence
#> 1 AAAAAAALQAK 11 Unmodified _AAAAAAALQAK_
#> 2 AAAAAAALQAK 11 Unmodified _AAAAAAALQAK_
#> 3 AAAAAAALQAK 11 Unmodified _AAAAAAALQAK_
#> 4 AAAAAAALQAK 11 Unmodified _AAAAAAALQAK_
#> 5 AAAAAAALQAK 11 Unmodified _AAAAAAALQAK_
#> 6 AAAAAAALQAK 11 Unmodified _AAAAAAALQAK_
#> Oxidation..M..Probabilities Phospho..STY..Probabilities
#> 1
#> 2
#> 3
#> 4
#> 5
#> 6
#> Oxidation..M..Score.Diffs Phospho..STY..Score.Diffs Acetyl..Protein.N.term.
#> 1 0
#> 2 0
#> 3 0
#> 4 0
#> 5 0
#> 6 0
#> Oxidation..M. Phospho..STY. Missed.cleavages Proteins
#> 1 0 0 0 P36578
#> 2 0 0 0 P36578
#> 3 0 0 0 P36578
#> 4 0 0 0 P36578
#> 5 0 0 0 P36578
#> 6 0 0 0 P36578
#> Leading.proteins
#> 1 sp|P36578|RL4_HUMAN60SribosomalproteinL4OS=Homosapiens(Human)OX=9606GN=RPL4PE=1SV=5
#> 2 sp|P36578|RL4_HUMAN60SribosomalproteinL4OS=Homosapiens(Human)OX=9606GN=RPL4PE=1SV=5
#> 3 sp|P36578|RL4_HUMAN60SribosomalproteinL4OS=Homosapiens(Human)OX=9606GN=RPL4PE=1SV=5
#> 4 sp|P36578|RL4_HUMAN60SribosomalproteinL4OS=Homosapiens(Human)OX=9606GN=RPL4PE=1SV=5
#> 5 sp|P36578|RL4_HUMAN60SribosomalproteinL4OS=Homosapiens(Human)OX=9606GN=RPL4PE=1SV=5
#> 6 sp|P36578|RL4_HUMAN60SribosomalproteinL4OS=Homosapiens(Human)OX=9606GN=RPL4PE=1SV=5
#> Leading.razor.protein
#> 1 sp|P36578|RL4_HUMAN60SribosomalproteinL4OS=Homosapiens(Human)OX=9606GN=RPL4PE=1SV=5
#> 2 sp|P36578|RL4_HUMAN60SribosomalproteinL4OS=Homosapiens(Human)OX=9606GN=RPL4PE=1SV=5
#> 3 sp|P36578|RL4_HUMAN60SribosomalproteinL4OS=Homosapiens(Human)OX=9606GN=RPL4PE=1SV=5
#> 4 sp|P36578|RL4_HUMAN60SribosomalproteinL4OS=Homosapiens(Human)OX=9606GN=RPL4PE=1SV=5
#> 5 sp|P36578|RL4_HUMAN60SribosomalproteinL4OS=Homosapiens(Human)OX=9606GN=RPL4PE=1SV=5
#> 6 sp|P36578|RL4_HUMAN60SribosomalproteinL4OS=Homosapiens(Human)OX=9606GN=RPL4PE=1SV=5
#> Type Raw.file Experiment MS.MS.m.z Charge
#> 1 MULTI-MSMS 20180810_QE3_nLC3_AH_DDA_H100_Y25_01 H100_Y25_01 478.7820 2
#> 2 MULTI-MSMS 20180810_QE3_nLC3_AH_DDA_H100_Y25_03 H100_Y25_03 478.7810 2
#> 3 MULTI-MSMS 20180810_QE3_nLC3_AH_DDA_H100_Y25_04 H100_Y25_04 478.7803 2
#> 4 MULTI-MSMS 20180810_QE3_nLC3_AH_DDA_H100_Y25_05 H100_Y25_05 478.7815 2
#> 5 MULTI-MSMS 20180810_QE3_nLC3_AH_DDA_H100_Y25_06 H100_Y25_06 478.7802 2
#> 6 MULTI-MSMS 20180810_QE3_nLC3_AH_DDA_H100_Y50_01 H100_Y50_01 478.7803 2
#> m.z Mass Uncalibrated...Calibrated.m.z..ppm.
#> 1 478.7798 955.5451 5.0066
#> 2 478.7798 955.5451 2.4819
#> 3 478.7798 955.5451 2.1796
#> 4 478.7798 955.5451 2.2967
#> 5 478.7798 955.5451 2.9534
#> 6 478.7798 955.5451 1.6198
#> Uncalibrated...Calibrated.m.z..Da. Mass.error..ppm. Mass.error..Da.
#> 1 0.00239710 -0.46202 -0.00022120
#> 2 0.00118830 0.76954 0.00036844
#> 3 0.00104350 -0.27332 -0.00013086
#> 4 0.00109960 0.50609 0.00024231
#> 5 0.00141400 -0.77230 -0.00036976
#> 6 0.00077553 -0.92114 -0.00044102
#> Uncalibrated.mass.error..ppm. Uncalibrated.mass.error..Da.
#> 1 4.54460 0.00217590
#> 2 3.25140 0.00155670
#> 3 1.90620 0.00091267
#> 4 2.80280 0.00134190
#> 5 2.18110 0.00104430
#> 6 0.69867 0.00033451
#> Max.intensity.m.z.0 Retention.time Retention.length Calibrated.retention.time
#> 1 478.7797 6.2039 0.079819 6.2039
#> 2 478.7799 6.2822 0.090469 6.2822
#> 3 478.7796 6.2327 0.110390 6.2327
#> 4 478.7799 6.2924 0.090472 6.2924
#> 5 478.7793 6.9938 0.089908 6.9938
#> 6 478.7792 6.1802 0.110780 6.1802
#> Calibrated.retention.time.start Calibrated.retention.time.finish
#> 1 6.1683 6.2481
#> 2 6.2257 6.3162
#> 3 6.1950 6.3054
#> 4 6.2470 6.3375
#> 5 6.9485 7.0384
#> 6 6.1278 6.2385
#> Retention.time.calibration Match.time.difference Match.m.z.difference
#> 1 0 NA NA
#> 2 0 NA NA
#> 3 0 NA NA
#> 4 0 NA NA
#> 5 0 NA NA
#> 6 0 NA NA
#> Match.q.value Match.score Number.of.data.points Number.of.scans
#> 1 NA NA 15 7
#> 2 NA NA 14 8
#> 3 NA NA 19 10
#> 4 NA NA 18 8
#> 5 NA NA 17 8
#> 6 NA NA 17 10
#> Number.of.isotopic.peaks PIF Fraction.of.total.spectrum Base.peak.fraction
#> 1 3 0 0 0
#> 2 3 0 0 0
#> 3 2 0 0 0
#> 4 3 0 0 0
#> 5 3 0 0 0
#> 6 2 0 0 0
#> PEP MS.MS.count MS.MS.scan.number Score Delta.score Combinatorics
#> 1 1.2617e-03 1 4016 78.149 67.201 1
#> 2 8.8997e-05 1 4158 111.170 95.303 1
#> 3 3.4144e-04 1 4087 99.442 84.065 1
#> 4 1.2494e-03 1 4148 76.679 61.302 1
#> 5 6.5027e-05 1 4774 114.890 96.560 1
#> 6 8.7846e-05 1 3994 111.950 96.570 1
#> Intensity Reverse Potential.contaminant id Protein.group.IDs Peptide.ID
#> 1 7589900 0 1276 0
#> 2 11810000 1 1276 0
#> 3 10223000 2 1276 0
#> 4 10733000 3 1276 0
#> 5 17840000 4 1276 0
#> 6 9679200 5 1276 0
#> Mod..peptide.ID MS.MS.IDs Best.MS.MS Oxidation..M..site.IDs
#> 1 0 0 0
#> 2 0 1 1
#> 3 0 2 2
#> 4 0 3 3
#> 5 0 4 4
#> 6 0 5 5
#> Phospho..STY..site.IDs Taxonomy.IDs
#> 1 NA
#> 2 NA
#> 3 NA
#> 4 NA
#> 5 NA
#> 6 NA
head(maxq_lf_annotation)
#> Run Condition BioReplicate
#> 1 20180810_QE3_nLC3_AH_DDA_Yonly_ind_01 H0_Y100 H0_Y100_01
#> 2 20180810_QE3_nLC3_AH_DDA_Yonly_ind_02 H0_Y100 H0_Y100_02
#> 3 20180810_QE3_nLC3_AH_DDA_Yonly_ind_03 H0_Y100 H0_Y100_03
#> 4 20180810_QE3_nLC3_AH_DDA_Honly_ind_01 H100_Y0 H100_Y0_04
#> 5 20180810_QE3_nLC3_AH_DDA_Honly_ind_02 H100_Y0 H100_Y0_05
#> 6 20180810_QE3_nLC3_AH_DDA_Honly_ind_03 H100_Y0 H100_Y0_06
#> Raw.file IsotopeLabelType
#> 1 20180810_QE3_nLC3_AH_DDA_Yonly_ind_01 L
#> 2 20180810_QE3_nLC3_AH_DDA_Yonly_ind_02 L
#> 3 20180810_QE3_nLC3_AH_DDA_Yonly_ind_03 L
#> 4 20180810_QE3_nLC3_AH_DDA_Honly_ind_01 L
#> 5 20180810_QE3_nLC3_AH_DDA_Honly_ind_02 L
#> 6 20180810_QE3_nLC3_AH_DDA_Honly_ind_03 L
msstats_format_lf = 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=TRUE,
labeling_type = "LF",
which_proteinid_ptm = "Proteins")
#> INFO [2024-09-25 19:16:17] ** Raw data from MaxQuant imported successfully.
#> INFO [2024-09-25 19:16:17] ** Rows with values of Potentialcontaminant equal to + are removed
#> INFO [2024-09-25 19:16:17] ** Rows with values of Reverse equal to + are removed
#> INFO [2024-09-25 19:16:17] ** Using provided annotation.
#> INFO [2024-09-25 19:16:17] ** Run labels were standardized to remove symbols such as '.' or '%'.
#> INFO [2024-09-25 19:16:17] ** The following options are used:
#> - Features will be defined by the columns: PeptideSequence, PrecursorCharge
#> - Shared peptides will be removed.
#> - Proteins with single feature will not be removed.
#> - Features with less than 3 measurements across runs will be removed.
#> INFO [2024-09-25 19:16:17] ** Features with all missing measurements across runs are removed.
#> INFO [2024-09-25 19:16:17] ** Shared peptides are removed.
#> INFO [2024-09-25 19:16:17] ** Multiple measurements in a feature and a run are summarized by summaryforMultipleRows: max
#> INFO [2024-09-25 19:16:17] ** Features with one or two measurements across runs are removed.
#> INFO [2024-09-25 19:16:17] ** Run annotation merged with quantification data.
#> INFO [2024-09-25 19:16:17] ** Features with one or two measurements across runs are removed.
#> INFO [2024-09-25 19:16:17] ** Fractionation handled.
#> INFO [2024-09-25 19:16:17] ** Updated quantification data to make balanced design. Missing values are marked by NA
#> INFO [2024-09-25 19:16:17] ** Finished preprocessing. The dataset is ready to be processed by the dataProcess function.
head(msstats_format_lf$PTM)
#> ProteinName PeptideSequence PrecursorCharge
#> 37 P09938_S15_S22 AAADALS(Phospho (STY))DLEIKDS(Phospho (STY))K 2
#> 38 P09938_S15_S22 AAADALS(Phospho (STY))DLEIKDS(Phospho (STY))K 2
#> 39 P09938_S15_S22 AAADALS(Phospho (STY))DLEIKDS(Phospho (STY))K 2
#> 40 P09938_S15_S22 AAADALS(Phospho (STY))DLEIKDS(Phospho (STY))K 2
#> 41 P09938_S15_S22 AAADALS(Phospho (STY))DLEIKDS(Phospho (STY))K 2
#> 42 P09938_S15_S22 AAADALS(Phospho (STY))DLEIKDS(Phospho (STY))K 2
#> FragmentIon ProductCharge IsotopeLabelType Condition BioReplicate
#> 37 NA NA L H100_Y100 H100_Y100_19
#> 38 NA NA L H100_Y100 H100_Y100_20
#> 39 NA NA L H100_Y100 H100_Y100_21
#> 40 NA NA L H100_Y100 H100_Y100_22
#> 41 NA NA L H100_Y100 H100_Y100_23
#> 42 NA NA L H100_Y100 H100_Y100_24
#> Run Fraction Intensity
#> 37 20180810_QE3_nLC3_AH_DDA_H100_Y100_01 1 NA
#> 38 20180810_QE3_nLC3_AH_DDA_H100_Y100_02 1 NA
#> 39 20180810_QE3_nLC3_AH_DDA_H100_Y100_03 1 NA
#> 40 20180810_QE3_nLC3_AH_DDA_H100_Y100_04 1 NA
#> 41 20180810_QE3_nLC3_AH_DDA_H100_Y100_05 1 NA
#> 42 20180810_QE3_nLC3_AH_DDA_H100_Y100_06 1 NA
head(msstats_format_lf$PROTEIN)
#> ProteinName PeptideSequence PrecursorCharge FragmentIon ProductCharge
#> 1 P36578 AAAAAAALQAK 2 NA NA
#> 2 P36578 AAAAAAALQAK 2 NA NA
#> 3 P36578 AAAAAAALQAK 2 NA NA
#> 4 P36578 AAAAAAALQAK 2 NA NA
#> 5 P36578 AAAAAAALQAK 2 NA NA
#> 6 P36578 AAAAAAALQAK 2 NA NA
#> IsotopeLabelType Condition BioReplicate Run
#> 1 L H100_Y100 H100_Y100_19 20180810_QE3_nLC3_AH_DDA_H100_Y100_01
#> 2 L H100_Y100 H100_Y100_20 20180810_QE3_nLC3_AH_DDA_H100_Y100_02
#> 3 L H100_Y100 H100_Y100_21 20180810_QE3_nLC3_AH_DDA_H100_Y100_03
#> 4 L H100_Y100 H100_Y100_22 20180810_QE3_nLC3_AH_DDA_H100_Y100_04
#> 5 L H100_Y100 H100_Y100_23 20180810_QE3_nLC3_AH_DDA_H100_Y100_05
#> 6 L H100_Y100 H100_Y100_24 20180810_QE3_nLC3_AH_DDA_H100_Y100_06
#> Fraction Intensity
#> 1 1 13697000
#> 2 1 8738100
#> 3 1 10827000
#> 4 1 9628900
#> 5 1 9485600
#> 6 1 NA
FragPipetoMSstatsPTMFormat
MSstatsPTM
includes a dedicated converter for FragPipe output. Experiments must be acquired with TMT labeling methods (a label-free converter is currently in development).The input is the msstats.csv
and annotation files automatically generated by FragPipe. FragPipe provides additional info on the localization of modification sites, and the FragPipetoMSstatsPTMFormat
converter includes localization options that are not present in other converters.
head(fragpipe_input)
#> Spectrum.Name
#> 1 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01.02743.02743.4
#> 2 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01.02755.02755.4
#> 3 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01.02812.02812.3
#> 4 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01.02913.02913.3
#> 5 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01.02920.02920.5
#> 6 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01.02975.02975.3
#> Spectrum.File Peptide.Sequence
#> 1 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01.mzML RRHSHSHSPMSTR
#> 2 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01.mzML RHSHSHSPMSTR
#> 3 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01.mzML HSHSHSPMSTR
#> 4 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01.mzML HTRDSEAQR
#> 5 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01.mzML QHREPSEQEHRR
#> 6 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01.mzML RRSTSPDHTR
#> Modified.Peptide.Sequence Probability Charge Protein.Start
#> 1 n[230]RRHSHS[167]HS[167]PM[147]STR 0.9953 4 92
#> 2 n[230]RHSHS[167]HS[167]PM[147]STR 0.9962 4 93
#> 3 n[230]HSHS[167]HS[167]PM[147]STR 0.9957 3 94
#> 4 n[230]HTRDS[167]EAQR 0.9778 3 6
#> 5 n[230]QHREPS[167]EQEHRR 0.9979 5 123
#> 6 n[230]RRS[167]T[181]SPDHTR 0.9976 3 636
#> Protein.End Gene Mapped.Genes Protein Protein.ID
#> 1 104 TRA2B sp|P62995|TRA2B_HUMAN P62995
#> 2 104 TRA2B sp|P62995|TRA2B_HUMAN P62995
#> 3 104 TRA2B sp|P62995|TRA2B_HUMAN P62995
#> 4 14 STOM sp|P27105|STOM_HUMAN P27105
#> 5 134 SNIP1 sp|Q8TAD8|SNIP1_HUMAN Q8TAD8
#> 6 645 AKAP17A sp|Q02040|AK17A_HUMAN Q02040
#> Mapped.Proteins Protein.Description Is.Unique Purity Intensity
#> 1 Transformer-2 protein homolog beta true 0.00 0
#> 2 Transformer-2 protein homolog beta true 1.00 93998240
#> 3 Transformer-2 protein homolog beta true 1.00 58713048
#> 4 Stomatin true 0.53 0
#> 5 Smad nuclear-interacting protein 1 true 0.84 32706532
#> 6 A-kinase anchor protein 17A true 1.00 28102432
#> M.15.9949 STY.79.966331
#> 1 RRHSHSHSPM(1.0000)STR RRHS(0.1780)HS(0.8463)HS(0.8392)PMS(0.0709)T(0.0656)R
#> 2 RHSHSHSPM(1.0000)STR RHS(0.1497)HS(0.8741)HS(0.8698)PMS(0.0523)T(0.0542)R
#> 3 HSHSHSPM(1.0000)STR HS(0.0582)HS(0.9325)HS(0.9327)PMS(0.0387)T(0.0380)R
#> 4 HT(0.3995)RDS(0.6005)EAQR
#> 5 QHREPS(1.0000)EQEHRR
#> 6 RRS(0.7370)T(0.7512)S(0.4257)PDHT(0.0862)R
#> Channel.126 Channel.127N Channel.127C Channel.128N Channel.128C Channel.129N
#> 1 5578.652 8280.212 7034.635 10747.431 14872.24 17204.29
#> 2 19045.867 25291.979 38326.629 34385.059 42117.77 72897.84
#> 3 18498.551 24321.078 33518.191 31881.815 36766.03 60230.07
#> 4 13825.080 15933.881 8398.121 8001.169 12493.29 22851.57
#> 5 13345.636 24715.256 11790.443 18234.275 34780.09 12546.47
#> 6 15176.378 8430.135 14684.991 19511.988 38792.40 58184.98
#> Channel.129C Channel.130N Channel.130C Channel.131N
#> 1 15443.60 11442.942 12985.56 11235.75
#> 2 33277.25 50290.703 49428.89 26749.50
#> 3 31366.80 41944.098 47435.18 20533.39
#> 4 11001.78 8394.632 10014.59 14173.92
#> 5 29433.08 18376.287 14489.56 16896.90
#> 6 26905.22 26273.547 24920.71 15653.74
head(fragpipe_annotation)
#> Run Fraction TechRepMixture Mixture
#> 1 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01 1 1 plex16
#> 2 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f02 2 1 plex16
#> 3 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f03 3 1 plex16
#> 4 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01 1 1 plex16
#> 5 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f02 2 1 plex16
#> 6 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f03 3 1 plex16
#> Channel BioReplicate Condition
#> 1 126 CPT0088900003_T T
#> 2 126 CPT0088900003_T T
#> 3 126 CPT0088900003_T T
#> 4 127N CPT0079270003_T T
#> 5 127N CPT0079270003_T T
#> 6 127N CPT0079270003_T T
head(fragpipe_input_protein)
#> Spectrum.Name
#> 1 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01.03785.03785.3
#> 2 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01.04553.04553.3
#> 3 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01.05163.05163.3
#> 4 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01.05368.05368.2
#> 5 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01.06388.06388.3
#> 6 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01.09515.09515.2
#> Spectrum.File Peptide.Sequence
#> 1 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01.mzML ANGMELDGRR
#> 2 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01.mzML EEMDDQDK
#> 3 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01.mzML ANGMELDGRR
#> 4 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01.mzML EYEQDQSSSR
#> 5 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01.mzML DRDTQNLQAQEEER
#> 6 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01.mzML EEMDDQDK
#> Modified.Peptide.Sequence Probability Charge Protein.Start Protein.End Gene
#> 1 ANGM[147]ELDGRR 0.8947 3 180 189 TRA2A
#> 2 n[230]EEM[147]DDQDK 0.8677 3 428 435 THRAP3
#> 3 0.9888 3 180 189 TRA2A
#> 4 n[230]EYEQDQSSSR 1.0000 2 435 444 ZC3H13
#> 5 n[230]DRDTQNLQAQEEER 1.0000 3 166 179 SNIP1
#> 6 n[230]EEMDDQDK 1.0000 2 428 435 THRAP3
#> Mapped.Genes Protein Protein.ID Mapped.Proteins
#> 1 TRA2B sp|Q13595|TRA2A_HUMAN Q13595 sp|P62995|TRA2B_HUMAN
#> 2 sp|Q9Y2W1|TR150_HUMAN Q9Y2W1
#> 3 TRA2B sp|Q13595|TRA2A_HUMAN Q13595 sp|P62995|TRA2B_HUMAN
#> 4 sp|Q5T200|ZC3HD_HUMAN Q5T200
#> 5 sp|Q8TAD8|SNIP1_HUMAN Q8TAD8
#> 6 sp|Q9Y2W1|TR150_HUMAN Q9Y2W1
#> Protein.Description Is.Unique Purity Intensity
#> 1 Transformer-2 protein homolog alpha false 0.66 11404057
#> 2 Thyroid hormone receptor-associated protein 3 true 1.00 214722976
#> 3 Transformer-2 protein homolog alpha false 1.00 0
#> 4 Zinc finger CCCH domain-containing protein 13 true 1.00 0
#> 5 Smad nuclear-interacting protein 1 true 1.00 23654240
#> 6 Thyroid hormone receptor-associated protein 3 true 1.00 137334144
#> Channel.126 Channel.127N Channel.127C Channel.128N Channel.128C Channel.129N
#> 1 0.00 0.00 0.00 0.00 0.00 0.00
#> 2 169649.80 128647.68 211484.62 217940.97 285032.38 386665.06
#> 3 0.00 0.00 0.00 0.00 0.00 0.00
#> 4 27110.14 27206.84 18804.96 31722.93 46041.87 56579.66
#> 5 34456.11 45179.79 32160.84 45215.09 75652.51 31730.62
#> 6 540481.56 393964.88 647020.00 672371.25 932212.88 1208951.00
#> Channel.129C Channel.130N Channel.130C Channel.131N
#> 1 0.00 0.00 0.00 0.00
#> 2 214397.91 235756.58 217907.38 128019.87
#> 3 0.00 0.00 0.00 0.00
#> 4 37022.87 38246.96 35628.89 29679.23
#> 5 46960.10 51399.19 38244.52 36727.02
#> 6 665127.81 719719.12 749849.31 429616.81
head(fragpipe_annotation_protein)
#> Run Fraction TechRepMixture Mixture
#> 1 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01 1 1 plex16
#> 2 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f02 2 1 plex16
#> 3 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f03 3 1 plex16
#> 4 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01 1 1 plex16
#> 5 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f02 2 1 plex16
#> 6 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f03 3 1 plex16
#> Channel BioReplicate Condition
#> 1 126 CPT0088900003_T T
#> 2 126 CPT0088900003_T T
#> 3 126 CPT0088900003_T T
#> 4 127N CPT0079270003_T T
#> 5 127N CPT0079270003_T T
#> 6 127N CPT0079270003_T T
msstats_data = FragPipetoMSstatsPTMFormat(fragpipe_input,
fragpipe_annotation,
fragpipe_input_protein,
fragpipe_annotation_protein,
mod_id_col = "STY",
localization_cutoff=.75,
remove_unlocalized_peptides=TRUE)
#> INFO [2024-09-25 19:16:18] ** Raw data from Philosopher imported successfully.
#> INFO [2024-09-25 19:16:18] ** Using provided annotation.
#> INFO [2024-09-25 19:16:18] ** Run and Channel labels were standardized to remove symbols such as '.' or '%'.
#> INFO [2024-09-25 19:16:18] ** The following options are used:
#> - Features will be defined by the columns: PeptideSequence, PrecursorCharge
#> - Shared peptides will be removed.
#> - Proteins with single feature will not be removed.
#> - Features with less than 3 measurements within each run will be kept.
#> INFO [2024-09-25 19:16:18] ** Rows with values not greater than 0.6 in Purity are removed
#> WARN [2024-09-25 19:16:18] ** PeptideProphetProbability not found in input columns.
#> INFO [2024-09-25 19:16:18] ** Sequences containing Oxidation are removed.
#> INFO [2024-09-25 19:16:18] ** Features with all missing measurements across channels within each run are removed.
#> INFO [2024-09-25 19:16:18] ** Shared peptides are removed.
#> INFO [2024-09-25 19:16:18] ** Features with all missing measurements across channels within each run are removed.
#> INFO [2024-09-25 19:16:18] ** PSMs have been aggregated to peptide ions.
#> INFO [2024-09-25 19:16:18] ** Run annotation merged with quantification data.
#> INFO [2024-09-25 19:16:18] ** Features with one or two measurements across channels within each run are removed.
#> INFO [2024-09-25 19:16:18] ** Fractionation handled.
#> INFO [2024-09-25 19:16:18] ** Updated quantification data to make balanced design. Missing values are marked by NA
#> INFO [2024-09-25 19:16:18] ** Finished preprocessing. The dataset is ready to be processed by the proteinSummarization function.
#> INFO [2024-09-25 19:16:18] ** Raw data from Philosopher imported successfully.
#> INFO [2024-09-25 19:16:18] ** Using provided annotation.
#> INFO [2024-09-25 19:16:18] ** Run and Channel labels were standardized to remove symbols such as '.' or '%'.
#> INFO [2024-09-25 19:16:18] ** The following options are used:
#> - Features will be defined by the columns: PeptideSequence, PrecursorCharge
#> - Shared peptides will be removed.
#> - Proteins with single feature will not be removed.
#> - Features with less than 3 measurements within each run will be kept.
#> INFO [2024-09-25 19:16:18] ** Rows with values not greater than 0.6 in Purity are removed
#> WARN [2024-09-25 19:16:18] ** PeptideProphetProbability not found in input columns.
#> INFO [2024-09-25 19:16:18] ** Sequences containing Oxidation are removed.
#> INFO [2024-09-25 19:16:18] ** Features with all missing measurements across channels within each run are removed.
#> INFO [2024-09-25 19:16:18] ** Shared peptides are removed.
#> INFO [2024-09-25 19:16:18] ** Features with all missing measurements across channels within each run are removed.
#> INFO [2024-09-25 19:16:18] ** PSMs have been aggregated to peptide ions.
#> INFO [2024-09-25 19:16:18] ** Run annotation merged with quantification data.
#> INFO [2024-09-25 19:16:18] ** Features with one or two measurements across channels within each run are removed.
#> INFO [2024-09-25 19:16:18] ** Fractionation handled.
#> INFO [2024-09-25 19:16:18] ** Updated quantification data to make balanced design. Missing values are marked by NA
#> INFO [2024-09-25 19:16:18] ** Finished preprocessing. The dataset is ready to be processed by the proteinSummarization function.
head(msstats_data$PTM)
#> ProteinName PeptideSequence Charge
#> 1 sp|Q9Y2W1|TR150_HUMAN_S805 AEEYTEETEEREES*TTGFDK 3
#> 2 sp|Q9Y2W1|TR150_HUMAN_S805 AEEYTEETEEREES*TTGFDK 3
#> 3 sp|Q9Y2W1|TR150_HUMAN_S805 AEEYTEETEEREES*TTGFDK 3
#> 4 sp|Q9Y2W1|TR150_HUMAN_S805 AEEYTEETEEREES*TTGFDK 3
#> 5 sp|Q9Y2W1|TR150_HUMAN_S805 AEEYTEETEEREES*TTGFDK 3
#> 6 sp|Q9Y2W1|TR150_HUMAN_S805 AEEYTEETEEREES*TTGFDK 3
#> PSM Mixture TechRepMixture
#> 1 AEEYTEETEEREES*TTGFDK_3 plex16 1
#> 2 AEEYTEETEEREES*TTGFDK_3 plex16 1
#> 3 AEEYTEETEEREES*TTGFDK_3 plex16 1
#> 4 AEEYTEETEEREES*TTGFDK_3 plex16 1
#> 5 AEEYTEETEEREES*TTGFDK_3 plex16 1
#> 6 AEEYTEETEEREES*TTGFDK_3 plex16 1
#> Run Channel BioReplicate Condition
#> 1 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01 126 CPT0088900003_T T
#> 2 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01 127C CPT0088920001_N N
#> 3 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01 127N CPT0079270003_T T
#> 4 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01 128C CPT0088550004_T T
#> 5 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01 128N CPT0079300001_N N
#> 6 16CPTAC_CCRCC_P_JHU_20180326_LUMOS_f01 129C CPT0014450004_T T
#> Intensity
#> 1 47545.47
#> 2 45316.41
#> 3 80388.11
#> 4 66856.88
#> 5 118057.66
#> 6 192263.72
head(msstats_data$PROTEIN)
#> ProteinName PeptideSequence Charge PSM
#> 1 sp|Q9Y2W1|TR150_HUMAN AEEYTEETEEREESTTGFDK 3 AEEYTEETEEREESTTGFDK_3
#> 2 sp|Q9Y2W1|TR150_HUMAN AEEYTEETEEREESTTGFDK 3 AEEYTEETEEREESTTGFDK_3
#> 3 sp|Q9Y2W1|TR150_HUMAN AEEYTEETEEREESTTGFDK 3 AEEYTEETEEREESTTGFDK_3
#> 4 sp|Q9Y2W1|TR150_HUMAN AEEYTEETEEREESTTGFDK 3 AEEYTEETEEREESTTGFDK_3
#> 5 sp|Q9Y2W1|TR150_HUMAN AEEYTEETEEREESTTGFDK 3 AEEYTEETEEREESTTGFDK_3
#> 6 sp|Q9Y2W1|TR150_HUMAN AEEYTEETEEREESTTGFDK 3 AEEYTEETEEREESTTGFDK_3
#> Mixture TechRepMixture Run Channel
#> 1 plex16 1 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01 126
#> 2 plex16 1 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01 127C
#> 3 plex16 1 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01 127N
#> 4 plex16 1 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01 128C
#> 5 plex16 1 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01 128N
#> 6 plex16 1 16CPTAC_CCRCC_W_JHU_20180322_LUMOS_f01 129C
#> BioReplicate Condition Intensity
#> 1 CPT0088900003_T T 97711.92
#> 2 CPT0088920001_N N 104208.69
#> 3 CPT0079270003_T T 107628.15
#> 4 CPT0088550004_T T 194282.36
#> 5 CPT0079300001_N N 152762.88
#> 6 CPT0014450004_T T 143260.84
PDtoMSstatsPTMFormat
MSstatsPTM
includes a dedicated converter for Proteome Discoverer output. Experiments can be acquired with label-free or TMT labeling methods. The input is the psm
file and a custom built annotation file. Proteome Discoverer provides additional info on the localization of modification sites, and the PDtoMSstatsPTMFormat
converter includes localization options that are not present in other converters.
head(pd_psm_input)
#> Checked Tags Confidence Identifying.Node.Type Identifying.Node Search.ID
#> 1 False NA High Sequest HT Sequest HT (B4) B
#> 2 False NA High Sequest HT Sequest HT (B4) B
#> 3 False NA High Sequest HT Sequest HT (B4) B
#> 4 False NA High Sequest HT Sequest HT (B4) B
#> 5 False NA High Sequest HT Sequest HT (B4) B
#> 6 False NA High Sequest HT Sequest HT (B4) B
#> Identifying.Node.No PSM.Ambiguity Sequence
#> 1 4 Unambiguous AAEAGETGAATSATEGDNNNNTAAGDKK
#> 2 4 Unambiguous LEAGLSDSK
#> 3 4 Unambiguous LQETNPEEVPK
#> 4 4 Unambiguous LREENFSSNTSELGNKK
#> 5 4 Unambiguous LLDNTNTDVK
#> 6 4 Selected HSDSYSENETNHTNVPISSTGGTNNK
#> Annotated.Sequence Modifications X..Proteins
#> 1 [K].AAEAGETGAATSATEGDNNNNTAAGDKK.[G] 1
#> 2 [K].LEAGLsDSK.[Q] S6(Phospho) 1
#> 3 [K].LQETNPEEVPK.[F] 1
#> 4 [K].LREENFSSNtSELGNKK.[H] T10(Phospho) 1
#> 5 [K].LLDNTNTDVK.[I] 1
#> 6 [R].HSDSYsENETNHTNVPISSTGGTNNK.[T] S6(Phospho) 20
#> Master.Protein.Accessions
#> 1 Q07478
#> 2 P17536
#> 3 P35691
#> 4 P33419
#> 5 Q08421
#> 6 Q99231
#> Master.Protein.Descriptions
#> 1 ATP-dependent RNA helicase SUB2 OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=SUB2 PE=1 SV=1
#> 2 Tropomyosin-1 OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TPM1 PE=1 SV=1
#> 3 Translationally-controlled tumor protein homolog OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TMA19 PE=1 SV=1
#> 4 Spindle pole component 29 OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=SPC29 PE=1 SV=1
#> 5 Enhancer of translation termination 1 OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=ETT1 PE=1 SV=1
#> 6 Transposon Ty1-DR3 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-DR3 PE=1 SV=2
#> Protein.Accessions
#> 1 Q07478
#> 2 P17536
#> 3 P35691
#> 4 P33419
#> 5 Q08421
#> 6 P0C2I9; P47100; Q12141; P47098; P0C2J0; P0C2I3; Q12269; Q03855; P0C2I2; Q99231; Q12414; Q07793; Q04711; Q04670; Q12273; Q03612; Q92393; P0C2I5; Q03434; O13527
#> Protein.Descriptions
#> 1 ATP-dependent RNA helicase SUB2 OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=SUB2 PE=1 SV=1
#> 2 Tropomyosin-1 OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TPM1 PE=1 SV=1
#> 3 Translationally-controlled tumor protein homolog OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TMA19 PE=1 SV=1
#> 4 Spindle pole component 29 OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=SPC29 PE=1 SV=1
#> 5 Enhancer of translation termination 1 OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=ETT1 PE=1 SV=1
#> 6 Transposon Ty1-PR1 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-PR1 PE=3 SV=1; Transposon Ty1-JR2 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-JR2 PE=3 SV=3; Transposon Ty1-GR1 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-GR1 PE=3 SV=1; Transposon Ty1-JR1 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-JR1 PE=3 SV=3; Transposon Ty1-PR2 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-PR2 PE=3 SV=1; Transposon Ty1-DR6 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-DR6 PE=3 SV=1; Transposon Ty1-GR2 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-GR2 PE=3 SV=3; Transposon Ty1-DR1 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-DR1 PE=3 SV=2; Transposon Ty1-DR5 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-DR5 PE=3 SV=1; Transposon Ty1-DR3 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-DR3 PE=1 SV=2; Transposon Ty1-PL Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-PL PE=3 SV=1; Transposon Ty1-DR4 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-DR4 PE=3 SV=2; Transposon Ty1-ML1 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-ML1 PE=3 SV=2; Transposon Ty1-MR2 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-MR2 PE=3 SV=2; Transposon Ty1-OL Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-OL PE=3 SV=1; Transposon Ty1-ER1 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-ER1 PE=3 SV=1; Transposon Ty1-OR Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-OR PE=3 SV=1; Transposon Ty1-LR2 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-LR2 PE=3 SV=1; Transposon Ty1-ML2 Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-ML2 PE=3 SV=2; Truncated transposon Ty1-A Gag-Pol polyprotein OS=Saccharomyces cerevisiae (strain ATCC 204508 / S288c) OX=559292 GN=TY1B-A PE=3 SV=3
#> X..Missed.Cleavages Charge Original.Precursor.Charge DeltaScore DeltaCn Rank
#> 1 1 3 3 0.7340 0 1
#> 2 0 2 2 0.1038 0 1
#> 3 0 2 2 0.4962 0 1
#> 4 2 3 3 0.1122 0 1
#> 5 0 2 2 0.5480 0 1
#> 6 0 3 3 0.0091 0 1
#> Search.Engine.Rank Concatenated.Rank m.z..Da. Contaminant Aligned.m.z..Da.
#> 1 1 1 879.3940 False 879.3940
#> 2 1 1 500.2237 False 500.2237
#> 3 1 1 642.3285 False 642.3285
#> 4 1 1 678.3174 False 678.3174
#> 5 1 1 566.7962 False 566.7962
#> 6 1 1 957.4013 False 957.4013
#> MH...Da. Theo..MH...Da. DeltaM..ppm. Deltam.z..Da. Ions.Matched Matched.Ions
#> 1 2636.1673 2636.1667 0.25 0.00022 0/0 0
#> 2 999.4401 999.4394 0.64 0.00032 0/0 0
#> 3 1283.6497 1283.6478 1.47 0.00094 0/0 0
#> 4 2032.9376 2032.9335 2.00 0.00135 0/0 0
#> 5 1132.5851 1132.5844 0.57 0.00032 0/0 0
#> 6 2870.1893 2870.1861 1.14 0.00109 0/0 0
#> Total.Ions Intensity Activation.Type NCE.... MS.Order
#> 1 0 7769382 HCD 28 MS2
#> 2 0 2978492 HCD 28 MS2
#> 3 0 2776155 HCD 28 MS2
#> 4 0 2369740 HCD 28 MS2
#> 5 0 2483459 HCD 28 MS2
#> 6 0 4993433 HCD 28 MS2
#> Isolation.Interference.... Ion.Inject.Time..ms. RT..min. First.Scan Last.Scan
#> 1 1.321094 22 4.9337 1851 1851
#> 2 25.545490 22 7.5681 5317 5317
#> 3 10.363530 22 7.5687 5318 5318
#> 4 6.098627 22 7.5720 5320 5320
#> 5 24.051600 22 7.5726 5321 5321
#> 6 0.000000 22 7.5738 5323 5323
#> Master.Scan.s. Spectrum.File File.ID Quan.Info
#> 1 1848 20180810_QE3_nLC3_AH_DDA_Yonly_ind_02.raw F35
#> 2 5306 20180810_QE3_nLC3_AH_DDA_Yonly_ind_02.raw F35
#> 3 5306 20180810_QE3_nLC3_AH_DDA_Yonly_ind_02.raw F35
#> 4 5319 20180810_QE3_nLC3_AH_DDA_Yonly_ind_02.raw F35
#> 5 5319 20180810_QE3_nLC3_AH_DDA_Yonly_ind_02.raw F35
#> 6 5319 20180810_QE3_nLC3_AH_DDA_Yonly_ind_02.raw F35
#> Peptides.Matched XCorr X..Protein.Groups Percolator.q.Value Percolator.PEP
#> 1 3606 8.57 1 0.0001142857 6.305117e-16
#> 2 679 2.60 1 0.0001143000 3.711000e-04
#> 3 511 2.62 1 0.0001143000 1.498000e-05
#> 4 1894 5.26 1 0.0001143000 3.015000e-07
#> 5 505 2.50 1 0.0001143000 7.418000e-05
#> 6 2549 7.66 1 0.0001143000 6.116000e-14
#> Percolator.SVMScore Precursor.Area Apex.RT..min.
#> 1 9.869511 5859362 4.94
#> 2 1.135000 5397380 7.58
#> 3 1.719000 66213752 7.61
#> 4 2.428000 NA NA
#> 5 1.428000 1715639 7.56
#> 6 5.227000 22296560 7.59
#> ptmRS..Binomial.Peptide.Score ptmRS..Isoform.Confidence.Probability
#> 1 NA NA
#> 2 308.92 1.000
#> 3 NA NA
#> 4 439.90 1.000
#> 5 NA NA
#> 6 611.48 0.006
#> ptmRS..Isoform.Group.Report
#> 1
#> 2 y1+-H(3) O(4) P(8): 788.38; y1+-H(3) O(4) P(7): 659.34; y1+-H(3) O(4) P(6): 588.30; y1+-H(3) O(4) P(5): 531.28; y1+-H(3) O(4) P(4): 418.19; y2+-H(3) O(4) P(6): 294.65; y1+(3): 349.17; y1+(2): 234.14
#> 3
#> 4 b1+-H(3) O(4) P(10): 1160.53; b1+-H(3) O(4) P(12): 1376.61; y1+-H(3) O(4) P(10): 1059.54; y1+-H(3) O(4) P(9): 972.51; y1+-H(3) O(4) P(8): 858.47; y2+-H(3) O(4) P(10): 530.28; y2+-H(3) O(4) P(9): 486.76; y2+-H(3) O(4) P(8): 429.74; y1+(7): 775.43; y2+(7): 388.22
#> 5
#> 6 b1+-H(3) O(4) P(4): 409.15; b1+-H(3) O(4) P(5): 572.21; b1+-H(3) O(4) P(6): 659.24; b1+-H(3) O(4) P(9): 1031.37; b1+-H(3) O(4) P(10): 1132.42; b1+-H(3) O(4) P(11): 1246.46; b1+-H(3) O(4) P(12): 1383.52; b1+-H(3) O(4) P(14): 1598.61; b1+-H(3) O(4) P(15): 1697.68; b2+-H(3) O(4) P(9): 516.19; b2+-H(3) O(4) P(12): 692.26; b2+-H(3) O(4) P(13): 742.79; b2+-H(3) O(4) P(14): 799.81; b2+-H(3) O(4) P(15): 849.34; y2+-H(3) O(4) P(25): 1318.08; y2+-H(3) O(4) P(24): 1274.56; y2+-H(3) O(4) P(23): 1217.05
#> ptmRS..Best.Site.Probabilities
#> 1
#> 2 S6(Phospho): 100
#> 3
#> 4 T10(Phospho): 100
#> 5
#> 6 S4(Phospho): 99.4
#> ptmRS..Phospho.Site.Probabilities
#> 1
#> 2 S(6): 100.0; S(8): 0.0
#> 3
#> 4 S(7): 0.0; S(8): 0.0; T(10): 100.0; S(11): 0.0
#> 5
#> 6 S(2): 0.0; S(4): 99.4; Y(5): 0.0; S(6): 0.6; T(10): 0.0; T(13): 0.0; S(18): 0.0; S(19): 0.0; T(20): 0.0; T(23): 0.0
head(pd_annotation)
#> Run Condition BioReplicate
#> 1 20180810_QE3_nLC3_AH_DDA_Yonly_ind_01.raw H0_Y100 H0_Y100_01
#> 2 20180810_QE3_nLC3_AH_DDA_Yonly_ind_02.raw H0_Y100 H0_Y100_02
#> 3 20180810_QE3_nLC3_AH_DDA_Yonly_ind_03.raw H0_Y100 H0_Y100_03
#> 4 20180810_QE3_nLC3_AH_DDA_Honly_ind_01.raw H100_Y0 H100_Y0_04
#> 5 20180810_QE3_nLC3_AH_DDA_Honly_ind_02.raw H100_Y0 H100_Y0_05
#> 6 20180810_QE3_nLC3_AH_DDA_Honly_ind_03.raw H100_Y0 H100_Y0_06
msstats_format = PDtoMSstatsPTMFormat(pd_psm_input,
pd_annotation,
system.file("extdata", "pd_fasta.fasta",
package="MSstatsPTM"),
use_unmod_peptides=TRUE,
which_proteinid = "Master.Protein.Accessions")
#> INFO: Extracting modifications
#> INFO [2024-09-25 19:16:19] ** Raw data from ProteomeDiscoverer imported successfully.
#> INFO [2024-09-25 19:16:19] ** Raw data from ProteomeDiscoverer cleaned successfully.
#> INFO [2024-09-25 19:16:19] ** Using provided annotation.
#> INFO [2024-09-25 19:16:19] ** Run labels were standardized to remove symbols such as '.' or '%'.
#> INFO [2024-09-25 19:16:19] ** The following options are used:
#> - Features will be defined by the columns: PeptideSequence, PrecursorCharge
#> - Shared peptides will be removed.
#> - Proteins with single feature will not be removed.
#> - Features with less than 3 measurements across runs will be removed.
#> INFO [2024-09-25 19:16:19] ** Features with all missing measurements across runs are removed.
#> INFO [2024-09-25 19:16:19] ** Shared peptides are removed.
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> Warning in aggregator(Intensity, na.rm = TRUE): no non-missing arguments to
#> max; returning -Inf
#> INFO [2024-09-25 19:16:19] ** Multiple measurements in a feature and a run are summarized by summaryforMultipleRows: max
#> INFO [2024-09-25 19:16:19] ** Features with one or two measurements across runs are removed.
#> INFO [2024-09-25 19:16:19] ** Run annotation merged with quantification data.
#> INFO [2024-09-25 19:16:19] ** Features with one or two measurements across runs are removed.
#> INFO [2024-09-25 19:16:19] ** Fractionation handled.
#> INFO [2024-09-25 19:16:19] ** Updated quantification data to make balanced design. Missing values are marked by NA
#> INFO [2024-09-25 19:16:19] ** Finished preprocessing. The dataset is ready to be processed by the dataProcess function.
head(msstats_format$PTM)
#> ProteinName PeptideSequence PrecursorCharge
#> 1 Q07478_S37 AAEAGETGAATS*ATEGDNNNNTAAGDKKS12(Phospho) 3
#> 2 Q07478_S37 AAEAGETGAATS*ATEGDNNNNTAAGDKKS12(Phospho) 3
#> 3 Q07478_S37 AAEAGETGAATS*ATEGDNNNNTAAGDKKS12(Phospho) 3
#> 4 Q07478_S37 AAEAGETGAATS*ATEGDNNNNTAAGDKKS12(Phospho) 3
#> 5 Q07478_S37 AAEAGETGAATS*ATEGDNNNNTAAGDKKS12(Phospho) 3
#> 6 Q07478_S37 AAEAGETGAATS*ATEGDNNNNTAAGDKKS12(Phospho) 3
#> FragmentIon ProductCharge IsotopeLabelType Condition BioReplicate
#> 1 NA NA L H100_Y100 H100_Y100_19
#> 2 NA NA L H100_Y100 H100_Y100_20
#> 3 NA NA L H100_Y100 H100_Y100_21
#> 4 NA NA L H100_Y100 H100_Y100_22
#> 5 NA NA L H100_Y100 H100_Y100_23
#> 6 NA NA L H100_Y100 H100_Y100_24
#> Run Fraction Intensity
#> 1 20180810_QE3_nLC3_AH_DDA_H100_Y100_01raw 1 NA
#> 2 20180810_QE3_nLC3_AH_DDA_H100_Y100_02raw 1 NA
#> 3 20180810_QE3_nLC3_AH_DDA_H100_Y100_03raw 1 NA
#> 4 20180810_QE3_nLC3_AH_DDA_H100_Y100_04raw 1 NA
#> 5 20180810_QE3_nLC3_AH_DDA_H100_Y100_05raw 1 NA
#> 6 20180810_QE3_nLC3_AH_DDA_H100_Y100_06raw 1 NA
head(msstats_format$PROTEIN)
#> ProteinName PeptideSequence PrecursorCharge FragmentIon
#> 67 Q07478 AAEAGETGAATSATEGDNNNNTAAGDKK 3 NA
#> 68 Q07478 AAEAGETGAATSATEGDNNNNTAAGDKK 3 NA
#> 69 Q07478 AAEAGETGAATSATEGDNNNNTAAGDKK 3 NA
#> 70 Q07478 AAEAGETGAATSATEGDNNNNTAAGDKK 3 NA
#> 71 Q07478 AAEAGETGAATSATEGDNNNNTAAGDKK 3 NA
#> 72 Q07478 AAEAGETGAATSATEGDNNNNTAAGDKK 3 NA
#> ProductCharge IsotopeLabelType Condition BioReplicate
#> 67 NA L H100_Y100 H100_Y100_19
#> 68 NA L H100_Y100 H100_Y100_20
#> 69 NA L H100_Y100 H100_Y100_21
#> 70 NA L H100_Y100 H100_Y100_22
#> 71 NA L H100_Y100 H100_Y100_23
#> 72 NA L H100_Y100 H100_Y100_24
#> Run Fraction Intensity
#> 67 20180810_QE3_nLC3_AH_DDA_H100_Y100_01raw 1 NA
#> 68 20180810_QE3_nLC3_AH_DDA_H100_Y100_02raw 1 NA
#> 69 20180810_QE3_nLC3_AH_DDA_H100_Y100_03raw 1 NA
#> 70 20180810_QE3_nLC3_AH_DDA_H100_Y100_04raw 1 NA
#> 71 20180810_QE3_nLC3_AH_DDA_H100_Y100_05raw 1 NA
#> 72 20180810_QE3_nLC3_AH_DDA_H100_Y100_06raw 1 NA
SpectronauttoMSstatsPTMFormat
MSstatsPTM
includes a dedicated converter for Spectronaut output. Experiments can be acquired with label-free labeling methods.
head(spectronaut_input)
#> R.Condition R.FileName R.Replicate PG.Genes
#> 1 Honly 20180815_QE3_nLC3_AH_DIA_Honly_ind_01 1 DNM1L
#> 2 Honly 20180815_QE3_nLC3_AH_DIA_Honly_ind_01 1 BIN1
#> 3 Honly 20180815_QE3_nLC3_AH_DIA_Honly_ind_01 1 BIN1
#> 4 Honly 20180815_QE3_nLC3_AH_DIA_Honly_ind_01 1 KMT2D
#> 5 Honly 20180815_QE3_nLC3_AH_DIA_Honly_ind_01 1 PPP1R12A
#> 6 Honly 20180815_QE3_nLC3_AH_DIA_Honly_ind_01 1 SEC16A
#> PG.ProteinDescriptions PG.ProteinGroups PG.ProteinNames
#> 1 Dynamin-1-like protein O00429 DNM1L_HUMAN
#> 2 Myc box-dependent-interacting protein 1 O00499 BIN1_HUMAN
#> 3 Myc box-dependent-interacting protein 1 O00499 BIN1_HUMAN
#> 4 Histone-lysine N-methyltransferase 2D O14686 KMT2D_HUMAN
#> 5 Protein phosphatase 1 regulatory subunit 12A O14974 MYPT1_HUMAN
#> 6 Protein transport protein Sec16A O15027 SC16A_HUMAN
#> PEP.PeptidePosition EG.IsDecoy
#> 1 607 FALSE
#> 2 293 FALSE
#> 3 293 FALSE
#> 4 4736 FALSE
#> 5 443 FALSE
#> 6 879 FALSE
#> EG.PrecursorId
#> 1 _SKPIPIM[Oxidation (M)]PAS[Phospho (STY)]PQK_.2
#> 2 _GNKSPS[Phospho (STY)]PPDGSPAATPEIR_.3
#> 3 _GNKS[Phospho (STY)]PSPPDGSPAATPEIR_.3
#> 4 _ALS[Phospho (STY)]PVIPLIPR_.2
#> 5 _TGS[Phospho (STY)]YGALAEITASK_.2
#> 6 _AQQELVPPQQQ[Deamidation (NQ)]AS[Phospho (STY)]PPQLPK_.3
#> EG.PTMAssayCandidateScore EG.PTMAssayProbability EG.PTMLocalizationConfidence
#> 1 29.064455 0.9999999 0.9999999
#> 2 6.009665 0.4966855 0.4966855
#> 3 6.009665 0.4966855 0.4966855
#> 4 NaN NaN 1.0000000
#> 5 24.307762 0.5848936 0.5848936
#> 6 15.286304 0.3310838 0.6655419
#> EG.PTMLocalizationProbabilities
#> 1 _S[Phospho (STY): 0%]KPIPIM[Oxidation (M): 100%]PAS[Phospho (STY): 100%]PQK_
#> 2 _GNKS[Phospho (STY): 49.7%]PS[Phospho (STY): 49.7%]PPDGS[Phospho (STY): 0.3%]PAAT[Phospho (STY): 0.3%]PEIR_
#> 3 _GNKS[Phospho (STY): 49.7%]PS[Phospho (STY): 49.7%]PPDGS[Phospho (STY): 0.3%]PAAT[Phospho (STY): 0.3%]PEIR_
#> 4 _ALS[Phospho (STY): 100%]PVIPLIPR_
#> 5 _T[Phospho (STY): 41.5%]GS[Phospho (STY): 58.5%]Y[Phospho (STY): 0%]GALAEIT[Phospho (STY): 0%]AS[Phospho (STY): 0%]K_
#> 6 _AQ[Deamidation (NQ): 0%]Q[Deamidation (NQ): 0%]ELVPPQ[Deamidation (NQ): 33.1%]Q[Deamidation (NQ): 33.1%]Q[Deamidation (NQ): 33.1%]AS[Phospho (STY): 100%]PPQ[Deamidation (NQ): 0.7%]LPK_
#> EG.NormalizationFactor EG.TotalQuantity..Settings. FG.Charge F.Charge
#> 1 1558039.8 24796966912 2 2
#> 2 1766846.4 9006234624 3 3
#> 3 1766846.4 9006234624 3 3
#> 4 887979.7 26086424576 2 2
#> 5 1128734.0 98855960576 2 2
#> 6 1189332.0 356193000000 3 3
#> EG.ModifiedSequence F.FrgIon F.FrgLossType
#> 1 _SKPIPIM[Oxidation (M)]PAS[Phospho (STY)]PQK_ NA noloss
#> 2 _GNKSPS[Phospho (STY)]PPDGSPAATPEIR_ NA noloss
#> 3 _GNKS[Phospho (STY)]PSPPDGSPAATPEIR_ NA noloss
#> 4 _ALS[Phospho (STY)]PVIPLIPR_ NA noloss
#> 5 _TGS[Phospho (STY)]YGALAEITASK_ NA noloss
#> 6 _AQQELVPPQQQ[Deamidation (NQ)]AS[Phospho (STY)]PPQLPK_ NA noloss
#> F.ExcludedFromQuantification F.PeakArea
#> 1 FALSE 24796966912
#> 2 FALSE 9006234624
#> 3 FALSE 9006234624
#> 4 FALSE 26086424576
#> 5 FALSE 98855960576
#> 6 FALSE 356193000000
head(spectronaut_annotation)
#> Run Fraction TechRepMixture Condition
#> 1 20180815_QE3_nLC3_AH_DIA_Honly_ind_01 1 1 H100_Y0
#> 2 20180815_QE3_nLC3_AH_DIA_Honly_ind_02 1 1 H100_Y0
#> 3 20180815_QE3_nLC3_AH_DIA_Honly_ind_03 1 1 H100_Y0
#> 4 20180815_QE3_nLC3_AH_DIA_Yonly_ind_01 1 1 H0_Y100
#> 5 20180815_QE3_nLC3_AH_DIA_Yonly_ind_02 1 1 H0_Y100
#> 6 20180815_QE3_nLC3_AH_DIA_Yonly_ind_03 1 1 H0_Y100
#> BioReplicate
#> 1 H100_Y0_04
#> 2 H100_Y0_05
#> 3 H100_Y0_06
#> 4 H0_Y100_01
#> 5 H0_Y100_02
#> 6 H0_Y100_03
msstats_input = SpectronauttoMSstatsPTMFormat(spectronaut_input,
annotation=spectronaut_annotation,
fasta_path=system.file("extdata", "spectronaut_fasta.fasta",
package="MSstatsPTM"),
use_unmod_peptides=TRUE,
mod_id = "\\[Phospho \\(STY\\)\\]",
fasta_protein_name = "uniprot_iso"
)
#> INFO [2024-09-25 19:16:19] ** Raw data from Spectronaut imported successfully.
#> INFO [2024-09-25 19:16:19] ** Raw data from Spectronaut cleaned successfully.
#> INFO [2024-09-25 19:16:19] ** Using provided annotation.
#> INFO [2024-09-25 19:16:19] ** Run labels were standardized to remove symbols such as '.' or '%'.
#> INFO [2024-09-25 19:16:19] ** The following options are used:
#> - Features will be defined by the columns: PeptideSequence, PrecursorCharge, FragmentIon, ProductCharge
#> - Shared peptides will be removed.
#> - Proteins with single feature will not be removed.
#> - Features with less than 3 measurements across runs will be removed.
#> WARN [2024-09-25 19:16:19] ** PGQvalue not found in input columns.
#> WARN [2024-09-25 19:16:19] ** EGQvalue not found in input columns.
#> INFO [2024-09-25 19:16:19] ** Features with all missing measurements across runs are removed.
#> INFO [2024-09-25 19:16:19] ** Shared peptides are removed.
#> INFO [2024-09-25 19:16:19] ** Multiple measurements in a feature and a run are summarized by summaryforMultipleRows: max
#> INFO [2024-09-25 19:16:19] ** Features with one or two measurements across runs are removed.
#> INFO [2024-09-25 19:16:19] ** Run annotation merged with quantification data.
#> INFO [2024-09-25 19:16:19] ** Features with one or two measurements across runs are removed.
#> INFO [2024-09-25 19:16:19] ** Fractionation handled.
#> INFO [2024-09-25 19:16:19] ** Updated quantification data to make balanced design. Missing values are marked by NA
#> INFO [2024-09-25 19:16:19] ** Finished preprocessing. The dataset is ready to be processed by the dataProcess function.
head(msstats_input$PTM)
#> ProteinName PeptideSequence PrecursorCharge FragmentIon
#> 37 P09938_S22 AAADALSDLEIKDS[Phospho (STY)]K 2 <NA>
#> 38 P09938_S22 AAADALSDLEIKDS[Phospho (STY)]K 2 <NA>
#> 39 P09938_S22 AAADALSDLEIKDS[Phospho (STY)]K 2 <NA>
#> 40 P09938_S22 AAADALSDLEIKDS[Phospho (STY)]K 2 <NA>
#> 41 P09938_S22 AAADALSDLEIKDS[Phospho (STY)]K 2 <NA>
#> 42 P09938_S22 AAADALSDLEIKDS[Phospho (STY)]K 2 <NA>
#> ProductCharge IsotopeLabelType Condition BioReplicate
#> 37 2 L H100_Y0 H100_Y0_04
#> 38 2 L H100_Y0 H100_Y0_05
#> 39 2 L H100_Y0 H100_Y0_06
#> 40 2 L H0_Y100 H0_Y100_01
#> 41 2 L H0_Y100 H0_Y100_02
#> 42 2 L H0_Y100 H0_Y100_03
#> Run Fraction Intensity
#> 37 20180815_QE3_nLC3_AH_DIA_Honly_ind_01 1 NA
#> 38 20180815_QE3_nLC3_AH_DIA_Honly_ind_02 1 NA
#> 39 20180815_QE3_nLC3_AH_DIA_Honly_ind_03 1 NA
#> 40 20180815_QE3_nLC3_AH_DIA_Yonly_ind_01 1 201390.72
#> 41 20180815_QE3_nLC3_AH_DIA_Yonly_ind_02 1 75962.33
#> 42 20180815_QE3_nLC3_AH_DIA_Yonly_ind_03 1 281808.72
head(msstats_input$PROTEIN)
#> ProteinName PeptideSequence PrecursorCharge FragmentIon ProductCharge
#> 1 P36578 AAAAAAALQAK 2 <NA> 2
#> 2 P36578 AAAAAAALQAK 2 <NA> 2
#> 3 P36578 AAAAAAALQAK 2 <NA> 2
#> 4 P36578 AAAAAAALQAK 2 <NA> 2
#> 5 P36578 AAAAAAALQAK 2 <NA> 2
#> 6 P36578 AAAAAAALQAK 2 <NA> 2
#> IsotopeLabelType Condition BioReplicate Run
#> 1 L H100_Y0 H100_Y0_04 20180815_QE3_nLC3_AH_DIA_Honly_ind_01
#> 2 L H100_Y0 H100_Y0_05 20180815_QE3_nLC3_AH_DIA_Honly_ind_02
#> 3 L H100_Y0 H100_Y0_06 20180815_QE3_nLC3_AH_DIA_Honly_ind_03
#> 4 L H0_Y100 H0_Y100_01 20180815_QE3_nLC3_AH_DIA_Yonly_ind_01
#> 5 L H0_Y100 H0_Y100_02 20180815_QE3_nLC3_AH_DIA_Yonly_ind_02
#> 6 L H0_Y100 H0_Y100_03 20180815_QE3_nLC3_AH_DIA_Yonly_ind_03
#> Fraction Intensity
#> 1 1 NA
#> 2 1 NA
#> 3 1 NA
#> 4 1 NA
#> 5 1 NA
#> 6 1 NA
SkylinetoMSstatsPTMFormat
MSstatsPTM
includes a dedicated converter for Skyline output. Experiments can be acquired with label-free labeling methods.
PStoMSstatsPTMFormat
MSstatsPTM
includes a dedicated converter for Peak Studio output. Experiments can be acquired with label-free labeling methods.
ProgenesistoMSstatsPTMFormat
MSstatsPTM
includes a dedicated converter for Progenesis output. Experiments can be acquired with label-free labeling methods.
If there is not a dedicated MSstatsPTM
converter for a processing tool, the existing converters in MSstats
and MSstatsTMT
converters can be used as described below.
Note, in order to do this, it is critical that the ProteinName column be a combination of the Protein Name and modification site.
As an example, if you would like to analyze an experiment processed with DIANN, you can leverage the DIANNtoMSstatsFormat
in MSstats
. Given two datasets, named raw_ptm_df
and raw_protein_df
, and an annotation file, we can process the data as follows.
# Add site into ProteinName column
raw_ptm_df$ProteinName = paste(raw_ptm_df$ProteinName,
raw_ptm_df$Site, sep = "_")
# Run MSstats Converters
PTM_data = MSstats::DIANNtoMSstatsFormat(raw_ptm_df, annotation)
PROTEIN_data = MSstats::DIANNtoMSstatsFormat(raw_protein_df, annotation)
# Combine into one list
msstatsptm_input_data = list(PTM = PTM_data, PROTEIN = PROTEIN_data)
The variable msstatsptm_input_data
can now be used as the input to the remainder of the MSstatsPTM
processing pipeline.
dataSummarizationPTM
After loading in the input data, the next step is to use the dataSummarizationPTM
function. This provides the summarized dataset needed to model the protein/PTM abundance. The function will summarize the Protein dataset up to the protein level and will summarize the PTM dataset up to the peptide level. There are multiple options for normalization and missing value imputation. These options should be reviewed in the package documentation.
MSstatsPTM.summary = dataSummarizationPTM(raw.input, verbose = FALSE,
use_log_file = FALSE, append = FALSE)
#> | | | 0% | |= | 1% | |= | 2% | |== | 2% | |== | 3% | |=== | 4% | |=== | 5% | |==== | 6% | |===== | 7% | |====== | 8% | |====== | 9% | |======= | 10% | |======== | 11% | |======== | 12% | |========= | 12% | |========= | 13% | |========== | 14% | |========== | 15% | |=========== | 16% | |============ | 17% | |============= | 18% | |============= | 19% | |============== | 20% | |============== | 21% | |=============== | 21% | |================ | 22% | |================ | 23% | |================= | 24% | |================= | 25% | |================== | 26% | |=================== | 26% | |=================== | 27% | |==================== | 28% | |==================== | 29% | |===================== | 30% | |===================== | 31% | |====================== | 31% | |======================= | 32% | |======================= | 33% | |======================== | 34% | |======================== | 35% | |========================= | 36% | |========================== | 37% | |=========================== | 38% | |=========================== | 39% | |============================ | 40% | |============================= | 41% | |============================== | 42% | |============================== | 43% | |=============================== | 44% | |=============================== | 45% | |================================ | 45% | |================================ | 46% | |================================= | 47% | |================================== | 48% | |================================== | 49% | |=================================== | 50% | |==================================== | 51% | |==================================== | 52% | |===================================== | 53% | |====================================== | 54% | |====================================== | 55% | |======================================= | 55% | |======================================= | 56% | |======================================== | 57% | |======================================== | 58% | |========================================= | 59% | |========================================== | 60% | |=========================================== | 61% | |=========================================== | 62% | |============================================ | 63% | |============================================= | 64% | |============================================== | 65% | |============================================== | 66% | |=============================================== | 67% | |=============================================== | 68% | |================================================ | 69% | |================================================= | 69% | |================================================= | 70% | |================================================== | 71% | |================================================== | 72% | |=================================================== | 73% | |=================================================== | 74% | |==================================================== | 74% | |===================================================== | 75% | |===================================================== | 76% | |====================================================== | 77% | |====================================================== | 78% | |======================================================= | 79% | |======================================================== | 79% | |======================================================== | 80% | |========================================================= | 81% | |========================================================= | 82% | |========================================================== | 83% | |=========================================================== | 84% | |============================================================ | 85% | |============================================================ | 86% | |============================================================= | 87% | |============================================================= | 88% | |============================================================== | 88% | |============================================================== | 89% | |=============================================================== | 90% | |================================================================ | 91% | |================================================================ | 92% | |================================================================= | 93% | |================================================================== | 94% | |=================================================================== | 95% | |=================================================================== | 96% | |==================================================================== | 97% | |==================================================================== | 98% | |===================================================================== | 98% | |===================================================================== | 99% | |======================================================================| 100%
#> | | | 0% | |=== | 4% | |===== | 8% | |======== | 12% | |=========== | 15% | |============= | 19% | |================ | 23% | |=================== | 27% | |====================== | 31% | |======================== | 35% | |=========================== | 38% | |============================== | 42% | |================================ | 46% | |=================================== | 50% | |====================================== | 54% | |======================================== | 58% | |=========================================== | 62% | |============================================== | 65% | |================================================ | 69% | |=================================================== | 73% | |====================================================== | 77% | |========================================================= | 81% | |=========================================================== | 85% | |============================================================== | 88% | |================================================================= | 92% | |=================================================================== | 96% | |======================================================================| 100%
head(MSstatsPTM.summary$PTM$ProteinLevelData)
#> RUN Protein LogIntensities originalRUN GROUP SUBJECT
#> 1 3 Q9UHD8_K028 20.40124 CCCP-B2T1 CCCP BCH2
#> 2 4 Q9UHD8_K028 20.48536 CCCP-B2T2 CCCP BCH2
#> 3 7 Q9UHD8_K028 20.64447 Combo-B2T1 Combo BCH2
#> 4 8 Q9UHD8_K028 20.73128 Combo-B2T2 Combo BCH2
#> 5 11 Q9UHD8_K028 20.41225 Ctrl-B2T1 Ctrl BCH2
#> 6 12 Q9UHD8_K028 20.65940 Ctrl-B2T2 Ctrl BCH2
#> TotalGroupMeasurements NumMeasuredFeature MissingPercentage more50missing
#> 1 4 1 0 FALSE
#> 2 4 1 0 FALSE
#> 3 4 1 0 FALSE
#> 4 4 1 0 FALSE
#> 5 4 1 0 FALSE
#> 6 4 1 0 FALSE
#> NumImputedFeature
#> 1 0
#> 2 0
#> 3 0
#> 4 0
#> 5 0
#> 6 0
head(MSstatsPTM.summary$PROTEIN$ProteinLevelData)
#> RUN Protein LogIntensities originalRUN GROUP SUBJECT
#> 1 3 Q9UHD8 19.36883 CCCP-B2T1 CCCP BCH2
#> 2 4 Q9UHD8 19.56289 CCCP-B2T2 CCCP BCH2
#> 3 7 Q9UHD8 18.69612 Combo-B2T1 Combo BCH2
#> 4 11 Q9UHD8 19.77119 Ctrl-B2T1 Ctrl BCH2
#> 5 12 Q9UHD8 19.62490 Ctrl-B2T2 Ctrl BCH2
#> 6 15 Q9UHD8 19.16970 USP30_OE-B2T1 USP30_OE BCH2
#> TotalGroupMeasurements NumMeasuredFeature MissingPercentage more50missing
#> 1 4 1 0 FALSE
#> 2 4 1 0 FALSE
#> 3 4 1 0 FALSE
#> 4 4 1 0 FALSE
#> 5 4 1 0 FALSE
#> 6 4 1 0 FALSE
#> NumImputedFeature
#> 1 0
#> 2 0
#> 3 0
#> 4 0
#> 5 0
#> 6 0
The summarize function returns a list with PTM and Protein summarization information. Each PTM and Protein include a list of data.tables: FeatureLevelData
is a data.table of reformatted input of dataSummarizationPTM, ProteinLevelData
is the run level summarization data.
Once summarized, MSstatsPTM provides multiple plots to analyze the experiment. Here we show the quality control boxplot. The first plot shows the modified data and the second plot shows the global protein dataset.
Here we show a profile plot. Again the top plot shows the modified peptide, and the bottom shows the overall protein.
groupComparisonPTM
After summarization, the summarized datasets can be modeled using the groupComparisonPTM
function. This function will model the PTM and Protein summarized datasets, and then adjust the PTM model for changes in overall protein abundance. The output of the function is a list containing these three models named: PTM.Model
, PROTEIN.Model
, ADJUSTED.Model
.
# Specify contrast matrix
comparison = matrix(c(-1,0,1,0),nrow=1)
row.names(comparison) = "CCCP-Ctrl"
colnames(comparison) = c("CCCP", "Combo", "Ctrl", "USP30_OE")
MSstatsPTM.model = groupComparisonPTM(MSstatsPTM.summary,
data.type = "LabelFree",
contrast.matrix = comparison,
use_log_file = FALSE, append = FALSE,
verbose = FALSE)
#> | | | 0% | |= | 1% | |= | 2% | |== | 2% | |== | 3% | |=== | 4% | |=== | 5% | |==== | 6% | |===== | 7% | |====== | 8% | |====== | 9% | |======= | 10% | |======== | 11% | |======== | 12% | |========= | 12% | |========= | 13% | |========== | 14% | |========== | 15% | |=========== | 16% | |============ | 17% | |============= | 18% | |============= | 19% | |============== | 20% | |============== | 21% | |=============== | 21% | |================ | 22% | |================ | 23% | |================= | 24% | |================= | 25% | |================== | 26% | |=================== | 26% | |=================== | 27% | |==================== | 28% | |==================== | 29% | |===================== | 30% | |===================== | 31% | |====================== | 31% | |======================= | 32% | |======================= | 33% | |======================== | 34% | |======================== | 35% | |========================= | 36% | |========================== | 37% | |=========================== | 38% | |=========================== | 39% | |============================ | 40% | |============================= | 41% | |============================== | 42% | |============================== | 43% | |=============================== | 44% | |=============================== | 45% | |================================ | 45% | |================================ | 46% | |================================= | 47% | |================================== | 48% | |================================== | 49% | |=================================== | 50% | |==================================== | 51% | |==================================== | 52% | |===================================== | 53% | |====================================== | 54% | |====================================== | 55% | |======================================= | 55% | |======================================= | 56% | |======================================== | 57% | |======================================== | 58% | |========================================= | 59% | |========================================== | 60% | |=========================================== | 61% | |=========================================== | 62% | |============================================ | 63% | |============================================= | 64% | |============================================== | 65% | |============================================== | 66% | |=============================================== | 67% | |=============================================== | 68% | |================================================ | 69% | |================================================= | 69% | |================================================= | 70% | |================================================== | 71% | |================================================== | 72% | |=================================================== | 73% | |=================================================== | 74% | |==================================================== | 74% | |===================================================== | 75% | |===================================================== | 76% | |====================================================== | 77% | |====================================================== | 78% | |======================================================= | 79% | |======================================================== | 79% | |======================================================== | 80% | |========================================================= | 81% | |========================================================= | 82% | |========================================================== | 83% | |=========================================================== | 84% | |============================================================ | 85% | |============================================================ | 86% | |============================================================= | 87% | |============================================================= | 88% | |============================================================== | 88% | |============================================================== | 89% | |=============================================================== | 90% | |================================================================ | 91% | |================================================================ | 92% | |================================================================= | 93% | |================================================================== | 94% | |=================================================================== | 95% | |=================================================================== | 96% | |==================================================================== | 97% | |==================================================================== | 98% | |===================================================================== | 98% | |===================================================================== | 99% | |======================================================================| 100%
#> | | | 0% | |=== | 4% | |===== | 8% | |======== | 12% | |=========== | 15% | |============= | 19% | |================ | 23% | |=================== | 27% | |====================== | 31% | |======================== | 35% | |=========================== | 38% | |============================== | 42% | |================================ | 46% | |=================================== | 50% | |====================================== | 54% | |======================================== | 58% | |=========================================== | 62% | |============================================== | 65% | |================================================ | 69% | |=================================================== | 73% | |====================================================== | 77% | |========================================================= | 81% | |=========================================================== | 85% | |============================================================== | 88% | |================================================================= | 92% | |=================================================================== | 96% | |======================================================================| 100%
head(MSstatsPTM.model$PTM.Model)
#> Protein Label log2FC SE Tvalue DF pvalue
#> <fctr> <char> <num> <num> <num> <int> <num>
#> 1: Q9UHD8_K028 CCCP-Ctrl 0.09252946 0.09730265 0.9509449 4 0.3954813
#> 2: Q9UHD8_K069 CCCP-Ctrl 0.23951169 0.41676772 0.5746887 8 0.5812984
#> 3: Q9UHD8_K141 CCCP-Ctrl 0.67768414 1.16924218 0.5795926 3 0.6028472
#> 4: Q9UHD8_K262 CCCP-Ctrl 0.27833912 0.42000163 0.6627096 8 0.5261452
#> 5: Q9UHQ9_K046 CCCP-Ctrl 1.01518685 0.64212263 1.5809860 4 0.1890377
#> 6: Q9UHQ9_K062 CCCP-Ctrl 7.42220640 3.91482091 1.8959249 4 0.1308526
#> adj.pvalue issue MissingPercentage ImputationPercentage
#> <num> <char> <num> <num>
#> 1: 0.5273084 <NA> 0.5 0
#> 2: 0.6743062 <NA> 0.0 0
#> 3: 0.6874576 <NA> 0.5 0
#> 4: 0.6424510 <NA> 0.0 0
#> 5: 0.3272892 <NA> 0.5 0
#> 6: 0.2389651 <NA> 0.5 0
head(MSstatsPTM.model$PROTEIN.Model)
#> Protein Label log2FC SE Tvalue DF pvalue
#> <fctr> <char> <num> <num> <num> <int> <num>
#> 1: Q9UHD8 CCCP-Ctrl 0.2321867 0.3054474 0.7601529 3 0.502444586
#> 2: Q9UHQ9 CCCP-Ctrl -0.1543455 0.1532654 -1.0070472 4 0.370886065
#> 3: Q9UIA9 CCCP-Ctrl 0.1738736 0.1096855 1.5852005 9 0.147381886
#> 4: Q9UIF8 CCCP-Ctrl 1.1429060 0.2462052 4.6420872 4 0.009718807
#> 5: Q9UL25 CCCP-Ctrl -2.0671120 0.2668733 -7.7456678 3 0.004475377
#> 6: Q9UM54 CCCP-Ctrl -0.3602191 0.4761387 -0.7565424 8 0.471013931
#> adj.pvalue issue MissingPercentage ImputationPercentage
#> <num> <lgcl> <num> <num>
#> 1: 0.67065761 NA 0.5000000 0.0000000
#> 2: 0.64286918 NA 0.5000000 0.0000000
#> 3: 0.34070342 NA 0.2500000 0.2500000
#> 4: 0.06317225 NA 0.5000000 0.0000000
#> 5: 0.03878660 NA 0.5000000 0.0000000
#> 6: 0.67065761 NA 0.3333333 0.3333333
head(MSstatsPTM.model$ADJUSTED.Model)
#> Protein Label log2FC SE Tvalue DF pvalue
#> <fctr> <char> <num> <num> <num> <num> <num>
#> 1: Q9UHD8_K028 CCCP-Ctrl -0.13965728 0.3205713 -0.43565127 3.611872 0.6878442
#> 2: Q9UHD8_K069 CCCP-Ctrl 0.00732495 0.5167141 0.01417602 10.683042 0.9889508
#> 3: Q9UHD8_K141 CCCP-Ctrl 0.44549740 1.2084806 0.36864257 3.407565 0.7341288
#> 4: Q9UHD8_K262 CCCP-Ctrl 0.04615237 0.5193260 0.08886975 10.710608 0.9308253
#> 5: Q9UHQ9_K046 CCCP-Ctrl 1.16953233 0.6601604 1.77158815 4.454292 0.1438076
#> 6: Q9UHQ9_K062 CCCP-Ctrl 7.57655188 3.9178199 1.93386934 4.012262 0.1250396
#> adj.pvalue GlobalProtein Adjusted
#> <num> <char> <lgcl>
#> 1: 0.7746595 Q9UHD8 TRUE
#> 2: 0.9968452 Q9UHD8 TRUE
#> 3: 0.8188359 Q9UHD8 TRUE
#> 4: 0.9640691 Q9UHD8 TRUE
#> 5: 0.2566413 Q9UHQ9 TRUE
#> 6: 0.2339451 Q9UHQ9 TRUE
The models from the groupComparisonPTM
function can be used in the model visualization function, groupComparisonPlotsPTM
. Here we show Volcano Plots for the models.
Here we show a Heatmap for the models.
designSampleSizePTM
Finally, sample size calculation can be performed using the output of the model and the designSampleSizePTM
# Specify contrast matrix
sample_size = designSampleSizePTM(MSstatsPTM.model, c(2.0, 2.75), FDR = 0.05,
numSample = TRUE, power = 0.8)
head(sample_size)
#> desiredFC numSample FDR power
#> 1 2.000 31 0.05 0.8
#> 2 2.025 30 0.05 0.8
#> 3 2.050 29 0.05 0.8
#> 4 2.075 28 0.05 0.8
#> 5 2.100 27 0.05 0.8
#> 6 2.125 26 0.05 0.8