## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE, message = FALSE, warning = FALSE)

## ----filterdata---------------------------------------------------------------
simdata <- prolfqua::sim_lfq_data_peptide_config()
lfqdata <- prolfqua::LFQData$new(simdata$data,simdata$config)
lfqdata$remove_small_intensities()

## ----showHowToWide------------------------------------------------------------
lfqdata$data_wide()$data[1:3,1:8]

## ----intensityDistribution----------------------------------------------------
lfqplotter <- lfqdata$get_Plotter()
lfqplotter$intensity_distribution_density()

## ----makeMissingHeatmap-------------------------------------------------------
nah <- lfqplotter$na_heatmap()

## ----printMissingHeatmap, fig.cap="Heatmap, black - missing protein intensities, white - present"----
nah

## ----summaryPerGroup, fig.cap="# of proteins with 0,1,...N missing values"----
lfqdata$get_Summariser()$plot_missingness_per_group()

## ----cumSumSummary, fig.cap="Cumulative sum of the # of proteins with 0,1,...N missing values"----
lfqdata$get_Summariser()$plot_missingness_per_group_cumsum()

## ----missingnessHist, fig.cap="Intensity distribution of proteins depending on # of missing values"----
lfqplotter$missigness_histogram()

## ----PlotCVDistributions------------------------------------------------------
stats <- lfqdata$get_Stats()
prolfqua::table_facade( stats$stats_quantiles()$wide, paste0("quantile of ",stats$stat ))

## ----cvDistr, fig.cap="Distribution of CV's"----------------------------------
stats$density_median()

## ----stdvVSmean, fig.cap="Scatter plot of standard deviation vs mean"---------
stdm_raw <- stats$stdv_vs_mean(size = 10000) +
  ggplot2::scale_x_log10() +
  ggplot2::scale_y_log10()
stdm_raw

## ----normalizeData------------------------------------------------------------
lt <- lfqdata$get_Transformer()
transformed <- lt$log2()$robscale()$lfq
transformed$is_transformed()

## ----plotDensities, fig.cap="Normalized intensities."-------------------------
pl <- transformed$get_Plotter()
pl$intensity_distribution_density()

## ----plotScatterMatrix, fig.cap = "Scatterplot matrix"------------------------
pl$pairs_smooth()

## ----plotheatmap, fig.cap="Heatmap, Rows - proteins, Columns - samples", fig.align=5, fig.height=5----
p <- pl$heatmap() 
p 

## ----heatmapCor---------------------------------------------------------------
hc <- pl$heatmap_cor()

## ----plotHeatmapCor, fig.cap="Heatmap based on sample correlations, Rows - samples, Columns - samples", fig.align=5, fig.height=5----
hc

## ----doPCA, fig.cap="Principal component analysis for all samples", fig.align=5, fig.height=7----
pl$pca()

## ----showStandardDeviations---------------------------------------------------
stats <- transformed$get_Stats()
prolfqua::table_facade(stats$stats_quantiles()$wide, "Standard deviations")

## ----sddensity, fig.cap="Density of the standard deviation"-------------------
stats$density_median()

## ----checkForHeteroskedasticity, fig.cap="Scatter plot of sd vs mean of protein intensity"----
stdm_trans <- stats$stdv_vs_mean(size = 10000) + ggplot2::scale_x_log10() + ggplot2::scale_y_log10()
stdm_trans
#gridExtra::grid.arrange(stdm_raw, stdm_trans, nrow=1)

## ----filter_condition_a-------------------------------------------------------
transformedA <- transformed$get_copy()
transformedA$set_data(transformedA$data_long() |> dplyr::filter(group_ == "A"))
stats <- transformedA$get_Stats()

## ----plot_sd_ecdf, fig.cap="Empirical cumulative density function of the standard deviation for all the proteins in the dataset."----
stats$density(ggstat = "ecdf")

## ----estimateSampleSizes------------------------------------------------------
sampleSize <- stats$power_t_test_quantiles() |> 
  dplyr::filter(group_ != "All")
prolfqua::table_facade(sampleSize, "Sample sizes. delta - Effect size, N - samplesize")


## ----plot_sample_size_quantiles, fig.cap="Estimated sample sizes for various FC levels and various quantiles of the standard deviation."----
sampleSize |>
  ggplot2::ggplot(ggplot2::aes(x = factor(probs) , y = N)) +
  ggplot2::facet_wrap(~delta) +
  ggplot2::geom_bar(stat = "identity")


## ----stats, eval = TRUE-------------------------------------------------------
stats$stats() |> head()

## ----statsWithN, eval = TRUE--------------------------------------------------
x <- stats$power_t_test(delta = 1,power = 0.8, sig.level = 0.05)
x <- x |> dplyr::filter(group_ == "A") |> dplyr::arrange(desc(N),protein_Id)
prolfqua::table_facade(x[1:7,], caption = "Sample size for each protein")

## ----fig.cap="Distribution of the required sample sizes for two fold change thresholds for all the proteins."----
x |> ggplot2::ggplot(ggplot2::aes(x = N)) +
  ggplot2::geom_histogram() +
  ggplot2::facet_wrap(~delta) +
  ggplot2::xlim(0,100)

## ----session_info-------------------------------------------------------------
sessionInfo()

