The goal of Olink® Analyze is to provide a versatile toolbox to enable easy and smooth handling of Olink NPX data to speed up your proteomic research. Olink® Analyze provides functions ranging from reading Olink NPX data as exported by NPX Manager to various statistical tests and modelling, via different QC plot functions. Thereby providing a convenient pipeline for your Olink NPX data analysis.
Olink® Analyze is now available on CRAN: https://cran.r-project.org/web/packages/OlinkAnalyze/index.html
install.packages("OlinkAnalyze")
browseVignettes("OlinkAnalyze")
# open package
library(OlinkAnalyze)
# reading Olink NPX data
my_NPX_data <- read_NPX(filename = "path/to/my_NPX_data.xlsx")
There are several plot functions, below follows two examples using the package provided npx_data1 dataset:
# visualize the NPX distribution per sample per panel, example for one panel
olink_dist_plot(npx_data1 %>% filter(Panel == 'Olink CARDIOMETABOLIC')) +
theme(axis.text.x = element_blank(),
axis.ticks.x = element_blank()) +
scale_fill_manual(values = c('turquoise3', 'red'))
# visualize potential outliers by IQR vs. sample median per panel, example for one panel
olink_qc_plot(npx_data1 %>% filter(Panel == 'Olink CARDIOMETABOLIC')) +
scale_color_manual(values = c('turquoise3', 'red'))
Olink® Analyze provides several means of normalization when analyzing multiple datasets. Below follows an example of reference sample (aka bridge) normalization using the two package provided npx_data1 and npx_data2 datasets:
# identify bridge samples
bridge_samples <- intersect(x = npx_data1$SampleID,
y = npx_data2$SampleID)
# bridge normalize
bridge_normalized_data <- olink_normalization(df1 = npx_data1,
df2 = npx_data2,
overlapping_samples_df1 = bridge_samples,
df1_project_nr = "20200001",
df2_project_nr = "20200002",
reference_project = "20200001")
Olink® Analyze provides several statistical tests and model tools. Below follows an example of how to perform a t-test and how to visualize the t-test output in a volcano plot using the package provided npx_data1 dataset:
# t-test npx_data1
ttest_results_NPX1 <- olink_ttest(df = npx_data1,
variable = "Treatment")
# select names of the top #10 most significant proteins
ttest_sign_NPX1 <- ttest_results_NPX1 %>%
head(n=10) %>%
pull(OlinkID)
# volcano plot with annotated top #10 most significant proteins
olink_volcano_plot(p.val_tbl = ttest_results_NPX1,
olinkid_list = ttest_sign_NPX1) +
scale_color_manual(values = c('turquoise3', 'red'))
Please see the function specific help pages. Moreover, Olink® Analyze includes two simulated NPX datasets for your convenience to help you explore the package and its functions.
Please report any issues (good or bad) to <biostattools[a]olink.com> or use the github issue function.
To install directly from the github repository:
# install.packages("remotes")
remotes::install_github(repo ='Olink-Proteomics/OlinkRPackage/OlinkAnalyze', ref = "main", build_vignettes = TRUE)
To install Olink Analyze into a new conda environment:
conda create -n OlinkAnalyze -c conda-forge r-olinkanalyze
Olink® Analyze is developed and maintained by the Olink Proteomics Data Science Team.