MSstatsTMT : A package for protein significance analysis in shotgun mass spectrometry-based proteomic experiments with tandem mass tag (TMT) labeling

Ting Huang (thuang0703@gmail.com), Meena Choi (mnchoi67@gmail.com), Sicheng Hao (hao.sic@husky.neu.edu)

2018-03-19

This vignette summarizes the introduction and various options of all functionalities in MSstatsTMT.

PDtoMSstatsTMTFormat

Preprocess PSM data from Proteome Discoverer and convert into the required input format for MSstatsTMT.

Arguments

Example

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.526569

protein.summarization

Protein-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.

Arguments

Example

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 Mixture1

groupComparison.TMT

Tests 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.

Arguments

Example

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 )