This vignette summarizes the introduction and various options of all functionalities in MSstatsTMT.
Preprocess PSM data from Proteome Discoverer and convert into the required input format for MSstatsTMT.
input : data name of Proteome discover PSM output. Read PSM sheet.annotation : data frame which contains column Run, Channel, Condition, BioReplicate, lMixture.fraction : indicates whether the data has fractions. If there are fractions, then overlapped peptide ions will be removed and then fractions are combined for each biological mixture.useNumProteinsColumn : TURE(default) remove shared peptides by information of # Proteins column in PSM sheet.useUniquePeptide : TRUE(default) removes peptides that are assigned for more than one proteins. We assume to use unique peptide for each protein.summaryforMultipleRows : max(default) or sum - when there are multiple measurements for certain feature and certain run, use highest or sum of multiple intensities.removePSM_withMissingValue_withinRun : TRUE(default) will remove PSM with any missing value within each Run.removeProtein_with1Peptide : TRUE(default) will remove the proteins which have only 1 peptide and charge.which.proteinid : Use ‘Protein.Accessions’(default) column for protein name. ‘Master.Protein.Accessions’ can be used instead.head(raw.input)
#> Checked Confidence Identifying.Node PSM.Ambiguity
#> 1 FALSE High Mascot (F4) Unambiguous
#> 2 FALSE High Mascot (N4) Unambiguous
#> 3 FALSE High Mascot (G4) Unambiguous
#> 4 FALSE High Mascot (A4) Selected
#> 5 FALSE High Mascot (N4) Unambiguous
#> 6 FALSE High Mascot (K4) Unambiguous
#> Annotated.Sequence Modifications
#> 1 [K].lQPLDFk.[E] N-Term(TMT6plex); K7(TMT6plex)
#> 2 [K].lNYkPEEEYPDLSk.[H] N-Term(TMT6plex); K4(TMT6plex); K14(TMT6plex)
#> 3 [K].lVNEVTEFAk.[T] N-Term(TMT6plex); K10(TMT6plex)
#> 4 [K].eQLQDMGLVDLFSPEk.[S] N-Term(TMT6plex); K16(TMT6plex)
#> 5 [K].lNYkPEEEYPDLSk.[H] N-Term(TMT6plex); K4(TMT6plex); K14(TMT6plex)
#> 6 [K].eLFDPIISDR.[H] N-Term(TMT6plex)
#> Sigma.UPS UPS.Unique X..Protein.Groups X..Proteins
#> 1 TRUE TRUE 1 1
#> 2 TRUE TRUE 1 1
#> 3 TRUE TRUE 1 1
#> 4 TRUE TRUE 1 1
#> 5 TRUE TRUE 1 1
#> 6 TRUE TRUE 1 1
#> Master.Protein.Accessions Protein.Accessions
#> 1 P01008ups P01008ups
#> 2 P06732ups P06732ups
#> 3 P02768ups P02768ups
#> 4 P01008ups P01008ups
#> 5 P06732ups P06732ups
#> 6 P06732ups P06732ups
#> Protein.Descriptions
#> 1 Antithrombin-III (Chain 33-464) - Homo sapiens (Human)
#> 2 Creatine kinase M-type (Chain 1-381) - Homo sapiens (Human)
#> 3 Serum albumin (Chain 26-609) - Homo sapiens (Human)
#> 4 Antithrombin-III (Chain 33-464) - Homo sapiens (Human)
#> 5 Creatine kinase M-type (Chain 1-381) - Homo sapiens (Human)
#> 6 Creatine kinase M-type (Chain 1-381) - Homo sapiens (Human)
#> X..Missed.Cleavages Charge DeltaScore DeltaCn Rank Search.Engine.Rank
#> 1 0 2 1 0 1 1
#> 2 1 3 1 0 1 1
#> 3 0 3 1 0 1 1
#> 4 0 3 1 0 1 1
#> 5 1 3 1 0 1 1
#> 6 0 2 1 0 1 1
#> m.z..Da. MH...Da. DeltaM..ppm. Deltam.z..Da.
#> 1 659.9110 1318.815 0.94833301 0.0006253370
#> 2 804.7817 2412.330 1.62711731 0.0013083790
#> 3 536.6519 1607.941 0.08320968 0.0000445988
#> 4 769.7486 2307.231 0.25151981 0.0001934380
#> 5 804.7806 2412.327 0.26084356 0.0002097470
#> 6 717.3964 1433.785 1.17660656 0.0008435000
#> Activation.Type MS.Order Isolation.Interference....
#> 1 CID (Collision Induced Dissociation) MS2 6.766383
#> 2 CID (Collision Induced Dissociation) MS2 0.000000
#> 3 CID (Collision Induced Dissociation) MS2 68.606460
#> 4 CID (Collision Induced Dissociation) MS2 76.066820
#> 5 CID (Collision Induced Dissociation) MS2 0.000000
#> 6 CID (Collision Induced Dissociation) MS2 11.325790
#> Average.Reporter.S.N Ion.Inject.Time..ms. RT..min. First.Scan
#> 1 159.00 6.601878 148.9752 73748
#> 2 46.89 15.734270 135.2369 68094
#> 3 40.19 7.173252 154.1151 77159
#> 4 31.19 9.751245 196.9999 101816
#> 5 64.88 28.425920 135.1362 68036
#> 6 53.38 6.262698 161.8391 81809
#> Spectrum.File Ions.Matched Ions.Score Identity.Strict Identity.Relaxed
#> 1 8 6/58 25.05 13 13
#> 2 10 16/142 25.97 13 13
#> 3 2 10/92 23.49 13 13
#> 4 4 11/176 16.86 13 13
#> 5 10 17/142 39.10 13 13
#> 6 14 6/88 41.36 13 13
#> Expectation.Value Percolator.q.Value Percolator.PEP
#> 1 0.062367246 NA NA
#> 2 0.050461083 NA NA
#> 3 0.089321615 NA NA
#> 4 0.411108606 NA NA
#> 5 0.002454463 NA NA
#> 6 0.001458668 NA NA
#> Reporter.Quan.Result.ID Peptide.Quan.Usage Quan.Info X126 X127_N
#> 1 95406 Used Unique 135.61323 37.19384
#> 2 94212 Used Unique 42.86409 71.93141
#> 3 97211 Used Unique 38.54172 44.57129
#> 4 109920 Used Unique 28.15933 30.06204
#> 5 94186 Used Unique 64.29539 102.20020
#> 6 99858 Used Unique 46.16454 55.41194
#> X127_C X128_N X128_C X129_N X129_C X130_N X130_C
#> 1 189.10156 258.05122 139.01194 125.76453 53.81655 183.68503 256.72159
#> 2 32.59500 13.47320 52.06803 46.63131 85.45609 41.64079 12.25365
#> 3 10.33450 30.76057 62.89271 20.92750 38.13717 53.09552 49.84501
#> 4 48.67455 33.78615 11.54678 48.19111 33.15123 11.19205 27.94818
#> 5 50.94621 19.76218 77.59829 64.78414 106.70743 62.48222 15.93023
#> 6 19.80868 45.59221 84.74119 14.34746 40.83719 86.82802 62.53925
#> X131
#> 1 148.56371
#> 2 49.33819
#> 3 36.56030
#> 4 25.65331
#> 5 54.86919
#> 6 56.06314
head(annotation)
#> Run Channel Condition Mixture BioReplicate
#> 1 1 X126 Norm Mixture1 1.X126
#> 2 1 X127_N 0.667 Mixture1 1.X127_N
#> 3 1 X127_C 0.125 Mixture1 1.X127_C
#> 4 1 X128_N 0.5 Mixture1 1.X128_N
#> 5 1 X128_C 1 Mixture1 1.X128_C
#> 6 1 X129_N 0.125 Mixture1 1.X129_N
required.input <- PDtoMSstatsTMTFormat(raw.input, annotation)
#> ** Shared PSMs (assigned in multiple proteins) are removed.
#> ** Multiple measurements in a feature and a run are summarized by summaryforMultipleRows.
#> ** Features which has any missing value within a run were removed from that run.
head(required.input)
#> ProteinName PeptideSequence Charge
#> 1 P46734 [K].nMTIPEDILGEIAVSIVr.[A] 3
#> 2 P02788ups [R].tHYYAVAVVk.[K] 3
#> 3 P10809 [K].rIQEIIEQLDVTTSEYEk.[E] 4
#> 4 P10809 [K].tLNDELEIIEGmk.[F] 2
#> 5 P06732ups [K].lSVEALNSLTGEFk.[G] 3
#> 6 P10809 [K].imQSSSEVGYDAMAGDFVNMVEk.[G] 3
#> PSM Channel Condition BioReplicate Run
#> 1 [K].nMTIPEDILGEIAVSIVr.[A]_3 126 Norm 1.X126 1
#> 2 [R].tHYYAVAVVk.[K]_3 126 Norm 1.X126 1
#> 3 [K].rIQEIIEQLDVTTSEYEk.[E]_4 126 Norm 1.X126 1
#> 4 [K].tLNDELEIIEGmk.[F]_2 126 Norm 1.X126 1
#> 5 [K].lSVEALNSLTGEFk.[G]_3 126 Norm 1.X126 1
#> 6 [K].imQSSSEVGYDAMAGDFVNMVEk.[G]_3 126 Norm 1.X126 1
#> Mixture Intensity
#> 1 Mixture1 4.459149
#> 2 Mixture1 79.852508
#> 3 Mixture1 51.071656
#> 4 Mixture1 8.853518
#> 5 Mixture1 40.529488
#> 6 Mixture1 9.526569Protein-level summarization from PSM level quantification should be performed before testing differentially abundant proteins. Then, normalization between MS runs using normalization channels will be implemented.
data : Name of the output of PDtoMSstatsTMTFormat function or PSM-level quantified data from other tools. It should have columns named Protein, PSM, Mixture, Run, Channel, Condition, BioReplicate, Intensity.method : Five different summarization methods to protein-level can be performed : MedianPolish(default), Huber, LogSum, Median, Biweight.normalization : Normalization between MS runs. TRUE(default) needs at least normalization channel in each MS run, annotated by ‘Norm’ in Group column. It will be performed after protein-level summarization. FALSE will not perform normalization step.head(required.input)
#> ProteinName PeptideSequence Charge
#> 1 P46734 [K].nMTIPEDILGEIAVSIVr.[A] 3
#> 2 P02788ups [R].tHYYAVAVVk.[K] 3
#> 3 P10809 [K].rIQEIIEQLDVTTSEYEk.[E] 4
#> 4 P10809 [K].tLNDELEIIEGmk.[F] 2
#> 5 P06732ups [K].lSVEALNSLTGEFk.[G] 3
#> 6 P10809 [K].imQSSSEVGYDAMAGDFVNMVEk.[G] 3
#> PSM Channel Condition BioReplicate Run
#> 1 [K].nMTIPEDILGEIAVSIVr.[A]_3 126 Norm 1.X126 1
#> 2 [R].tHYYAVAVVk.[K]_3 126 Norm 1.X126 1
#> 3 [K].rIQEIIEQLDVTTSEYEk.[E]_4 126 Norm 1.X126 1
#> 4 [K].tLNDELEIIEGmk.[F]_2 126 Norm 1.X126 1
#> 5 [K].lSVEALNSLTGEFk.[G]_3 126 Norm 1.X126 1
#> 6 [K].imQSSSEVGYDAMAGDFVNMVEk.[G]_3 126 Norm 1.X126 1
#> Mixture Intensity
#> 1 Mixture1 4.459149
#> 2 Mixture1 79.852508
#> 3 Mixture1 51.071656
#> 4 Mixture1 8.853518
#> 5 Mixture1 40.529488
#> 6 Mixture1 9.526569
str(required.input)
#> 'data.frame': 14740 obs. of 10 variables:
#> $ ProteinName : Factor w/ 6852 levels "","A0A0B4J2A2; F5H284; Q9Y536; P0DN26; P62937",..: 1999 892 1191 1191 991 1191 1191 3511 889 2277 ...
#> $ PeptideSequence: Factor w/ 45359 levels "[-].aYRPSETLcGGELVDTLQFVcGDR.[G]",..: 16736 42016 19175 22281 14962 11273 35198 8686 7706 10245 ...
#> $ Charge : int 3 3 4 2 3 3 3 3 2 3 ...
#> $ PSM : Factor w/ 209 levels "[K].aAISQLr.[S]_2",..: 104 204 113 125 91 61 184 50 45 56 ...
#> $ Channel : Factor w/ 10 levels "126","127_C",..: 1 1 1 1 1 1 1 1 1 1 ...
#> $ Condition : Factor w/ 5 levels "0.125","0.5",..: 5 5 5 5 5 5 5 5 5 5 ...
#> $ BioReplicate : Factor w/ 150 levels "1.X126","1.X127_C",..: 1 1 1 1 1 1 1 1 1 1 ...
#> $ Run : num 1 1 1 1 1 1 1 1 1 1 ...
#> $ Mixture : Factor w/ 5 levels "Mixture1","Mixture2",..: 1 1 1 1 1 1 1 1 1 1 ...
#> $ Intensity : num 4.46 79.85 51.07 8.85 40.53 ...
quant.byprotein <- protein.summarization(required.input,
method="MedianPolish",
normalization=TRUE)
#> ** Negative log2 intensities were replaced with zero.
#> Summarizing for Protein : P46734 ( 1 of 10 )
#> Summarizing for Protein : P02788ups ( 2 of 10 )
#> Summarizing for Protein : P10809 ( 3 of 10 )
#> Summarizing for Protein : P06732ups ( 4 of 10 )
#> Summarizing for Protein : Q16836 ( 5 of 10 )
#> Summarizing for Protein : P02768ups ( 6 of 10 )
#> Summarizing for Protein : P53004 ( 7 of 10 )
#> Summarizing for Protein : O95747 ( 8 of 10 )
#> Summarizing for Protein : P01008ups ( 9 of 10 )
#> Summarizing for Protein : P02753ups ( 10 of 10 )
#> Normalization between MS runs for Protein : P46734 ( 1 of 10 )
#> Normalization between MS runs for Protein : P02788ups ( 2 of 10 )
#> Normalization between MS runs for Protein : P10809 ( 3 of 10 )
#> Normalization between MS runs for Protein : P06732ups ( 4 of 10 )
#> Normalization between MS runs for Protein : Q16836 ( 5 of 10 )
#> Normalization between MS runs for Protein : P02768ups ( 6 of 10 )
#> Normalization between MS runs for Protein : P53004 ( 7 of 10 )
#> Normalization between MS runs for Protein : O95747 ( 8 of 10 )
#> Normalization between MS runs for Protein : P01008ups ( 9 of 10 )
#> Normalization between MS runs for Protein : P02753ups ( 10 of 10 )
head(quant.byprotein)
#> Run Protein Abundance Channel BioReplicate Condition Mixture
#> 1: 1 P46734 2.853184 126 1.X126 Norm Mixture1
#> 2: 1 P46734 2.950416 127_C 1.X127_C 0.125 Mixture1
#> 3: 1 P46734 3.391886 127_N 1.X127_N 0.667 Mixture1
#> 4: 1 P46734 3.399375 128_C 1.X128_C 1 Mixture1
#> 5: 1 P46734 3.129224 128_N 1.X128_N 0.5 Mixture1
#> 6: 1 P46734 3.362269 129_C 1.X129_C 0.5 Mixture1Tests for significant changes in protein abundance across conditions based on a family of linear mixed-effects models in TMT experiment. Experimental design of case-control study (patients are not repeatedly measured) or time course study (patients are repeatedly measured) is automatically determined based on proper statistical model.
data : Name of the output of protein.summarization function. It should have columns named Protein, Mixture, Run, Channel, Condition, BioReplicate, Abundance.contrast.matrix : Comparison between conditions of interests. 1) default is pairwise, which compare all possible pairs between two conditions. 2) Otherwise, users can specify the comparisons of interest. Based on the levels of conditions, specify 1 or -1 to the conditions of interests and 0 otherwise. The levels of conditions are sorted alphabetically.remove_norm_channel : TRUE(default) removes Norm channels for inference step.moderated : Only for model = proposed. If moderated = TRUE, then moderated t statistic will be calculated; otherwise, ordinary t statistic will be used.adj.method : adjusted method for multiple comparison. ’BH` is default.quant.byprotein <- protein.summarization(required.input,
method = "MedianPolish",
normalization=TRUE)
#> ** Negative log2 intensities were replaced with zero.
#> Summarizing for Protein : P46734 ( 1 of 10 )
#> Summarizing for Protein : P02788ups ( 2 of 10 )
#> Summarizing for Protein : P10809 ( 3 of 10 )
#> Summarizing for Protein : P06732ups ( 4 of 10 )
#> Summarizing for Protein : Q16836 ( 5 of 10 )
#> Summarizing for Protein : P02768ups ( 6 of 10 )
#> Summarizing for Protein : P53004 ( 7 of 10 )
#> Summarizing for Protein : O95747 ( 8 of 10 )
#> Summarizing for Protein : P01008ups ( 9 of 10 )
#> Summarizing for Protein : P02753ups ( 10 of 10 )
#> Normalization between MS runs for Protein : P46734 ( 1 of 10 )
#> Normalization between MS runs for Protein : P02788ups ( 2 of 10 )
#> Normalization between MS runs for Protein : P10809 ( 3 of 10 )
#> Normalization between MS runs for Protein : P06732ups ( 4 of 10 )
#> Normalization between MS runs for Protein : Q16836 ( 5 of 10 )
#> Normalization between MS runs for Protein : P02768ups ( 6 of 10 )
#> Normalization between MS runs for Protein : P53004 ( 7 of 10 )
#> Normalization between MS runs for Protein : O95747 ( 8 of 10 )
#> Normalization between MS runs for Protein : P01008ups ( 9 of 10 )
#> Normalization between MS runs for Protein : P02753ups ( 10 of 10 )
test.byproposed <- groupComparison.TMT(quant.byprotein)
#> Testing for Protein : P46734 ( 1 of 10 )
#> Testing for Protein : P02788ups ( 2 of 10 )
#> Testing for Protein : P10809 ( 3 of 10 )
#> Testing for Protein : P06732ups ( 4 of 10 )
#> Testing for Protein : Q16836 ( 5 of 10 )
#> Testing for Protein : P02768ups ( 6 of 10 )
#> Testing for Protein : P53004 ( 7 of 10 )
#> Testing for Protein : O95747 ( 8 of 10 )
#> Testing for Protein : P01008ups ( 9 of 10 )
#> Testing for Protein : P02753ups ( 10 of 10 )