The package MQmetrics (MaxQuant metrics) provides a workflow to analyze the quality and reproducibility of your proteomics mass spectrometry analysis from MaxQuant. Input data are extracted from several MaxQuant output tables (MaxQUant Summer School Output tables), and produces a pdf report. It includes several visualization tools to check numerous parameters regarding the quality of the runs. It also includes two functions to visualize the iRT peptides from Biognosys in case they were spiked in the samples.
You can install MQmetrics from Biocodunctor with:
if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") BiocManager::install("MQmetrics")
You can install the development version from GitHub with:
# install.packages("devtools") devtools::install_github("svalvaro/MQmetrics")
After your MaxQuant run has finished, a folder named combined has been created. This folder should have at least two other folders within:
../combined/txt/ Containing all the tables.txt ../combined/proc/ Containing #runningTimes.txt
You just need the path to the combined folder and you will be able to start using MQmetrics.
MQPathCombined <- '/home/alvaro/Documents/MaxQuant/example5/combined/'
First you need to load the library.
Then you just need to use the
generateReport() function. This function
has parameters to control each of the function that it aggregates. You can
read more about those parameters by using:
Though, the most important parameters are the following:
generateReport(MQPathCombined = , # directory to the combined folder output_dir = , # directory to store the resulting pdf long_names = , # If your samples have long names set it to TRUE sep_names = , # Indicate the separator of those long names UniprotID = , # Introduce the UniprotID of a protein of interest intensity_type = ,) # Intensity or LFQ # The only mandatory parameter is MQPathCombined, the rest are optional.
Is as simple as this to use MQmetrics:
# If you're using a Unix-like OS use forward slashes. MQPathCombined <- '/home/alvaro/Documents/MaxQuant/example5/combined/' # If you're using Windows you can also use forward slashes: MQPathCombined <- "D:/Documents/MaxQuant_results/example5/combined/" #Use the generateReport function. generateReport(MQPathCombined)
If you are only interested in a few plots from the
function, you can do it.
You only need to have access to each file independently.
MQmetrics requires 8 tables from the MaxQuant analysis and the #runningTimes file. If you want to learn more about the information of each of these tables, you can do so in the MaxQuant Summer School videos.
# To create the vignettes and examples I use data that is in the package itself: MQPathCombined <- system.file('extdata/combined/', package = 'MQmetrics') # make_MQCombined will read the tables needed for creating the outputs. MQCombined <- make_MQCombined(MQPathCombined, remove_contaminants = TRUE)
MaxQuantAnalysisInfo(MQCombined) The MaxQuant output directory is: /tmp/RtmpmMbnR6/Rinst16428e50644bf/MQmetrics/extdata/combined/ The MaxQuant analysis started the day: 16/04/2021 at the time: 18:07:23. The whole MaxQuant analysis lasted: 0 days, 2 hours and 15 mins. The MaxQuant analysis finished on: 16/04/2021 at: 20:22:40 The MaxQuant version used was: 22.214.171.124 The user was: thomas.stehrer The machine name was: FGU045PC004 The PSM FDR was: 0.01 The protein FDR was: 0.01 The match between runs was: True The fasta file(s) used was: C:\MaxQuant_Databases\iRT_peptides_Biognosys_irtfusion.fasta C:\MaxQuant_Databases\UP000005640_9606.fasta The iBAQ presence is: False The PTM selected is/are: Oxidation (M);Acetyl (Protein N-term)
PlotProteinsIdentified(), will take as input the
proteinGroups.txt table and show the number of proteins and NAs in each sample.
It can differentiate two types of intensities: ‘Intensity’ or ‘LFQ’.
PlotProteinsIdentified(MQCombined, long_names = TRUE, sep_names = '_', intensity_type = 'LFQ', palette = 'Set2') #> Warning in stri_count_regex(string, pattern, opts_regex = opts(pattern)): #> argument is not an atomic vector; coercing #> Warning in stri_count_regex(string, pattern, opts_regex = opts(pattern)): #> argument is not an atomic vector; coercing
PlotPeptidesIdentified(), will take as input the summary
table and show the number of peptides sequences identified in each sample.
PlotPeptidesIdentified(MQCombined, long_names = TRUE, sep_names = '_', palette = 'Set3')
PlotIdentificationRatio(), will take as input the summary and
proteinGroups tables and plot the number of protein found vs the ratio of
peptides/proteins found in each Experiment.
PlotProteinPeptideRatio(MQCombined, intensity_type = 'LFQ', long_names = TRUE, sep_names = '_')
PlotMsMs(), will take as input the summary.txt table and
show the number of MS/MS Submitted and identified in each sample.
PlotMsMs(MQCombined, long_names = TRUE, sep_names = '_', position_dodge_width = 1, palette = 'Set2')
PlotPeaks(), will take as input the summary.txt table and
show the number peaks detected and sequenced in each sample.
PlotPeaks(MQCombined, long_names = TRUE, sep_names = '_', palette = 'Set2')
PlotIsotopePattern(),will take as input the summary.txt table
and show the number isotope patterns detected and sequenced in each sample.
PlotIsotopePattern(MQCombined, long_names = TRUE, sep_names = '_', palette = 'Set2')