Troubleshooting: Analysis of Fragpipe results with MSstats, missing columns

207 views
Skip to first unread message

Chiara

unread,
Oct 25, 2023, 7:12:54 AM10/25/23
to MSstats
Dear all,

I am working on my internship research project and I am currently trying to analyse some data I produced with Fragpipe (default workflow, DDA and DIA of the same sample, to compare the two modes of acquisition and to write down a protocol for the complete analysis) using MSstats on RStudio.

In order to do so, I am following this Fragpipe guide: https://fragpipe.nesvilab.org/docs/tutorial_msstats.html

Screenshot from 2023-10-25 11-34-12.png

However, here is what my script looks like:

Screenshot from 2023-10-25 11-33-18.png

It looks like the columns are not set how they should be. I am using the msstat.csv file produced by the analysis. I can see that the columns name's are separated by a dot so I changed the names and that partially solved the issue, but there are also some other columns required that I just don't have in my .csv file (like the IsotopeLabelType column for instance). 

I would really appreciate if someone could help me figure out the problem here.

I will have to repeat the analysis with different Fragpipe workflows as well in the future, so if you have any suggestions on how to analyse this data please feel free to share!


Thank you and have a lovely day,
Chiara

Devon Kohler

unread,
Oct 26, 2023, 8:52:47 AM10/26/23
to MSstats
Hi  Chiara,

Just looking at your msstats.csv file, it doesn't look like the standard label free file that is output from FragPipe. Can you confirm if this was the DIA or DDA acquisition? Additionally, can you check if you have the latest version of FragPipe? We have worked with them to output everything in the correct format, but DIA in particular only was implemented in the past couple months.

Devon

Chiara

unread,
Oct 30, 2023, 6:29:10 AM10/30/23
to MSstats
Dear Devon,

Thank you for your answer. I have the FragPipe20.0 version, it should be the last one, right?!

I analyzed both DDA and DIA in the same workflow. Maybe that's the issue?

The peptide digest was independently analyzed by data-dependent acquisition (DDA) and data-independent acquisition (DIA) with the same gradient conditions and the same amounts of sample. A total of eleven DDA technical replicates were acquired; three of them were used for identification purpose only, while the other eight measurements were used for the generation of spectral libraries. A total of three technical replicates were acquired with the DIA method.
Below I added the 3 DDA And 3 DIA for identification purposes.


Screenshot from 2023-09-23 15-35-37.png

This is the Fragpipe results folder and the msstats.csv file I was trying to use with MSstats.

Screenshot from 2023-10-30 09-57-24.png


Chiara

Chiara

unread,
Oct 30, 2023, 7:05:16 AM10/30/23
to MSstats
Hello again,

I just tried to quickly run only the 3 DDA files and kept everything exactly as default. I Still get the same error from MSstats.

Screenshot from 2023-10-30 12-02-36.png

Here is the view with Fragpipe-PDV, if it can help...

Screenshot from 2023-10-30 11-54-06.png


Chiara

Devon Kohler

unread,
Oct 30, 2023, 3:27:32 PM10/30/23
to MSstats
Hi Chiara,

Unfortunately I am not really sure what is going on here. FragPipe should output the MSstats.csv file with a specific format that MSstats expects (see below for an example of the correct format). I think this is an issue on the FragPipe end in terms of the file they are outputting. Could you try to get in touch with them? The workflow should be pretty straight forward with the correct file. 


Devon

Chiara

unread,
Nov 1, 2023, 10:16:32 AM11/1/23
to MSstats
Dear Devon,

Thank you for your reply.
I got in touch with Fengchao on Github and we found the problem (https://github.com/Nesvilab/FragPipe/issues/1314).

He also told me that starting from the next version of Fragpipe we will have the same MSstats.csv output for DIA as well, but for now, I decided to analyse DDA and DIA separately.
The analysis of DDA with MSstats is going smoothly, and now I am looking for a way to analyse the DIA data. I would like to take advanced of your expertise once again,  for this.

I am reading this MSstats manual :   https://msstats.org/wp-content/uploads/2020/02/MSstats_v3.18.1_manual_2020Feb26-v2.pdf , and I see that there is an option to use MSstats with DIA-Umpire outputs (chapter: 5.3 - Suggested workflow with DIA-Umpire output for DIA).
FragPipe offers the 'DIA_DIA-Umpire_SpecLib_Quant' workflow which uses DIA-Umpire, so I am wondering if it would make sense to run that workflow to obtain the DIA-Umpire output that I would need for MSstats. Do you know if with this workflow I would get the right output?

On the manual I read that I would need these types of output:

raw.frag<-read.csv('dia_diaumpire/Bruderer2015_DIA_DIAumpire_input_FragSummary.xls',sep="\t")
raw.pep<-read.csv('dia_diaumpire/Bruderer2015_DIA_DIAumpire_input_PeptideSummary.xls',sep="\t")
raw.pro<-read.csv('dia_diaumpire/Bruderer2015_DIA_DIAumpire_input_ProtSummary.xls',sep="\t")



Thank you again and have a lovely day,
Chiara

Devon Kohler

unread,
Nov 1, 2023, 4:21:05 PM11/1/23
to MSstats
Hi Chiara,

I'm actually not sure! It really depends on if FragPipe outputs the same files/formats that DIAUmpire provides. You are correct that we need those three files. You can actually see examples of those files included in MSstats (see the code below). If FragPipe uses DIAUmpire but outputs the data differently these will not work.

On a side note, I know they also use DIA-NN and we do have a converter for DIA-NN so you could potentially use that as well.

Devon


```
library(MSstats)

diau_frag = system.file("tinytest/raw_data/DIAUmpire/dia_frag.csv",
                             package = "MSstatsConvert")
diau_pept = system.file("tinytest/raw_data/DIAUmpire/dia_pept.csv",
                             package = "MSstatsConvert")
diau_prot = system.file("tinytest/raw_data/DIAUmpire/dia_prot.csv",
                             package = "MSstatsConvert")
annot = system.file("tinytest/annotations/annot_diau.csv",
                    package = "MSstats")
diau_frag = data.table::fread(diau_frag)
diau_pept = data.table::fread(diau_pept)
diau_prot = data.table::fread(diau_prot)
annot = data.table::fread(annot)
diau_frag = diau_frag[, lapply(.SD, function(x) if (is.integer(x)) as.numeric(x) else x)]
# In case numeric columns are not interpreted correctly

diau_imported = DIAUmpiretoMSstatsFormat(diau_frag, diau_pept, diau_prot,
                                         annot, use_log_file = FALSE)
head(diau_imported)
```

Reply all
Reply to author
Forward
Message has been deleted
0 new messages