Nothing
## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(
collapse = TRUE,
comment = "#>",
tidy = FALSE,
tidy.opts = list(width.cutoff = 95),
fig.width = 6,
fig.height = 3,
message = FALSE,
warning = FALSE,
time_it = TRUE,
fig.align = "center"
)
## ----echo = FALSE-------------------------------------------------------------
set.seed(1234)
# Load example dataset (npx_data1)
npx_data1 <- OlinkAnalyze::npx_data1
# NPX file preprocessing
## Generate check log
check_log_npx_data1 <- OlinkAnalyze::check_npx(
df = npx_data1
)
## Clean NPX
npx_data1_clean <- OlinkAnalyze::clean_npx(
df = npx_data1,
check_log = check_log_npx_data1
)
## Generate check log on cleaned data
check_log_npx_data1_clean <- OlinkAnalyze::check_npx(
df = npx_data1_clean
)
table1 <- npx_data1_clean |>
dplyr::slice_head(
n = 6L
) |>
dplyr::select(
-dplyr::all_of(
c("Index", "MissingFreq", "Panel_Version", "QC_Warning", "Subject",
"Treatment", "Site", "Time", "Project", "Panel", "PlateID")
)
) |>
dplyr::mutate(
Count = round(
x = .data[["NPX"]] * (100L + sample(x = seq(from = -5L, to = 15L),
size = 1L))
)
) |>
dplyr::mutate(
SampleType = "SAMPLE"
) |>
dplyr::mutate(
Normalization = "Plate control"
) |>
dplyr::mutate(
NPX = round(x = .data[["NPX"]], digits = 2L)
) |>
dplyr::mutate(
LOD = round(x = .data[["LOD"]], digits = 2L)
) |>
dplyr::mutate(
PCNormalizedNPX = .data[["NPX"]]
) |>
dplyr::mutate(
PCNormalizedLOD = .data[["LOD"]]
) |>
dplyr::select(
dplyr::all_of(
c("SampleID", "SampleType", "OlinkID", "UniProt", "Assay", "Count", "NPX",
"PCNormalizedNPX", "Normalization", "LOD", "PCNormalizedLOD")
)
)
table1 |>
knitr::kable(
caption = "Example results from Plate Control Normalized Project"
) |>
kableExtra::kable_styling(
font_size = 10L
)
table1 |>
dplyr::mutate(
Normalization = "Intensity"
) |>
dplyr::mutate(
NPX = round(x = .data[["NPX"]] + 4.16, digits = 2L)
) |>
dplyr::mutate(
LOD = round(x = .data[["LOD"]] + 4.16, digits = 2L)
) |>
dplyr::select(
dplyr::all_of(
c("SampleID", "SampleType", "OlinkID", "UniProt", "Assay", "Count", "NPX",
"PCNormalizedNPX", "Normalization", "LOD", "PCNormalizedLOD")
)
) |>
knitr::kable(
caption = "Example results from Intensity Normalized Project"
) |>
kableExtra::kable_styling(
font_size = 10
)
## ----npx_data_for_lod, eval = FALSE, message = FALSE, warning = FALSE---------
# # Preprocessing steps for both fixed LOD and Negative Control LOD integration
#
# ## Load NPX file
# df_npx <- OlinkAnalyze::read_NPX(
# filename = "Path_to/Explore_NPX_file.parquet"
# )
#
# ## Check NPX data
# check_log_df_npx <- OlinkAnalyze::check_npx(
# df = df_npx
# )
#
# ## Clean NPX data
# df_npx_clean <- OlinkAnalyze::clean_npx(
# df = df_npx,
# check_log = check_log_df_npx,
# # do not remove controls or warnings to ensure LOD can be calculated correctly
# remove_control_assay = FALSE,
# remove_control_sample = FALSE,
# remove_assay_warning = FALSE,
# remove_qc_warning = FALSE
# )
#
# ## Generate check log on cleaned data
# check_log_df_npx_clean <- OlinkAnalyze::check_npx(
# df = df_npx_clean
# )
#
# # Cleanup intermediate objects
# rm(
# df_npx,
# check_log_df_npx
# )
## ----NCLOD_example, eval = FALSE, message = FALSE, warning = FALSE------------
# # Calculate LOD from negative controls
#
# ## Calculate LOD
# df_npx_nc_lod <- OlinkAnalyze::olink_lod(
# data = df_npx_clean,
# lod_method = "NCLOD",
# check_log = check_log_df_npx_clean
# )
#
# ## Generate check log on data with LOD
# check_log_df_npx_nc_lod <- OlinkAnalyze::check_npx(
# df = df_npx_nc_lod
# )
#
# ## Clean NPX data with LOD
# df_npx_nc_lod_clean <- OlinkAnalyze::clean_npx(
# df = df_npx_nc_lod,
# check_log = check_log_df_npx_nc_lod
# )
#
# ## Generate check log on cleaned data with LOD
# check_log_df_npx_nc_lod_clean <- OlinkAnalyze::check_npx(
# df = df_npx_nc_lod_clean
# )
#
# # Cleanup intermediate objects
# rm(
# df_npx_nc_lod,
# check_log_df_npx_nc_lod
# )
#
# # Rename final cleaned data with LOD for clarity
# df_npx_nc_lod <- df_npx_nc_lod_clean
# check_log_df_npx_nc_lod <- check_log_df_npx_nc_lod_clean
# rm(
# df_npx_nc_lod_clean,
# check_log_df_npx_nc_lod_clean
# )
## ----FixedLOD, eval = FALSE, message = FALSE, warning = FALSE-----------------
# # Integrating fixed LOD
#
# ## Fixed LOD file path
# fixedlod_filepath <- "Path_to/ExploreHT_fixedLOD.csv"
#
# ## Calculate LOD
# df_npx_fixed_lod <- OlinkAnalyze::olink_lod(
# data = df_npx_clean,
# lod_method = "FixedLOD",
# lod_file_path = fixedlod_filepath,
# check_log = check_log_df_npx_clean
# )
#
# ## Generate check log on data with LOD
# check_log_df_npx_fixed_lod <- OlinkAnalyze::check_npx(
# df = df_npx_fixed_lod
# )
#
# ## Clean NPX data with LOD
# df_npx_fixed_lod_clean <- OlinkAnalyze::clean_npx(
# df = df_npx_fixed_lod,
# check_log = check_log_df_npx_fixed_lod
# )
#
# ## Generate check log on cleaned data with LOD
# check_log_npx_fixed_lod_clean <- OlinkAnalyze::check_npx(
# df = df_npx_fixed_lod_clean
# )
#
# # Cleanup intermediate objects
# rm(
# df_npx_fixed_lod,
# check_log_df_npx_fixed_lod
# )
#
# # Rename final cleaned data with LOD for clarity
# df_npx_fixed_lod <- df_npx_fixed_lod_clean
# check_log_df_npx_fixed_lod <- check_log_npx_fixed_lod_clean
# rm(
# df_npx_fixed_lod_clean,
# check_log_npx_fixed_lod_clean
# )
## ----echo = FALSE-------------------------------------------------------------
table1 |>
dplyr::mutate(
Normalization = "Intensity"
) |>
dplyr::mutate(
PCNormalizedNPX = round(x = .data[["NPX"]], digits = 2L)
) |>
dplyr::mutate(
PCNormalizedLOD = round(x = .data[["LOD"]], digits = 2L)
) |>
dplyr::mutate(
NPX = round(.data[["NPX"]] + 4.16, digits = 2L)
) |>
dplyr::mutate(
LOD = round(.data[["LOD"]] + 4.16, digits = 2L)
) |>
dplyr::rename(
"FixedLOD" = "LOD",
"FixedPCNormalizedLOD" = "PCNormalizedLOD"
) |>
dplyr::mutate(
NCLOD = .data[["FixedLOD"]] - 2.34,
NCPCNormalizedLOD = .data[["FixedPCNormalizedLOD"]] - 2.34
) |>
dplyr::select(
dplyr::all_of(
c("SampleID", "SampleType", "OlinkID", "UniProt", "Assay", "Count", "NPX",
"Normalization", "PCNormalizedNPX", "FixedLOD", "FixedPCNormalizedLOD",
"NCLOD", "NCPCNormalizedLOD")
)
) |>
knitr::kable(
caption = "Example results using both LOD calculation methods"
) |>
kableExtra::kable_styling(
font_size = 10L
)
## ----explore_npx_export, eval = FALSE, message = FALSE, warning = FALSE-------
# # Exporting Olink NGS data with LOD information as a parquet file
#
# ## Integrate both Negative Control LOD and fixed LOD before NPX preprocessing
# df_npx_both_lod <- OlinkAnalyze::olink_lod(
# data = df_npx_clean,
# lod_file_path = fixedlod_filepath,
# lod_method = "Both",
# check_log = check_log_df_npx_clean
# )
#
# ## Generate check log
# check_log_df_npx_both_lod <- OlinkAnalyze::check_npx(
# df = df_npx_both_lod
# )
#
# ## Clean NPX
# df_npx_both_lod_clean <- OlinkAnalyze::clean_npx(
# df = df_npx_both_lod,
# check_log = check_log_df_npx_both_lod
# )
#
# ## Generate check log on cleaned data
# check_log_npx_both_lod_clean <- OlinkAnalyze::check_npx(
# df = df_npx_both_lod_clean
# )
#
# # Cleanup intermediate objects
# rm(
# df_npx_both_lod,
# check_log_df_npx_both_lod
# )
#
# # Rename final cleaned data with both LOD for clarity
# df_npx_both_lod <- df_npx_both_lod_clean
# check_log_df_npx_both_lod <- check_log_npx_both_lod_clean
# rm(
# df_npx_both_lod_clean,
# check_log_npx_both_lod_clean
# )
#
# # Add metadata for export
# df_npx_both_lod_arrow <- df_npx_both_lod |>
# arrow::as_arrow_table()
#
# df_npx_both_lod_arrow$metadata$FileVersion <- "NA"
# df_npx_both_lod_arrow$metadata$ExploreVersion <- "NA"
# df_npx_both_lod_arrow$metadata$ProjectName <- "NA"
# df_npx_both_lod_arrow$metadata$SampleMatrix <- "NA"
# df_npx_both_lod_arrow$metadata$DataFileType <- "Olink Analyze Export File"
# # One of "ExploreHT", "Explore3072", or "Reveal"
# df_npx_both_lod_arrow$metadata$ProductType <- "ExploreHT"
# # # "ExploreHT", "Explore3072", or "Reveal"
# df_npx_both_lod_arrow$metadata$Product <- "ExploreHT"
#
# arrow::write_parquet(
# x = df_npx_both_lod_arrow,
# sink = "path_to_output.parquet"
# )
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.