Data Reading

13 samples: february 2011, march 2011, april 2011, may 2011, june 2011, july 2011, july 2010, august 2011, september 2011, september 2010, october 2011, october 2010, november 2010

The metadata variable season was assigned as follows:

Spring: september 2010/2011, october 2010/2011, november 2010

Summer/autumn: february 2011, march 2011, april 2011, may 2011

Winter: june 2011, july 2010/2011, august 2011

library(specmine)
listPeaks=read_csvs_folder("peakLists")
## [1] "Reading sample  peakLists/Abr2011.csv"
## [1] "Reading sample  peakLists/Agosto2011.csv"
## [1] "Reading sample  peakLists/Fev2011.csv"
## [1] "Reading sample  peakLists/Julho2010.csv"
## [1] "Reading sample  peakLists/Julho2011.csv"
## [1] "Reading sample  peakLists/Junho2011.csv"
## [1] "Reading sample  peakLists/maio2011.csv"
## [1] "Reading sample  peakLists/Mar2011.csv"
## [1] "Reading sample  peakLists/Nov2010.csv"
## [1] "Reading sample  peakLists/Out2010.csv"
## [1] "Reading sample  peakLists/Outubro2011.csv"
## [1] "Reading sample  peakLists/Set2010.csv"
## [1] "Reading sample  peakLists/Setembro2011.csv"
metadata=read_metadata("metadata.csv")

Peak Alignment

bananas=group_peaks(listPeaks,type="nmr-peaks", method="own",metadata=metadata, label.x="ppm", label.values="intensity")

Peaks plots

1H-NMR mean spectra plots for each collected sample:

colnames(bananas$data)=c("April2011", "August2011", "February 2011", "July 2010", "July 2011", "June 2011", "May 2011", "March 2011", "November 2010", "October 2010", "October 2011", "September 2010", "September 2011")
for (i in 1:13){
  plot(rownames(bananas$data), bananas$data[,i], type="n", ylab="Intensity (AU - Arbitrary Units)", xlab="ppm", main=colnames(bananas$data)[i], xlim=c(0,8), ylim=c(0,0.3))
  lines(rownames(bananas$data), bananas$data[,i], type="h", col="red")
}

1H-NMR mean spectra plots for each season. Each plot was obtained from the ppm mean of the different samples for each season:

springMeanSpectraIntensities=c()
for (row in 1:dim(bananas$data)[1]){
  m=mean(bananas$data[row, bananas$metadata=="Spring"])
  if (is.na(m)){m=0}
  springMeanSpectraIntensities=c(springMeanSpectraIntensities, m)
}
     
sumAutMeanSpectraIntensities=c()
for (row in 1:dim(bananas$data)[1]){
  m=mean(bananas$data[row, bananas$metadata=="Sum/Aut"])
  if (is.na(m)){m=0}
  sumAutMeanSpectraIntensities=c(sumAutMeanSpectraIntensities, m)
}    
  
winterMeanSpectraIntensities=c()
for (row in 1:dim(bananas$data)[1]){
  m=mean(bananas$data[row, bananas$metadata=="Winter"])
  if (is.na(m)){m=0}
  winterMeanSpectraIntensities=c(winterMeanSpectraIntensities, m)
}


layout(matrix(c(1,2,3), 3, 1, byrow=T), heights=c(2,2,2))
plot(rownames(bananas$data), springMeanSpectraIntensities, type="n", ylab="", xlab="ppm", main="A. Spring", xlim=c(0,8), ylim=c(0,0.3))
lines(rownames(bananas$data), springMeanSpectraIntensities, type="h", col="red")

plot(rownames(bananas$data), sumAutMeanSpectraIntensities, type="n", ylab="Intensity (AU)", xlab="ppm", main="B. Summer/Autumn", xlim=c(0,8), ylim=c(0,0.3))
lines(rownames(bananas$data), sumAutMeanSpectraIntensities, type="h", col="red")

plot(rownames(bananas$data), winterMeanSpectraIntensities, type="n", ylab="", xlab="ppm", main="C. Winter", xlim=c(0,8), ylim=c(0,0.3))
lines(rownames(bananas$data), winterMeanSpectraIntensities, type="h", col="red")

Dataset summary

