iq

An R package to estimate relative protein abundances from ion quantification in DIA-MS-based proteomics

https://github.com/tvpham/iq

Science Score: 36.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
  • Committers with academic emails
    1 of 3 committers (33.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.2%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

An R package to estimate relative protein abundances from ion quantification in DIA-MS-based proteomics

Basic Info
  • Host: GitHub
  • Owner: tvpham
  • License: bsd-3-clause
  • Language: C++
  • Default Branch: master
  • Size: 1.35 MB
Statistics
  • Stars: 31
  • Watchers: 3
  • Forks: 9
  • Open Issues: 16
  • Releases: 3
Created over 6 years ago · Last pushed over 1 year ago
Metadata Files
Readme Changelog License

README.md

iq: an R package for protein quantification

This R package provides an implementation of the MaxLFQ algorithm by Cox et al. (2014) in a comprehensive pipeline for DIA-MS (Pham et al. 2020). It also offers options for protein quantification using the N most intense fragment ions, using all fragment ions, and the Tukey's median polish algorithm. In general, the tool can be used to integrate multiple proportional observations into a single quantitative value.

Citation

Pham TV, Henneman AA, Jimenez CR. iq: an R package to estimate relative protein abundances from ion quantification in DIA-MS-based proteomics, Bioinformatics 2020 Apr 15;36(8):2611-2613. https://doi.org/10.1093/bioinformatics/btz961

Installation

The package is hosted on CRAN. It is best to install from within R.

install.packages("iq")

Usage

See a recent example for processing a Spectronaut output.

Or an older vignette for processing output from Spectronaut, OpenSWATH and MaxQuant with some visualization.

A blog post on converting a .parquet file to a .tsv file.

The package can be loaded in the usual manner

library("iq")

To process a DIA-NN output

For version of DIA-NN prior to 2.0, the following is an iq function call to filter on the Q.Value, PG.Q.Value, Lib.Q.Value, and Lib.PG.Q.Value for a match-between run (MBR) DIA-NN search as discussed here.

process_long_format("report.tsv", sample_id = "Run", intensity_col = "Fragment.Quant.Raw", output_filename = "report-pg-global.txt", annotation_col = c("Protein.Names", "Genes"), filter_double_less = c("Q.Value" = "0.01", "PG.Q.Value" = "0.05", "Lib.Q.Value" = "0.01", "Lib.PG.Q.Value" = "0.01"))

DIA-NN version 2.0 uses the parquet data format for output. We can use the R package arrow to read the data. However, the fragment intensities are not reported by the default setting. To perform quantification using MS/MS fragments, one must switch on the --export-quant option. Then we can use R to create a .tsv as an intermediate step as follows

``` require("arrow")

if the package "arrow" is not available, you can install it by

install.packages("arrow")

raw <- arrow::read_parquet("report.parquet")

create a new column called "Intensities"

raw$Intensities = paste(raw$Fr.0.Quantity, raw$Fr.1.Quantity, raw$Fr.2.Quantity, raw$Fr.3.Quantity, raw$Fr.4.Quantity, raw$Fr.5.Quantity, raw$Fr.6.Quantity, raw$Fr.7.Quantity, raw$Fr.8.Quantity, raw$Fr.9.Quantity, raw$Fr.10.Quantity, raw$Fr.11.Quantity, sep = ";")

write.table(raw, "report.tsv", sep = "\t", row.names = FALSE, quote = FALSE)

using the new column "Intensities"

iq::processlongformat("report.tsv", outputfilename = "report-protein-group.txt", sampleid = "Run", intensitycol = "Intensities", annotationcol = c("Protein.Ids","Protein.Names", "Genes"), filterdoubleless = c("Q.Value" = "0.01", "PG.Q.Value" = "0.05", "Lib.Q.Value" = "0.01", "Lib.PG.Q.Value" = "0.01")) ```

Alternatively, we can use the aggregated intensities in Precursor.Normalisedas discussed here.

iq::process_long_format(arrow::read_parquet("report.parquet"), output_filename = "report-protein-group.txt", sample_id = "Run", intensity_col = "Precursor.Normalised", intensity_col_sep = NULL, annotation_col = c("Protein.Ids","Protein.Names", "Genes"), filter_double_less = c("Q.Value" = "0.01", "PG.Q.Value" = "0.05", "Lib.Q.Value" = "0.01", "Lib.PG.Q.Value" = "0.01"))

Similarly, for a DIA-NN search without MBR

iq::process_long_format(arrow::read_parquet("report.parquet"), output_filename = "report-protein-group.txt", sample_id = "Run", intensity_col = "Precursor.Normalised", intensity_col_sep = NULL, annotation_col = c("Protein.Ids","Protein.Names", "Genes"), filter_double_less = c("Q.Value" = "0.01", "PG.Q.Value" = "0.05", "Global.Q.Value" = "0.01", "Global.PG.Q.Value" = "0.01"))

Finally, use the parameter peptide_extractor if you want to get the number of peptides per protein, for example with MBR and the --export-quant option.

iq::process_long_format("report.tsv", output_filename = "report-protein-group.txt", sample_id = "Run", intensity_col = "Intensities", annotation_col = c("Protein.Ids","Protein.Names", "Genes"), filter_double_less = c("Q.Value" = "0.01", "PG.Q.Value" = "0.05", "Lib.Q.Value" = "0.01", "Lib.PG.Q.Value" = "0.01"), peptide_extractor = function(x) gsub("[0-9].*$", "", x))

To process a Spectronaut output

Use this export schema iq.rs to make a long report, for example "Spectronaut_Report.xls".

process_long_format("Spectronaut_Report.xls", output_filename = "iq-MaxLFQ.tsv", sample_id = "R.FileName", primary_id = "PG.ProteinGroups", secondary_id = c("EG.Library", "FG.Id", "FG.Charge", "F.FrgIon", "F.Charge", "F.FrgLossType"), intensity_col = "F.PeakArea", annotation_col = c("PG.Genes", "PG.ProteinNames", "PG.FastaFiles"), filter_string_equal = c("F.ExcludedFromQuantification" = "False"), filter_double_less = c("PG.Qvalue" = "0.01", "EG.Qvalue" = "0.01"), log2_intensity_cutoff = 0)

Owner

  • Name: Thang Pham
  • Login: tvpham
  • Kind: user

GitHub Events

Total
  • Issues event: 8
  • Watch event: 8
  • Delete event: 1
  • Issue comment event: 30
  • Push event: 7
Last Year
  • Issues event: 8
  • Watch event: 8
  • Delete event: 1
  • Issue comment event: 30
  • Push event: 7

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 36
  • Total Committers: 3
  • Avg Commits per committer: 12.0
  • Development Distribution Score (DDS): 0.361
Past Year
  • Commits: 8
  • Committers: 2
  • Avg Commits per committer: 4.0
  • Development Distribution Score (DDS): 0.25
Top Committers
Name Email Commits
Thang Pham i****t@g****m 23
Thang Pham t****m@v****l 11
ddluc2000 1****9@e****n 2
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 10 months ago

All Time
  • Total issues: 24
  • Total pull requests: 2
  • Average time to close issues: 3 months
  • Average time to close pull requests: 4 days
  • Total issue authors: 22
  • Total pull request authors: 1
  • Average comments per issue: 2.46
  • Average comments per pull request: 0.0
  • Merged pull requests: 1
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 7
  • Pull requests: 0
  • Average time to close issues: 2 months
  • Average time to close pull requests: N/A
  • Issue authors: 6
  • Pull request authors: 0
  • Average comments per issue: 2.43
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • fcyu (2)
  • kbarylyuk (1)
  • Benjamin-Raymond (1)
  • Yi-Wo (1)
  • hguturu (1)
  • Arthfael (1)
  • Hanfeng-Lin (1)
  • YukunR (1)
  • julia-proteo (1)
  • HaoZhang17 (1)
  • jpquast (1)
  • humility3239 (1)
  • julia-cantelo (1)
  • AUldry (1)
  • achucode (1)
Pull Request Authors
  • ddluc2000 (2)
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads:
    • cran 699 last-month
  • Total dependent packages: 1
  • Total dependent repositories: 4
  • Total versions: 17
  • Total maintainers: 1
cran.r-project.org: iq

Protein Quantification in Mass Spectrometry-Based Proteomics

  • Versions: 17
  • Dependent Packages: 1
  • Dependent Repositories: 4
  • Downloads: 699 Last month
Rankings
Forks count: 8.8%
Stargazers count: 14.7%
Dependent repos count: 14.8%
Average: 15.5%
Dependent packages count: 17.7%
Downloads: 21.4%
Maintainers (1)
Last synced: 11 months ago

Dependencies

DESCRIPTION cran
  • R >= 2.10 depends
  • knitr * suggests
  • rmarkdown * suggests