Skip to contents

Nightingale data is…

Import Nightingale data

library(metaboprep)

# example file
filepath <- system.file("extdata", "nightingale_v2_example.xlsx", package = "metaboprep")

# import
dat <- read_nightingale(filepath, return_Metaboprep = FALSE)

# view structure
str(dat)
#> List of 3
#>  $ data    : num [1:50, 1:15] 2.84e-10 3.86e-11 9.59e-11 2.21e-10 1.24e-10 ...
#>   ..- attr(*, "dimnames")=List of 2
#>   .. ..$ : chr [1:50] "ind1" "ind2" "ind3" "ind4" ...
#>   .. ..$ : chr [1:15] "XXL-VLDL-P" "XXL-VLDL-L" "XXL-VLDL-PL" "XXL-VLDL-C" ...
#>  $ samples :'data.frame':    50 obs. of  5 variables:
#>   ..$ sample_id                    : chr [1:50] "ind1" "ind2" "ind3" "ind4" ...
#>   ..$ high_pyruvate                : int [1:50] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ high_lactate                 : int [1:50] 0 0 0 0 0 0 0 1 0 0 ...
#>   ..$ low_glutamine__high_glutamate: int [1:50] 0 0 0 0 0 0 0 0 0 0 ...
#>   ..$ plasma_sample                : int [1:50] 0 0 0 0 0 0 0 0 0 0 ...
#>  $ features:'data.frame':    15 obs. of  1 variable:
#>   ..$ feature_id: chr [1:15] "XXL-VLDL-P" "XXL-VLDL-L" "XXL-VLDL-PL" "XXL-VLDL-C" ...

Create Metaboprep object

Once imported, we pass the data to the Metaboprep class object.

m <- Metaboprep(data     = dat$data, 
                features = dat$features, 
                samples  = dat$samples)

# view 
summary(m)
#> Metaboprep Object Summary
#> --------------------------
#> Samples      : 50
#> Features     : 15
#> Data Layers  : 1
#> Layer Names  : input
#> 
#> Sample Summary Layers : none
#> Feature Summary Layers: none
#> 
#> Sample Annotation (metadata):
#>   Columns: 5
#>   Names  : sample_id, high_pyruvate, high_lactate, low_glutamine__high_glutamate, plasma_sample
#> 
#> Feature Annotation (metadata):
#>   Columns: 1
#>   Names  : feature_id
#> 
#> Exclusion Codes Summary:
#> 
#>   Sample Exclusions:
#> Exclusion | Count
#> -----------------
#> user_excluded                     | 0
#> extreme_sample_missingness        | 0
#> user_defined_sample_missingness   | 0
#> user_defined_sample_totalpeakarea | 0
#> user_defined_sample_pca_outlier   | 0
#> 
#>   Feature Exclusions:
#> Exclusion | Count
#> -----------------
#> user_excluded                    | 0
#> extreme_feature_missingness      | 0
#> user_defined_feature_missingness | 0

QC Nightingale

m <- m |>
  quality_control(source_layer        = "input", 
                  sample_missingness  = 0.5, 
                  feature_missingness = 0.3, 
                  total_peak_area_sd  = 5, 
                  outlier_udist       = 5, 
                  outlier_treatment   = "leave_be", 
                  winsorize_quantile  = 1.0, 
                  tree_cut_height     = 0.5, 
                  pc_outlier_sd       = 5)
#> 
#> ── Starting Metabolite QC Process ──────────────────────────────────────────────
#>  Validating input parameters
#>  Validating input parameters [8ms]
#> 
#>  Sample & Feature Summary Statistics for raw data
#>  Sample & Feature Summary Statistics for raw data [150ms]
#> 
#>  Copying input data to new 'qc' data layer
#>  Copying input data to new 'qc' data layer [26ms]
#> 
#>  Assessing for extreme sample missingness >=80% - excluding 0 sample(s)
#>  Assessing for extreme sample missingness >=80% - excluding 0 sample(s) [19ms]
#> 
#>  Assessing for extreme feature missingness >=80% - excluding 0 feature(s)
#>  Assessing for extreme feature missingness >=80% - excluding 0 feature(s) [18m
#> 
#>  Assessing for sample missingness at specified level of >=50% - excluding 0 sa…
#>  Assessing for sample missingness at specified level of >=50% - excluding 0 sa…
#> 
#>  Assessing for feature missingness at specified level of >=30% - excluding 0 f…
#>  Assessing for feature missingness at specified level of >=30% - excluding 0 f…
#> 
#>  Calculating total peak abundance outliers at +/- 5 Sdev - excluding 0 sample(…
#>  Calculating total peak abundance outliers at +/- 5 Sdev - excluding 0 sample(…
#> 
#>  Running sample data PCA outlier analysis at +/- 5 Sdev
#>  Running sample data PCA outlier analysis at +/- 5 Sdev [18ms]
#> 
#>  Sample PCA outlier analysis - re-identify feature independence and PC outlier…
#> ! The stated max PCs [max_num_pcs=10] to use in PCA outlier assessment is greater than the number of available informative PCs [7]
#>  Sample PCA outlier analysis - re-identify feature independence and PC outlier… Sample PCA outlier analysis - re-identify feature independence and PC outlier…
#> 
#>  Creating final QC dataset...
#>  Creating final QC dataset... [117ms]
#> 
#>  Metabolite QC Process Completed
#>  Metabolite QC Process Completed [20ms]

# view 
summary(m)
#> Metaboprep Object Summary
#> --------------------------
#> Samples      : 50
#> Features     : 15
#> Data Layers  : 2
#> Layer Names  : input, qc
#> 
#> Sample Summary Layers : input, qc
#> Feature Summary Layers: input, qc
#> 
#> Sample Annotation (metadata):
#>   Columns: 7
#>   Names  : sample_id, high_pyruvate, high_lactate, low_glutamine__high_glutamate, plasma_sample, reason_excluded, excluded
#> 
#> Feature Annotation (metadata):
#>   Columns: 3
#>   Names  : feature_id, reason_excluded, excluded
#> 
#> Exclusion Codes Summary:
#> 
#>   Sample Exclusions:
#> Exclusion | Count
#> -----------------
#> user_excluded                     | 0
#> extreme_sample_missingness        | 0
#> user_defined_sample_missingness   | 0
#> user_defined_sample_totalpeakarea | 0
#> user_defined_sample_pca_outlier   | 0
#> 
#>   Feature Exclusions:
#> Exclusion | Count
#> -----------------
#> user_excluded                    | 0
#> extreme_feature_missingness      | 0
#> user_defined_feature_missingness | 0