Issue with protein summarisation

112 views
Skip to first unread message

Sam Lord

unread,
Oct 26, 2023, 10:14:13 AM10/26/23
to MSstats
Hello, 

I am trying to use MSstatsTMT and I encounter an issue when trying to perform protein summarisation. I have 2 conditions (young and old), 3 biological replicates and two mixtures that have the same TMT labels (6plex). Each mixture has been fractionated 12 times. Based on this information I created an annotation file and ran the Rcode alongside my PSM file from proteome discoverer.

Whilst mixture 1 seems to run to completion, I get stuck on mixture 2 (stays on 1% completion), suggesting there is an issue here (see attached).I have also attached my annotation file in case there is any issue with my layout.

I have checked that the run names on the annotation file match the spectrum files on the PSM datasheet, so i'm not quite sure what the issue is here.

Any help would be much appreciated (this is my first time trying MSstats so I may have made an obvious error...)

Thanks

Sam


Screenshot 2023-10-26 at 15.01.20.png
PD_annotation.csv

Mateusz Staniak

unread,
Oct 26, 2023, 11:09:16 AM10/26/23
to MSstats
Hi,

how long is it stuck?
Let's try two quick checks:
- is there a protein with a very high feature count in mixture 2?
- does mixture 2 have a high (or at least considerable) proportion of missing data?


Kind regards
Mateusz Staniak

Sam Lord

unread,
Oct 26, 2023, 11:34:55 AM10/26/23
to MSstats
Hi,

I haven't let it run longer than ~ 15 minutes but its stuck on 1% so I assume there is an error, whereas mixture1 takes a few minutes for completion.

1. I do have a couple of more abundant proteins in mixture2 (Titin and myosin which are highly abundant), although there are still some highly abundant proteins in mixture1 2. There is only 343 missing abundance values across all mixtures and there is over 150,000 PSMs (so not many)

Many thanks

Sam

Mateusz Staniak

unread,
Oct 30, 2023, 9:58:49 AM10/30/23
to MSstats
I see. Is this issue still there if you take a small subset of your data (1 protein per mixture, 100 proteins per mixture, ...)?


Kind regards,
Mateusz

Sam Lord

unread,
Nov 1, 2023, 7:00:47 AM11/1/23
to MSstats
Hi Mateusz,

I've tried using 5 proteins per mixture and it works. If I am interpreting this right, this suggests the code is right and the annotation file works but something in the raw PSM file from proteome discoverer is preventing the protein summarization from working in mixture 2.

I've also tried seperating mixture 1 and mixture 2 into seperate annotation and PSM files.  Mixture 1 runs to completion and I can perform statistical analysis on this mixture (However when I try to run a volcano plot using the MSstats function it says "Error in getOption("MSstatsLog")("MSstats - groupComparisonPlots function") : attempt to apply non-function") . But Mixture 2 does not work for protein summarization.

Any ideas as to why the full PSM file may not be working? Happy to send the file over if that would help.

Many thanks

Sam

Message has been deleted

Sam Lord

unread,
Nov 3, 2023, 5:50:41 AM11/3/23
to MSstats
UPDATE:  I just tried leaving the protein summarization code for a few hours and when I came back, to my surprise mixture 2 has now worked. I think it was probably due to high number of peptides for certain proteins (>2000). 

An issue I am now trying to resolve is order of analysis from the groupComparisonTMT function. At the moment it is comparing young vs Old, but I want it to compare Old vs Young (so my volcano plots are flipped). I know on Limma you can design your contrast matrix to order your conditions in the correct format, can you do this on MSstatsTMT as well?

This is the code I have at the moment which gives Young vs Old, any ideas on what I can change to make it Old vs Young?

groupComparisonTMT(data = quant.msstats,
                                          contrast.matrix = "pairwise", 
                                          moderated = TRUE, 
                                          adj.method = "BH") 

Many Thanks

Sam

vitek...@gmail.com

unread,
Nov 3, 2023, 3:09:50 PM11/3/23
to MSstats
The easiest way is to rename your conditions so that they are in the opposite alphanumeric order. The second option is to create your own custom contrasts.

Sincerely
OV

Sam Lord

unread,
Nov 15, 2023, 9:37:50 AM11/15/23
to MSstats
Thank you, I have designed my own custom contrast and this works.

I wonder if it is possible to obtain raw intensity values for each protein (before log2/normalisation)? I am hoping analyse some of the protein data on another software and it requires me to upload this raw file. 

Could I do this by editing the proteinsummarisation function to not perform logarithm transformation of Intensity and not oerfirm global median normalization between channels?

Many thanks

Sam

Devon Kohler

unread,
Nov 15, 2023, 11:10:19 AM11/15/23
to MSstats
Hi Sam,

Are you looking to get summarized values or feature level values?

If you want summarized values you can just turn off normalization and un-log the resulting protein level data. Feature level data should just be in the FeatureLevelData object.

Devon

Sam Lord

unread,
Nov 15, 2023, 11:25:42 AM11/15/23
to MSstats
Hi Devon,

Yes I believe I want the summarised data, if my interpretation is correct the feature level data gives each data for each PSM but I want the data to be summarised for each protein. 

I will try turning off normalisation, assume from your advice, there is no way to turn of log transformation on the protein summarisation code?

Thanks

Sam

vitek...@gmail.com

unread,
Nov 15, 2023, 11:55:47 AM11/15/23
to MSstats
Let me add that I don't recommend doing protein summarization on the original scale, because of the nature of the model assumptions. I suggest proceeding with the regular protein summarization in MSstats, and then unlog the resulting protein summaries

Sincerely
OV

Sam Lord

unread,
Nov 16, 2023, 4:04:35 AM11/16/23
to MSstats
Hi OV,

Thanks for the heads up, maybe I should clarify my goal of obtaining this 'raw' protein data.

I want to perform some quality control checks (e.g. correlation matrix) to see how good my data looks. One of the programs I want to run this QC check asks me to upload the raw protein file, I guess so it checks your data quality before you perform the standard normalisation/log transformation to make you data easier to work. Before performing MSstatsTMT I used to upload the protein file obtained from Proteome discoverer, so I am now trying to figure out the best way to upload 'raw' protein data from MSstatsTMT. I will only be using this raw file for QC checks and not for performing statistical analysis.

Based on this aim, for the QC checks would you recommend:
1) still performing the regular protein summarization and then unlog
2) Run with normalisation and then unlog
3) or just upload the protein file I get from proteome discoverer as this data should be quite similar to that of what I obtain from MSstatsTMT?

Alternatively are there any other good QC checks available on MSstatsTMT that I could use instead, I find the profile plots quite difficult to use as you get one for ever protein rather than a single plot.

Hope this makes sense :)

Many thanks

Sam
Reply all
Reply to author
Forward
0 new messages