Get started with limpca.

R-CMD-check

Installation

remotes::install_github("ManonMartin/limpca", dependencies = TRUE)
library("limpca")

Note that if you would like to build the vignettes, you have to install BiocStyle (from Bioconductor) and rmarkdown packages before installing limpca with the following command: remotes::install_github("ManonMartin/limpca", dependencies = TRUE, build_vignettes = TRUE).

For any enquiry, you can send an email to the package authors: bernadette.govaerts@uclouvain.be ; michel.thiel@uclouvain.be or manon.martin@uclouvain.be

Short application on the UCH dataset

Data object

UCH contains a multivariate matrix (outcomes), a design data.frame and a formula as a character string:

data("UCH")
str(UCH)
#> List of 3
#>  $ design  :'data.frame':    34 obs. of  5 variables:
#>   ..$ Hippurate: Factor w/ 3 levels "0","1","2": 1 1 1 1 1 1 2 2 2 2 ...
#>   ..$ Citrate  : Factor w/ 3 levels "0","2","4": 1 1 2 2 3 3 1 1 2 2 ...
#>   ..$ Dilution : Factor w/ 1 level "diluted": 1 1 1 1 1 1 1 1 1 1 ...
#>   ..$ Day      : Factor w/ 2 levels "2","3": 1 1 1 1 1 1 1 1 1 1 ...
#>   ..$ Time     : Factor w/ 2 levels "1","2": 1 2 1 2 1 2 1 2 1 2 ...
#>  $ outcomes: num [1:34, 1:600] 0.0312 0.0581 0.027 0.0341 0.0406 ...
#>   ..- attr(*, "dimnames")=List of 2
#>   .. ..$   : chr [1:34] "M2C00D2R1" "M2C00D2R2" "M2C02D2R1" "M2C02D2R2" ...
#>   .. ..$ X1: chr [1:600] "9.9917004" "9.9753204" "9.9590624" "9.9427436" ...
#>  $ formula : chr "outcomes ~ Hippurate + Citrate + Time + Hippurate:Citrate + Time:Hippurate + Time:Citrate + Hippurate:Citrate:Time"

Data visualisation

The design can be visualised with plotDesign().

# design
plotDesign(design = UCH$design, x = "Hippurate", 
           y = "Citrate", rows = "Time",
           title = "Design of the UCH dataset")


# row 3 of outcomes
plotLine(Y = UCH$outcomes,
         title = "H-NMR spectrum",
         rows = c(3),
         xlab = "ppm",
         ylab = "Intensity")

PCA

ResPCA = pcaBySvd(UCH$outcomes)
pcaScreePlot(ResPCA, nPC = 6)

pcaScorePlot(resPcaBySvd = ResPCA, axes = c(1,2), 
             title = "PCA scores plot: PC1 and PC2", 
             design = UCH$design,
             color = "Hippurate", shape = "Citrate",
             points_labs_rn = FALSE)

Model estimation and effect matrix decomposition

# Model matrix generation
resMM = lmpModelMatrix(UCH)

# Model estimation and effect matrices decomposition
resEM = lmpEffectMatrices(resMM)

Effect matrix test of significance and importance measure

# Effects importance
resEM$varPercentagesPlot


# Bootstrap tests
resBT = lmpBootstrapTests(resLmpEffectMatrices = resEM, nboot=100)
resBT$resultsTable
#>                        % of variance (T III) Bootstrap p-values
#> Hippurate                              39.31             < 0.01
#> Citrate                                29.91             < 0.01
#> Time                                   16.24             < 0.01
#> Hippurate:Citrate                       1.54               0.12
#> Hippurate:Time                          6.23             < 0.01
#> Citrate:Time                            0.54               0.37
#> Hippurate:Citrate:Time                  1.68               0.07
#> Residuals                               4.30                  -

ASCA decomposition

# ASCA decomposition
resASCA = lmpPcaEffects(resLmpEffectMatrices = resEM, method="ASCA")

# Scores Plot for the hippurate
lmpScorePlot(resASCA, effectNames = "Hippurate", 
             color = "Hippurate", shape = "Hippurate")


# Loadings Plot for the hippurate
lmpLoading1dPlot(resASCA, effectNames = c("Hippurate"), 
                              axes = 1, xlab = "ppm")


# Scores ScatterPlot matrix
lmpScoreScatterPlotM(resASCA,PCdim=c(1,1,1,1,1,1,1,2),
                     modelAbbrev = TRUE,
                     varname.colorup = "Citrate",
                     varname.colordown  = "Time",
                     varname.pchup="Hippurate",
                     varname.pchdown="Time",
                     title = "ASCA scores scatterplot matrix")