Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/OKdll/mpwR
Compare workflows in mass spectrometry based bottom-up proteomics.
https://github.com/OKdll/mpwR
Last synced: 1 day ago
JSON representation
Compare workflows in mass spectrometry based bottom-up proteomics.
- Host: GitHub
- URL: https://github.com/OKdll/mpwR
- Owner: OKdll
- License: other
- Created: 2022-06-16T13:07:39.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-11-13T21:23:07.000Z (almost 1 year ago)
- Last Synced: 2024-08-02T13:31:07.054Z (3 months ago)
- Language: R
- Homepage: https://okdll.github.io/mpwR/
- Size: 9.43 MB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.Rmd
- Changelog: NEWS.md
- License: LICENSE
Awesome Lists containing this project
- awesome-proteomics - mpwR - R - package that allows you to directly compare the output of raw search engines such as MQ, DIANN, spectronaut and I think PD. It's also helpful if you're testing out different settings within your search engine and you want to quickly see how each performs. - [paper](https://pubmed.ncbi.nlm.nih.gov/37267150/) (5. Raw Data Analysis / Table of Contents)
README
---
output: github_document
---```{r, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
fig.path = "man/figures/README-",
out.width = "80%"
)
```# mpwR
[![R-CMD-check](https://github.com/OKdll/mpwR/workflows/R-CMD-check/badge.svg)](https://github.com/OKdll/mpwR/actions)
[![CRAN status](https://www.r-pkg.org/badges/version/mpwR)](https://CRAN.R-project.org/package=mpwR)mpwR [ɪmˈpaʊə(r)] offers a systematic approach for comparing proteomic workflows and empowers the researcher to effortlessly access valuable information about identifications, data completeness, quantitative precision, and other performance indicators across an unlimited number of analyses and multiple software tools. It can be used to analyze label-free mass spectrometry-based experiments with data-dependent or data-independent spectral acquisition.
## Applications - RMarkdown or Shiny
The functions of mpwR provide a great foundation to generate customized reports e.g. with RMarkdown or to build shiny apps/dashboards for downstream data analysis. An example for a shiny dashboard is also available - you can access the dashboard [here](https://okdll.shinyapps.io/mpwR/).## Installation
Install the development version from [GitHub](https://github.com/OKdll/mpwR) using the [`devtools`](https://github.com/r-lib/devtools) package by using the following commands:
```{r, eval = FALSE}
# install.packages("devtools") #remove "#" if you do not have devtools package installed yet
devtools::install_github("OKdll/mpwR", dependencies = TRUE) # use dependencies TRUE to install all required packages for mpwR
```## Preparation
### Requirements
As input the standard outputs of ProteomeDiscoverer, Spectronaut, DIA-NN or MaxQuant are supported by mpwR. Details about further requirements are listed in the vignette [Requirements](https://okdll.github.io/mpwR/articles/Requirements.html).### Import
Importing the output files from each software can be easily performed with `prepare_mpwR`. Further details about importing data are highlighted in the vignette [Import](https://okdll.github.io/mpwR/articles/Import.html).```{r import, eval = FALSE}
files <- prepare_mpwR(path = "Path_to_Folder_with_files")
```### Load packages
```{r libraries, message=FALSE, warning=FALSE}
library(mpwR)
library(flowTraceR)
library(magrittr)
library(dplyr)
library(tidyr)
library(stringr)
library(tibble)
library(ggplot2)
```## Example - Workflow
This is a basic example which shows the downstream analysis for number of identifications and data completeness. Please check the vignette [Workflow](https://okdll.github.io/mpwR/articles/Workflow.html) for a detailed analysis pipeline and more functionalities.
```{r example}
#get example
files <- create_example()
```# Number of Identifications
## Report
The number of identifications can be determined with `get_ID_Report`.
```{r ID-Report}
ID_Reports <- get_ID_Report(input_list = files)
```
For each analysis an ID Report is generated and stored in a list. Each ID Report entry can be easily accessed:
```{r show-ID-Report}
ID_Reports[["DIA-NN"]]
```
## Plot### Individual
Each ID Report can be plotted with `plot_ID_barplot` from precursor- to proteingroup-level. The generated barplots are stored in a list.
```{r plot-ID-barplot}
ID_Barplots <- plot_ID_barplot(input_list = ID_Reports, level = "ProteinGroup.IDs")
```
The individual barplots can be easily accessed:
```{r show-ID-barplot}
ID_Barplots[["DIA-NN"]]
```
### Summary
As a visual summary a boxplot can be generated with `plot_ID_boxplot`.
```{r plot-ID-boxplot}
plot_ID_boxplot(input_list = ID_Reports, level = "ProteinGroup.IDs")
```
# Data Completeness## Report
Data Completeness can be determined with `get_DC_Report` for absolute numbers or in percentage.```{r DC-Report}
DC_Reports <- get_DC_Report(input_list = files, metric = "absolute")
DC_Reports_perc <- get_DC_Report(input_list = files, metric = "percentage")
```
For each analysis a DC Report is generated and stored in a list. Each DC Report entry can be easily accessed:
```{r show-DC-Report}
DC_Reports[["DIA-NN"]]
```
## Plot### Individual
#### Absolute
Each DC Report can be plotted with `plot_DC_barplot` from precursor- to proteingroup-level. The generated barplots are stored in a list.
```{r plot-DC-barplot}
DC_Barplots <- plot_DC_barplot(input_list = DC_Reports, level = "ProteinGroup.IDs", label = "absolute")
```
The individual barplots can be easily accessed:
```{r show-DC-barplot}
DC_Barplots[["DIA-NN"]]
```
#### Percentage
```{r show-DC-barplot-percentage}
plot_DC_barplot(input_list = DC_Reports_perc, level = "ProteinGroup.IDs", label = "percentage")[["DIA-NN"]]
```
### Summary
As a visual summary a stacked barplot can be generated with `plot_DC_stacked_barplot`.#### Absolute
```{r plot-DC-stacked-barplot}
plot_DC_stacked_barplot(input_list = DC_Reports, level = "ProteinGroup.IDs", label = "absolute")
```
#### Percentage
```{r plot-DC-stacked-barplot-percentage}
plot_DC_stacked_barplot(input_list = DC_Reports_perc, level = "ProteinGroup.IDs", label = "percentage")
```