sum_dataset(bananas)
## Dataset summary:
## Valid dataset
## Description:   
## Type of data:  nmr-peaks 
## Number of samples:  13 
## Number of data points 173 
## Number of metadata variables:  1 
## Label of x-axis values:  ppm 
## Label of data points:  intensity 
## Number of missing values in data:  795 
## Mean of data values:  0.02179374 
## Median of data values:  0.0019 
## Standard deviation:  0.04556014 
## Range of values:  1e-04 0.3023 
## Quantiles: 
##       0%      25%      50%      75%     100% 
## 0.000100 0.000700 0.001900 0.010875 0.302300

Preprocessing

The preprocessing involved treatment of missing values, replacing them with the value 5e-04, logarithmic transformation and scale through the method auto.

bananasPreProc=missingvalues_imputation(bananas)
bananasPreProc=transform_data(bananasPreProc)
bananasPreProc=scaling(bananasPreProc)

Dataset summary, after preprocessing the data

sum_dataset(bananasPreProc)
## Dataset summary:
## Valid dataset
## Description:  ; Missing value imputation with method value; Data transformation with method log; Scaling with method auto 
## Type of data:  nmr-peaks 
## Number of samples:  13 
## Number of data points 173 
## Number of metadata variables:  1 
## Label of x-axis values:  ppm 
## Label of data points:  intensity 
## Number of missing values in data:  0 
## Mean of data values:  -1.324766e-16 
## Median of data values:  0.05904033 
## Standard deviation:  0.9609826 
## Range of values:  -3.328201 3.328201 
## Quantiles: 
##          0%         25%         50%         75%        100% 
## -3.32820118 -0.57239931  0.05904033  0.57747327  3.32820118

Clustering

Hierarchical clustering, using the different distance measures between samples: Euclidean, Manhattan, Pearson and spearman correlations.

clusteringHier=clustering(bananasPreProc, method="hc", distance="euclidean")
dendrogram_plot_col(bananasPreProc, clusteringHier, "Seasons", lab.cex=0.8)

clusteringHier2=clustering(bananasPreProc, method="hc", distance="manhattan")
dendrogram_plot_col(bananasPreProc, clusteringHier2, "Seasons", lab.cex=0.8)

clusteringHier3=clustering(bananasPreProc, method="hc", distance="pearson")
dendrogram_plot_col(bananasPreProc, clusteringHier3, "Seasons", lab.cex=0.8)

clusteringHier4=clustering(bananasPreProc, method="hc", distance="spearman")
dendrogram_plot_col(bananasPreProc, clusteringHier4, "Seasons", lab.cex=0.8)

Kmeans clustering, for 3 as the number of clusters.

kmeansResult = clustering(bananasPreProc, method = "kmeans", num.clusters = 3)
kmeans_plot(bananasPreProc, kmeansResult)

In each kmeans cluster, there are the following samples:

Cluster 1: August2011 July 2010 July 2011 June 2011 October 2011.

Cluster 2: May 2011 September 2011.

Cluster 3: April2011 February 2011 March 2011 November 2010 October 2010 September 2010.

Kmeans clustering, for 4 as the number of clusters.

kmeansResult4 = clustering(bananasPreProc, method = "kmeans", num.clusters = 4)
kmeans_plot(bananasPreProc, kmeansResult4)

In each kmeans cluster, there are the following samples:

Cluster 1: August2011 July 2010 July 2011 June 2011 October 2011.

Cluster 2: February 2011 March 2011.

Cluster 3: May 2011 September 2011.

Cluster 4: April2011 November 2010 October 2010 September 2010.

ANOVA

aovBananas=aov_all_vars(bananasPreProc, column.class=1)
aovBananas[aovBananas[,3]<0.1,3:4]
##             fdr                                         tukey
## 1.89 0.08090303 Sum/Aut-Spring; Winter-Spring; Winter-Sum/Aut
## 4.01 0.08090303                 Winter-Spring; Winter-Sum/Aut
## 4.05 0.08090303                 Winter-Spring; Winter-Sum/Aut

PCA

pcaResult=pca_analysis_dataset(bananasPreProc)
pca_screeplot(pcaResult)

pca_pairs_plot(bananasPreProc, pcaResult, "Seasons", pcas=c(1,2,3))
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

pca_scoresplot2D(bananasPreProc, pcaResult, "Seasons", ellipses = T)

pca_kmeans_plot2D(bananasPreProc, pcaResult, kmeans.result=kmeansResult, ellipses=T)