• Home
  • News
  • Data analysis
  • Tutorials
  • Trainings
  • Presentations
  • Training materials
  • FAQ
  • Publications

On this page

  • Introduction
  • Analysis
    • Setup
    • Data import
    • Taxonomic Composition
    • Alpha-diversity
      • Graphics
      • Anova
    • Beta diversities
      • Hierarchical clustering
      • PERMANOVA
    • Heatmap
    • Differential abundance study
  • A few conclusions

16S Metagenomics - Chaillou dataset analysis

metabarcoding
FROGS
R
Author
Affiliation

Mahendra Mariadassou

Migale bioinformatics faciliy

Published

January 25, 2021

Modified

May 12, 2025

Introduction

This vignette is a re-analysis of the data set from Chaillou et al. (2015).

Note

Note that this is only one of many analyses that could be done on the data.

Analysis

Setup

We first setup our environment by loading a few packages

library(tidyverse)  ## data manipulation
library(phyloseq)   ## analysis of microbiome census data
library(ape)        ## for tree manipulation
library(vegan)      ## for community ecology analyses
library(phyloseq.extended)
library(scales)
library(kableExtra)
## You may also need to install gridExtra with 
## install.packages("gridExtra")
## and load it with 
## library(gridExtra)
## if you want to reproduce some of the side-by-side graphs shown below

Data import

We then load the data from the Chaillou et al. (2015) dataset. We assume that they are located in the data/chaillou folder. A quick look at the folder content shows we have access to a tree (in newick format, file extension nwk) and a biom file (extension biom). A glance at the biom file content shows that the taxonomy is "k__Bacteria", "p__Tenericutes", "c__Mollicutes", "o__Mycoplasmatales", "f__Mycoplasmataceae", "g__Candidatus Lumbricincola", "s__NA". This is the so called greengenes format and the taxonomy should thus be parsed using the parse_taxonomy_greengenes function.

food <- import_biom("data/chaillou.biom", 
                    parseFunction = parse_taxonomy_greengenes)
metadata <- read.table("data/chaillou_metadata.tsv", row.names=1, header=TRUE, sep="\t", stringsAsFactors = FALSE)
sample_data(food) <- metadata

We can then add the phylogenetic tree to the food object

phy_tree(food) <- read_tree("data/tree.nwk")
food
phyloseq-class experiment-level object
otu_table()   OTU Table:         [ 508 taxa and 64 samples ]
sample_data() Sample Data:       [ 64 samples by 3 sample variables ]
tax_table()   Taxonomy Table:    [ 508 taxa by 7 taxonomic ranks ]
phy_tree()    Phylogenetic Tree: [ 508 tips and 507 internal nodes ]

The data consists of 64 samples of food: 8 replicates for each of 8 food types. We have access to the following descriptors

  • EnvType: Food of origin of the samples
  • FoodType: Either meat or seafood
  • Description: Replicate number

We can navigate through the metadata (Table 1)

Expand To view the metadata
Table 1: List of metadata
EnvType Description FoodType
BHT0.LOT01 BoeufHache LOT1 Meat
BHT0.LOT03 BoeufHache LOT3 Meat
BHT0.LOT04 BoeufHache LOT4 Meat
BHT0.LOT05 BoeufHache LOT5 Meat
BHT0.LOT06 BoeufHache LOT6 Meat
BHT0.LOT07 BoeufHache LOT7 Meat
BHT0.LOT08 BoeufHache LOT8 Meat
BHT0.LOT10 BoeufHache LOT10 Meat
VHT0.LOT01 VeauHache LOT1 Meat
VHT0.LOT02 VeauHache LOT2 Meat
VHT0.LOT03 VeauHache LOT3 Meat
VHT0.LOT04 VeauHache LOT4 Meat
VHT0.LOT06 VeauHache LOT6 Meat
VHT0.LOT07 VeauHache LOT7 Meat
VHT0.LOT08 VeauHache LOT8 Meat
VHT0.LOT10 VeauHache LOT10 Meat
DLT0.LOT01 DesLardons LOT1 Meat
DLT0.LOT03 DesLardons LOT3 Meat
DLT0.LOT04 DesLardons LOT4 Meat
DLT0.LOT05 DesLardons LOT5 Meat
DLT0.LOT06 DesLardons LOT6 Meat
DLT0.LOT07 DesLardons LOT7 Meat
DLT0.LOT08 DesLardons LOT8 Meat
DLT0.LOT10 DesLardons LOT10 Meat
MVT0.LOT01 SaucisseVolaille LOT1 Meat
MVT0.LOT03 SaucisseVolaille LOT3 Meat
MVT0.LOT05 SaucisseVolaille LOT5 Meat
MVT0.LOT06 SaucisseVolaille LOT6 Meat
MVT0.LOT07 SaucisseVolaille LOT7 Meat
MVT0.LOT08 SaucisseVolaille LOT8 Meat
MVT0.LOT09 SaucisseVolaille LOT9 Meat
MVT0.LOT10 SaucisseVolaille LOT10 Meat
CDT0.LOT02 Crevette LOT2 Seafood
CDT0.LOT04 Crevette LOT4 Seafood
CDT0.LOT05 Crevette LOT5 Seafood
CDT0.LOT06 Crevette LOT6 Seafood
CDT0.LOT07 Crevette LOT7 Seafood
CDT0.LOT08 Crevette LOT8 Seafood
CDT0.LOT09 Crevette LOT9 Seafood
CDT0.LOT10 Crevette LOT10 Seafood
SFT0.LOT01 SaumonFume LOT1 Seafood
SFT0.LOT02 SaumonFume LOT2 Seafood
SFT0.LOT03 SaumonFume LOT3 Seafood
SFT0.LOT04 SaumonFume LOT4 Seafood
SFT0.LOT05 SaumonFume LOT5 Seafood
SFT0.LOT06 SaumonFume LOT6 Seafood
SFT0.LOT07 SaumonFume LOT7 Seafood
SFT0.LOT08 SaumonFume LOT8 Seafood
FST0.LOT01 FiletSaumon LOT1 Seafood
FST0.LOT02 FiletSaumon LOT2 Seafood
FST0.LOT03 FiletSaumon LOT3 Seafood
FST0.LOT05 FiletSaumon LOT5 Seafood
FST0.LOT06 FiletSaumon LOT6 Seafood
FST0.LOT07 FiletSaumon LOT7 Seafood
FST0.LOT08 FiletSaumon LOT8 Seafood
FST0.LOT10 FiletSaumon LOT10 Seafood
FCT0.LOT01 FiletCabillaud LOT1 Seafood
FCT0.LOT02 FiletCabillaud LOT2 Seafood
FCT0.LOT03 FiletCabillaud LOT3 Seafood
FCT0.LOT05 FiletCabillaud LOT5 Seafood
FCT0.LOT06 FiletCabillaud LOT6 Seafood
FCT0.LOT07 FiletCabillaud LOT7 Seafood
FCT0.LOT08 FiletCabillaud LOT8 Seafood
FCT0.LOT10 FiletCabillaud LOT10 Seafood

EnvType is coded in French and with categories in no meaningful order. We will translate them and order them to have food type corresponding to meat first and to seafood second.

## We create a "dictionary" for translation and order the categories 
## as we want 
dictionary = c("BoeufHache"      = "Ground_Beef", 
               "VeauHache"       = "Ground_Veal", 
               "MerguezVolaille" = "Poultry_Sausage", 
               "DesLardons"      = "Bacon_Dice", 
               "SaumonFume"      = "Smoked_Salmon", 
               "FiletSaumon"     = "Salmon_Fillet", 
               "FiletCabillaud"  = "Cod_Fillet", 
               "Crevette"        = "Shrimp")
env_type <- sample_data(food)$EnvType
sample_data(food)$EnvType <- factor(dictionary[env_type], levels = dictionary)

We can also build a custom color palette to remind ourselves which samples correspond to meat and which to seafood.

my_palette <- c('#67001f','#b2182b','#d6604d','#f4a582',
                 '#92c5de','#4393c3','#2166ac','#053061')
names(my_palette) <- dictionary

Before moving on to elaborate statistics, we’ll look at the taxonomic composition of our samples

Taxonomic Composition

To use the plot_composition function, we first need to source it:

We look at the community composition at the phylum level. In order to highlight the structure of the data, we split the samples according to their food of origin. We show several figures, corresponding to different taxonomic levels.

  • Phylum level
  • Within firmicutes

We can see right away that meat products are whereas Bacteroidetes and Proteobacteria are more abundant in seafood.

plot_composition(food, "Kingdom", "Bacteria", "Phylum", fill = "Phylum") + 
  facet_grid(~EnvType, scales = "free_x", space = "free_x") + 
  theme(axis.text.x = element_blank())
Figure 1: Composition plot within Bacteria

We have access to the following taxonomic ranks:

rank_names(food)
[1] "Kingdom" "Phylum"  "Class"   "Order"   "Family"  "Genus"   "Species"

Given the importance of Firmicutes, we can zoom in within that phylum and investigate the composition at the genus level.

plot_composition(food, "Phylum", "Firmicutes", "Genus", fill = "Genus", numberOfTaxa = 5) + 
  facet_grid(~EnvType, scales = "free_x", space = "free_x") + 
  theme(axis.text.x = element_blank())
Figure 2: Composition plot within Firmicutes

We see that there is a high diversity of genera across the different types of food and that no single OTU dominates all communities.

Alpha-diversity

The samples have very similar sampling depths

sample_sums(food) %>% range()
[1] 11718 11857

there is thus no need for rarefaction.

Graphics

We compare the different types of food in terms of diversity.

plot_richness(food, x = "EnvType", color = "EnvType",
              measures = c("Observed", "Shannon", "InvSimpson")) + 
  geom_boxplot(aes(group = EnvType)) +    ## add one boxplot per type of food
  scale_color_manual(values = my_palette) ## custom color palette
Figure 3: Richness plots

Different foods have very different diversities with dice of bacon having the highest number (\(\sim\) 250) of OTUs. However, most foods have low effective diversities.

Anova

We can quantify the previous claims by performing an ANOVA of the diversity against the covariates of interest. For the sake of brevity, we focus here on both the observed and effective number of species (as measured by the InvSimpson measure). We first build a data.frame with both covariates and diversity indices.

div_data <- cbind(estimate_richness(food),  ## diversity indices
                  sample_data(food)         ## covariates
                  )

Foods differ significantly in terms of number of observed OTUs…

model <- aov(Observed ~ EnvType, data = div_data)
anova(model)
Analysis of Variance Table

Response: Observed
          Df Sum Sq Mean Sq F value    Pr(>F)    
EnvType    6  78171 13028.6  12.353 2.029e-08 ***
Residuals 49  51680  1054.7                      
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

… but no in terms of effective number of species

model <- aov(InvSimpson ~ EnvType, data = div_data)
anova(model)
Analysis of Variance Table

Response: InvSimpson
          Df  Sum Sq Mean Sq F value Pr(>F)
EnvType    6  444.63  74.105  1.4865 0.2025
Residuals 49 2442.75  49.852               

Beta diversities

We have access to a phylogenetic tree so we can compute all 4 distances seen during the tutorial.

dist.jac <- distance(food, method = "cc")
dist.bc <- distance(food, method = "bray")
dist.uf <- distance(food, method = "unifrac")
dist.wuf <- distance(food, method = "wunifrac")
p.jac <- plot_ordination(food, 
                         ordinate(food, method = "MDS", distance = dist.jac), 
                         color = "EnvType") + 
  ggtitle("Jaccard") + scale_color_manual(values = my_palette)
p.bc <- plot_ordination(food, 
                         ordinate(food, method = "MDS", distance = dist.bc), 
                         color = "EnvType") + 
  ggtitle("Bary-Curtis") + scale_color_manual(values = my_palette)
p.uf <- plot_ordination(food, 
                         ordinate(food, method = "MDS", distance = dist.uf), 
                         color = "EnvType") + 
  ggtitle("UniFrac") + scale_color_manual(values = my_palette)
p.wuf <- plot_ordination(food, 
                         ordinate(food, method = "MDS", distance = dist.wuf), 
                         color = "EnvType") + 
  ggtitle("wUniFrac") + scale_color_manual(values = my_palette)


gridExtra::grid.arrange(p.jac, p.bc, p.uf, p.wuf,
                        ncol = 2)
Figure 4: Ordination plots

In this example, Jaccard and UniFrac distances provide a clear separation of meats and seafoods, unlike Bray-Curtis and wUniFrac. This means that food ecosystems share their abundant taxa but not the rare ones.

UniFrac also gives a much better separation of poultry sausages and ground beef / veal than Jaccard. This means that although those foods have taxa in common, their specific taxa are located in different parts of the phylogenetic tree. Since UniFrac appears to the most relevant distance here, we’ll restrict downstream analyses to it.

One can also note that dices of bacon are located between meats and seafoods. We’ll come back latter to that point latter.

Hierarchical clustering

The hierarchical clustering of uniFrac distances using the Ward linkage function (to produce spherical clusters) show a perfect separation according.

# 
plot_clust(food, dist = "unifrac", method = "ward.D2", color = "EnvType", 
           palette = my_palette, 
           title = "Clustering of samples (UniFrac + Ward)\nsamples colored by EnvType")
Figure 5: Hierarchical clusteing of uniFrac distances

PERMANOVA

We use the Unifrac distance to assess the variability in terms of microbial repertoires between foods.

#metadata <- sample_data(food) %>% as("data.frame")
model <- adonis(dist.uf ~ EnvType, data = metadata, permutations = 999)
Expand To view the content of model
model
$aov.tab
Permutation: free
Number of permutations: 999

Terms added sequentially (first to last)

          Df SumsOfSqs MeanSqs F.Model      R2 Pr(>F)    
EnvType    7    7.6565 1.09379  13.699 0.63132  0.001 ***
Residuals 56    4.4713 0.07984         0.36868           
Total     63   12.1278                 1.00000           
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

$call
adonis(formula = dist.uf ~ EnvType, data = metadata, permutations = 999)

$coefficients
NULL

$coef.sites
                    [,1]         [,2]        [,3]         [,4]        [,5]
(Intercept)  0.584973143  0.566918123  0.57081192  0.560703438  0.55200725
EnvType1    -0.268506826 -0.255449673 -0.26914075 -0.272066003 -0.28679098
EnvType2     0.133056764  0.108218967  0.12046023  0.108926418  0.14643351
EnvType3     0.032483504  0.038816508  0.02435998  0.040197977  0.01559019
EnvType4     0.031636295  0.020829332  0.04038173  0.043635985  0.03947056
EnvType5     0.010636900 -0.002728181  0.02398602  0.027372858  0.01664144
EnvType6    -0.001676391  0.041422542  0.01855563  0.036782376  0.01146375
EnvType7     0.029208959  0.021785812  0.02234849  0.002426228  0.01760023
                    [,6]         [,7]         [,8]          [,9]        [,10]
(Intercept)  0.555553648  0.550027828  0.558087259  0.5856492652  0.601418629
EnvType1    -0.255085015 -0.285683515 -0.260304580 -0.0554430500 -0.005479984
EnvType2     0.132217124  0.134629861  0.126724922  0.1211731957  0.077420220
EnvType3     0.037922388  0.040667071  0.030828139 -0.0062223113  0.035904895
EnvType4     0.036114166  0.054639465  0.026680531  0.0908026782  0.077587627
EnvType5     0.012865597  0.036263051  0.032426945  0.0726753141  0.061091984
EnvType6     0.018846513  0.007135504  0.034712485  0.0009261572  0.004675545
EnvType7     0.001784728  0.013833912  0.003980661  0.0356955107  0.034026901
                  [,11]         [,12]        [,13]       [,14]        [,15]
(Intercept)  0.58388941  5.979257e-01  0.577791237 0.607771244  0.600846984
EnvType1    -0.05194902 -3.214565e-02 -0.030437546 0.008258476 -0.004278937
EnvType2     0.10789113  9.595592e-02  0.074526541 0.074860585  0.060744645
EnvType3     0.02293722  3.701647e-03  0.019943075 0.009610358  0.019530432
EnvType4     0.07501465  1.115962e-01  0.093954261 0.093662065  0.090986847
EnvType5     0.07124784  9.895125e-02  0.060824842 0.078797992  0.076600189
EnvType6     0.02026560 -2.887699e-03  0.027798313 0.002600624  0.036723540
EnvType7     0.03496658  3.652525e-05  0.004489397 0.039733737  0.018438785
                   [,16]        [,17]         [,18]        [,19]       [,20]
(Intercept)  0.644863912  0.648121525  0.6163540122  0.618633287  0.61664615
EnvType1     0.020831590  0.010628058  0.0001306355 -0.001748132 -0.01585265
EnvType2     0.057424432  0.016903879  0.0990148556  0.098061090  0.07472929
EnvType3     0.000107143 -0.155038440 -0.2386165004 -0.241468794 -0.19752330
EnvType4     0.092168075  0.063219411  0.0866117471  0.112085916  0.08023886
EnvType5     0.079639138 -0.003670981  0.0998960204  0.086438655  0.07456284
EnvType6    -0.001443782  0.031853032 -0.0920449498 -0.120602699 -0.02061925
EnvType7     0.048777685 -0.008330676  0.0543610667  0.051424317  0.01541036
                  [,21]       [,22]       [,23]        [,24]       [,25]
(Intercept)  0.59725890  0.58988261  0.57606808  0.600984707  0.61534708
EnvType1    -0.02005858 -0.02278450 -0.04459223 -0.009723513  0.02270611
EnvType2     0.10667998  0.11418544  0.12545575  0.141179985  0.09053690
EnvType3    -0.21730126 -0.23595602 -0.18303290 -0.227025157 -0.09891031
EnvType4     0.10464534  0.12258966  0.10075059  0.127255059  0.12375134
EnvType5     0.07541576  0.09920690  0.07650827  0.139556977  0.09070500
EnvType6    -0.10508833 -0.15649576 -0.10230489 -0.254945044 -0.28556316
EnvType7     0.06260937  0.05853246  0.02115980  0.101803565  0.07482037
                  [,26]       [,27]       [,28]       [,29]       [,30]
(Intercept)  0.62681271  0.58627146  0.59928574  0.59973507  0.60046568
EnvType1     0.02753861 -0.03702445 -0.05430222 -0.02638775 -0.04105274
EnvType2     0.10958499  0.11965286  0.16016460  0.13626509  0.14914737
EnvType3    -0.11298194 -0.07651142 -0.07954040 -0.09783680 -0.10432753
EnvType4     0.11308455  0.11703777  0.07722480  0.12396365  0.10639449
EnvType5     0.09308801  0.08008255  0.08078653  0.11425351  0.10535641
EnvType6    -0.30628067 -0.28139507 -0.28630607 -0.32305916 -0.31190152
EnvType7     0.08954163  0.04788185  0.09220896  0.08239891  0.09857720
                  [,31]       [,32]       [,33]       [,34]       [,35]
(Intercept)  0.61467937  0.58766182  0.62786821  0.62892351  0.60221079
EnvType1    -0.02725678 -0.02815468  0.04249743  0.05385841  0.04459222
EnvType2     0.12850746  0.12825839 -0.22980603 -0.26014266 -0.22386782
EnvType3    -0.11584686 -0.10060228  0.06836043  0.07489015  0.06919007
EnvType4     0.11325435  0.11690709  0.04758818  0.05998141  0.05200184
EnvType5     0.10589210  0.08446677 -0.03754459 -0.01151498 -0.01549840
EnvType6    -0.32799907 -0.30204896  0.10045502  0.10548897  0.09335748
EnvType7     0.09481348  0.06788037 -0.04407645 -0.07536865 -0.07296175
                  [,36]         [,37]       [,38]        [,39]       [,40]
(Intercept)  0.61619692  0.6203996392  0.67173213  0.683997609  0.62152479
EnvType1     0.05702196  0.0539287256  0.07321742  0.074740465  0.03704016
EnvType2    -0.26493664 -0.2461357977 -0.26400907 -0.267164193 -0.20447347
EnvType3     0.07639144  0.0820424009  0.07650331  0.066467186  0.05346094
EnvType4     0.05036647  0.0486511407  0.02059982  0.049646413  0.05162338
EnvType5    -0.01922141 -0.0009415132 -0.02874003  0.003070016  0.01290174
EnvType6     0.11505642  0.1073660921  0.10446070  0.087394314  0.06594399
EnvType7    -0.08705710 -0.0814871204 -0.04297803 -0.056199312 -0.04333057
                  [,41]        [,42]        [,43]        [,44]       [,45]
(Intercept)  0.59534684  0.593219645  0.587504005  0.590971994  0.59408321
EnvType1    -0.02735945  0.007431553  0.004806644  0.023865051  0.01932368
EnvType2     0.01075383 -0.038107652 -0.039889789 -0.042861140 -0.03857001
EnvType3     0.03853721  0.072808669  0.077737619  0.073245012  0.05803631
EnvType4     0.05306307  0.046561447  0.055755007  0.062571520  0.04771369
EnvType5     0.01233124  0.009049919 -0.029207858 -0.003151206 -0.02279483
EnvType6     0.07536718  0.108280936  0.114586651  0.105780653  0.10211073
EnvType7    -0.20036802 -0.209485397 -0.215261268 -0.227394355 -0.23689337
                   [,46]       [,47]        [,48]        [,49]        [,50]
(Intercept)  0.585427805  0.56786742  0.584151152  0.655448576  0.607611545
EnvType1    -0.039661216 -0.04719010 -0.027736600  0.004967389 -0.013861405
EnvType2    -0.002641781  0.02850260 -0.006363516 -0.029114420  0.026782300
EnvType3     0.065415379  0.07085272  0.065714555  0.091689241  0.075157894
EnvType4     0.070398842  0.04542338  0.040347365 -0.018280550  0.008473462
EnvType5    -0.005951437 -0.02212856  0.003176406 -0.203205793 -0.280217507
EnvType6     0.089515990  0.07389130  0.110276192  0.100457823  0.087460448
EnvType7    -0.238147064 -0.19618987 -0.243627316 -0.015722387  0.015781885
                   [,51]       [,52]       [,53]       [,54]       [,55]
(Intercept)  0.596170405  0.58951497  0.57883754  0.58150495  0.58451176
EnvType1     0.014115015 -0.01258977 -0.05078971 -0.03450578 -0.01855420
EnvType2     0.001752089  0.03185975  0.07419298  0.04238617  0.02847686
EnvType3     0.094920514  0.09480276  0.09112722  0.09922756  0.09740311
EnvType4    -0.007785896  0.01077053 -0.00274448  0.01470201  0.01891776
EnvType5    -0.278119971 -0.29155998 -0.26785182 -0.24180771 -0.26856071
EnvType6     0.110236614  0.10812389  0.09906488  0.09092271  0.10048965
EnvType7    -0.012481094 -0.03236305 -0.01136593 -0.03841036 -0.02962581
                  [,56]        [,57]       [,58]        [,59]       [,60]
(Intercept)  0.58475061  0.637784384  0.61416208  0.593959112  0.59947230
EnvType1    -0.01058465 -0.003038535 -0.02786407 -0.078989315 -0.05800056
EnvType2     0.02067837  0.032857706  0.04150148  0.099366494  0.09348729
EnvType3     0.08918507  0.074564251  0.08282653  0.076942113  0.06162415
EnvType4    -0.00676334 -0.264786942 -0.23873148 -0.213791032 -0.22195142
EnvType5    -0.28440981 -0.018332301 -0.01116237 -0.036329748 -0.04896256
EnvType6     0.10978343  0.096717166  0.09869485  0.075666784  0.06995947
EnvType7    -0.01426787  0.025734945  0.01501088  0.002233316  0.01798372
                   [,61]       [,62]        [,63]        [,64]
(Intercept)  0.650244113  0.62220464  0.640752332  0.629736313
EnvType1     0.019565730 -0.03186314 -0.002452447 -0.013202264
EnvType2     0.027058811  0.06843156  0.046163591  0.056130055
EnvType3     0.075718235  0.08484201  0.109901590  0.106611729
EnvType4    -0.290321940 -0.30284132 -0.329922475 -0.290427330
EnvType5     0.009429603 -0.01570845 -0.034276290 -0.037333316
EnvType6     0.090295823  0.09101937  0.112198196  0.099010052
EnvType7     0.019013542  0.03434653  0.013363494  0.004404701

$f.perms
             [,1]
   [1,] 1.2187400
   [2,] 0.8717501
   [3,] 1.1957664
   [4,] 0.8540385
   [5,] 0.9938471
   [6,] 0.8696874
   [7,] 0.9898565
   [8,] 0.7744394
   [9,] 1.0567953
  [10,] 0.8367551
  [11,] 0.8326129
  [12,] 0.9715976
  [13,] 0.9101104
  [14,] 0.8765531
  [15,] 1.1699494
  [16,] 1.1193644
  [17,] 0.8121940
  [18,] 0.8864130
  [19,] 0.8908148
  [20,] 1.1588708
  [21,] 0.9297444
  [22,] 0.8630399
  [23,] 1.1815615
  [24,] 1.0032788
  [25,] 1.3424276
  [26,] 0.9964617
  [27,] 0.9797374
  [28,] 1.2291559
  [29,] 1.0593972
  [30,] 0.9557362
  [31,] 1.2387979
  [32,] 0.9482538
  [33,] 1.0409373
  [34,] 1.0670472
  [35,] 0.7425044
  [36,] 0.9358577
  [37,] 1.1260365
  [38,] 0.7622350
  [39,] 1.1713063
  [40,] 0.9084297
  [41,] 0.9917987
  [42,] 1.1241311
  [43,] 0.9334377
  [44,] 1.2785062
  [45,] 0.9839569
  [46,] 0.9483694
  [47,] 1.0153181
  [48,] 0.7354880
  [49,] 1.3062610
  [50,] 1.1045897
  [51,] 0.8442680
  [52,] 0.9901081
  [53,] 0.9489304
  [54,] 1.0326688
  [55,] 0.8188121
  [56,] 0.9255178
  [57,] 1.2481358
  [58,] 1.0540593
  [59,] 0.9847755
  [60,] 0.8906342
  [61,] 0.8433629
  [62,] 0.8740732
  [63,] 0.9686633
  [64,] 0.9137846
  [65,] 1.0488813
  [66,] 0.9419964
  [67,] 0.9928539
  [68,] 0.9253107
  [69,] 1.2009918
  [70,] 0.7766876
  [71,] 0.8511546
  [72,] 1.1901997
  [73,] 1.3086856
  [74,] 0.9226639
  [75,] 1.0544567
  [76,] 0.9227365
  [77,] 0.9535172
  [78,] 1.0013561
  [79,] 0.9831346
  [80,] 0.8816191
  [81,] 0.7442391
  [82,] 0.9765624
  [83,] 1.1106506
  [84,] 1.1350899
  [85,] 0.8533580
  [86,] 0.8129642
  [87,] 1.1284741
  [88,] 0.9202076
  [89,] 0.7202223
  [90,] 0.8264665
  [91,] 1.1178335
  [92,] 1.0389878
  [93,] 0.7635485
  [94,] 0.9144060
  [95,] 1.0069114
  [96,] 1.0111198
  [97,] 0.9127830
  [98,] 0.9970994
  [99,] 0.8195588
 [100,] 1.0265939
 [101,] 1.0040031
 [102,] 1.2038801
 [103,] 0.8788970
 [104,] 0.9704847
 [105,] 0.8429574
 [106,] 0.8575905
 [107,] 1.1271025
 [108,] 0.7438596
 [109,] 0.7291023
 [110,] 0.6970404
 [111,] 0.8183507
 [112,] 0.8333918
 [113,] 0.9256746
 [114,] 0.8183483
 [115,] 0.8063253
 [116,] 0.8551885
 [117,] 0.9069526
 [118,] 1.1772482
 [119,] 0.8511682
 [120,] 1.3545392
 [121,] 0.8551606
 [122,] 1.2733245
 [123,] 0.8827141
 [124,] 1.0671899
 [125,] 0.7819710
 [126,] 0.9102918
 [127,] 0.8568532
 [128,] 1.0250909
 [129,] 1.3385091
 [130,] 0.9374565
 [131,] 0.9148639
 [132,] 0.8751920
 [133,] 0.9803909
 [134,] 1.1036886
 [135,] 0.8432372
 [136,] 1.2754103
 [137,] 1.5562806
 [138,] 1.0186049
 [139,] 1.0867048
 [140,] 0.9083542
 [141,] 1.1895455
 [142,] 0.8437790
 [143,] 1.2418624
 [144,] 1.0259232
 [145,] 0.9229549
 [146,] 1.1763484
 [147,] 0.8535575
 [148,] 1.1278395
 [149,] 0.9238242
 [150,] 0.8043853
 [151,] 1.0523373
 [152,] 1.3727816
 [153,] 0.8961949
 [154,] 0.9575093
 [155,] 0.7993665
 [156,] 1.1387208
 [157,] 0.7233130
 [158,] 1.1800658
 [159,] 0.9455657
 [160,] 0.9792304
 [161,] 0.7931937
 [162,] 1.1833871
 [163,] 1.1984559
 [164,] 1.0060297
 [165,] 0.9951907
 [166,] 1.2010304
 [167,] 1.1564571
 [168,] 1.2970275
 [169,] 1.1318578
 [170,] 1.1089454
 [171,] 0.7407184
 [172,] 1.3682542
 [173,] 1.1915750
 [174,] 0.9335756
 [175,] 0.9133239
 [176,] 1.2954026
 [177,] 1.2165217
 [178,] 1.0762756
 [179,] 0.9561469
 [180,] 0.8554213
 [181,] 1.2793659
 [182,] 0.8731908
 [183,] 1.2794995
 [184,] 0.8071662
 [185,] 1.3217071
 [186,] 0.7990258
 [187,] 0.9837484
 [188,] 0.9474059
 [189,] 0.8727662
 [190,] 0.8877579
 [191,] 1.1616193
 [192,] 1.2415687
 [193,] 0.8357448
 [194,] 0.8763264
 [195,] 1.2626229
 [196,] 1.1946128
 [197,] 0.7727696
 [198,] 1.1349134
 [199,] 1.0419635
 [200,] 0.9316561
 [201,] 1.0334153
 [202,] 0.9745861
 [203,] 0.8865127
 [204,] 0.9467988
 [205,] 0.9222087
 [206,] 0.9565002
 [207,] 1.0761285
 [208,] 1.1318167
 [209,] 0.9811259
 [210,] 0.9985091
 [211,] 0.9834008
 [212,] 1.3337140
 [213,] 0.9968670
 [214,] 1.0877889
 [215,] 1.1106569
 [216,] 0.9234766
 [217,] 1.1759847
 [218,] 1.0085342
 [219,] 1.0621418
 [220,] 0.8655222
 [221,] 0.9785417
 [222,] 1.0604784
 [223,] 0.9935689
 [224,] 1.1356013
 [225,] 0.9757367
 [226,] 0.9027035
 [227,] 1.1536021
 [228,] 1.0253468
 [229,] 0.9131607
 [230,] 0.9967578
 [231,] 1.1497972
 [232,] 0.9521263
 [233,] 0.8766232
 [234,] 0.8631125
 [235,] 0.9100726
 [236,] 0.9600220
 [237,] 0.9775668
 [238,] 1.0862498
 [239,] 1.1084361
 [240,] 1.3007400
 [241,] 0.9624798
 [242,] 0.9287696
 [243,] 1.2306831
 [244,] 0.8972442
 [245,] 1.2423388
 [246,] 1.0191128
 [247,] 0.9466818
 [248,] 1.0537780
 [249,] 0.9585335
 [250,] 1.0791736
 [251,] 0.8504857
 [252,] 1.3333403
 [253,] 0.9240071
 [254,] 1.3401652
 [255,] 0.7605522
 [256,] 1.0997448
 [257,] 1.0008067
 [258,] 1.0699611
 [259,] 0.9764996
 [260,] 1.1227138
 [261,] 1.1742838
 [262,] 0.8427570
 [263,] 1.0259216
 [264,] 1.0555731
 [265,] 0.7574645
 [266,] 0.8739933
 [267,] 0.9552170
 [268,] 0.8611512
 [269,] 0.8016536
 [270,] 0.7867614
 [271,] 1.0229274
 [272,] 0.8911131
 [273,] 1.1878584
 [274,] 0.8339469
 [275,] 0.8742549
 [276,] 0.9186348
 [277,] 1.1480746
 [278,] 0.9850901
 [279,] 0.9226537
 [280,] 1.0278874
 [281,] 1.0384021
 [282,] 1.2220132
 [283,] 0.7605428
 [284,] 1.0838954
 [285,] 0.9931253
 [286,] 0.9792784
 [287,] 1.1815864
 [288,] 0.8550347
 [289,] 1.0227836
 [290,] 0.9424473
 [291,] 1.0466933
 [292,] 0.8984364
 [293,] 1.0282950
 [294,] 1.2983958
 [295,] 1.1523298
 [296,] 0.7996434
 [297,] 0.9401334
 [298,] 1.0564489
 [299,] 0.8441991
 [300,] 1.2612421
 [301,] 0.8046336
 [302,] 1.1308310
 [303,] 0.9654680
 [304,] 1.2408793
 [305,] 0.9828940
 [306,] 0.9245250
 [307,] 1.3070942
 [308,] 0.9023009
 [309,] 1.0607841
 [310,] 1.0708712
 [311,] 0.8997717
 [312,] 1.1178867
 [313,] 1.3980658
 [314,] 1.0165835
 [315,] 1.4121467
 [316,] 0.8698127
 [317,] 0.9436661
 [318,] 1.0942480
 [319,] 0.9360420
 [320,] 1.2358239
 [321,] 1.0434617
 [322,] 1.0299820
 [323,] 1.1044436
 [324,] 0.9959002
 [325,] 0.9759810
 [326,] 1.1014213
 [327,] 0.9907108
 [328,] 1.1690629
 [329,] 0.8723794
 [330,] 0.8865733
 [331,] 1.0775251
 [332,] 1.0543437
 [333,] 0.7794148
 [334,] 0.7932601
 [335,] 1.0848926
 [336,] 0.8082768
 [337,] 1.2814284
 [338,] 0.8175602
 [339,] 0.9711905
 [340,] 1.2607500
 [341,] 1.0760337
 [342,] 0.6840387
 [343,] 1.2318890
 [344,] 1.0701138
 [345,] 1.1595856
 [346,] 0.9663376
 [347,] 0.9726657
 [348,] 0.8702431
 [349,] 1.2456797
 [350,] 1.0981062
 [351,] 0.8324815
 [352,] 0.9055341
 [353,] 1.6683228
 [354,] 1.0297433
 [355,] 0.8982633
 [356,] 0.8771844
 [357,] 1.2230720
 [358,] 1.1574444
 [359,] 1.2822799
 [360,] 0.9035572
 [361,] 0.7892288
 [362,] 1.0606794
 [363,] 0.9546267
 [364,] 1.2705879
 [365,] 0.7974393
 [366,] 0.9461277
 [367,] 0.8651630
 [368,] 1.0891610
 [369,] 0.6971450
 [370,] 0.9885377
 [371,] 0.8213412
 [372,] 1.0635264
 [373,] 1.2377184
 [374,] 0.8318525
 [375,] 0.8851297
 [376,] 1.1136438
 [377,] 1.3169676
 [378,] 0.8879623
 [379,] 1.0645587
 [380,] 1.0362516
 [381,] 0.7985621
 [382,] 1.0320712
 [383,] 0.6939544
 [384,] 1.1184192
 [385,] 1.1317352
 [386,] 1.0989988
 [387,] 1.2094122
 [388,] 1.2670948
 [389,] 0.9169214
 [390,] 1.0338722
 [391,] 1.0968255
 [392,] 0.7662987
 [393,] 1.0103470
 [394,] 1.0136260
 [395,] 0.9988869
 [396,] 0.8695367
 [397,] 0.8665132
 [398,] 1.0998299
 [399,] 0.9285154
 [400,] 1.0888705
 [401,] 0.9112423
 [402,] 0.8091589
 [403,] 0.8506025
 [404,] 0.9395306
 [405,] 1.0175869
 [406,] 0.8345725
 [407,] 0.9040043
 [408,] 0.9720445
 [409,] 0.9859077
 [410,] 1.1196532
 [411,] 0.8992067
 [412,] 1.0546687
 [413,] 0.7134824
 [414,] 1.2820319
 [415,] 1.0455622
 [416,] 0.6558659
 [417,] 0.9820858
 [418,] 1.0069938
 [419,] 1.1743268
 [420,] 1.1878659
 [421,] 0.8520879
 [422,] 0.8763198
 [423,] 0.9337144
 [424,] 0.9851439
 [425,] 1.1284755
 [426,] 1.0068364
 [427,] 0.9132173
 [428,] 1.0899973
 [429,] 0.9463096
 [430,] 0.9404992
 [431,] 0.9866980
 [432,] 1.0358784
 [433,] 0.8960363
 [434,] 1.1237937
 [435,] 0.9959844
 [436,] 0.8803079
 [437,] 1.0027016
 [438,] 1.1988457
 [439,] 1.1850866
 [440,] 1.2419922
 [441,] 0.9585850
 [442,] 1.2097756
 [443,] 1.0374910
 [444,] 1.1048570
 [445,] 0.8989813
 [446,] 0.9488044
 [447,] 1.1568893
 [448,] 1.2681740
 [449,] 0.9536317
 [450,] 0.8364556
 [451,] 1.1314736
 [452,] 1.1403858
 [453,] 0.9462859
 [454,] 0.9958909
 [455,] 1.0787296
 [456,] 1.1821056
 [457,] 1.1884255
 [458,] 0.9198380
 [459,] 0.9949290
 [460,] 1.1953050
 [461,] 1.0399645
 [462,] 0.9702538
 [463,] 0.9803872
 [464,] 1.0884080
 [465,] 1.0783378
 [466,] 0.9832251
 [467,] 0.8582934
 [468,] 0.9600235
 [469,] 0.8641588
 [470,] 1.0718912
 [471,] 1.2265645
 [472,] 1.0541371
 [473,] 1.1221914
 [474,] 1.0217188
 [475,] 1.0400501
 [476,] 0.6930491
 [477,] 0.9862462
 [478,] 1.0914990
 [479,] 1.0872013
 [480,] 0.8596121
 [481,] 0.9946375
 [482,] 1.0646841
 [483,] 1.0218506
 [484,] 0.9780434
 [485,] 0.9191240
 [486,] 0.9342737
 [487,] 1.1352461
 [488,] 0.7691634
 [489,] 0.9157490
 [490,] 1.0889350
 [491,] 0.8953735
 [492,] 1.0359381
 [493,] 1.0100785
 [494,] 1.1276891
 [495,] 0.9292053
 [496,] 0.9710550
 [497,] 0.8658182
 [498,] 0.9231069
 [499,] 1.4146284
 [500,] 1.0594271
 [501,] 1.2579636
 [502,] 1.0067403
 [503,] 0.8453064
 [504,] 1.0328561
 [505,] 1.0623598
 [506,] 0.8712081
 [507,] 0.9418922
 [508,] 1.0810402
 [509,] 0.9304885
 [510,] 0.9540876
 [511,] 1.1632482
 [512,] 1.0596282
 [513,] 0.7243219
 [514,] 0.9348354
 [515,] 0.9926563
 [516,] 0.8842309
 [517,] 0.8554066
 [518,] 1.0484441
 [519,] 1.1630065
 [520,] 0.8962162
 [521,] 0.9735873
 [522,] 0.8843938
 [523,] 0.8772644
 [524,] 1.1287406
 [525,] 0.9517498
 [526,] 0.8873587
 [527,] 1.2581597
 [528,] 0.8097168
 [529,] 0.8682962
 [530,] 1.0081854
 [531,] 1.1872935
 [532,] 0.8691042
 [533,] 1.1258985
 [534,] 0.7409661
 [535,] 0.9698759
 [536,] 1.2967962
 [537,] 0.7514344
 [538,] 0.8385094
 [539,] 0.8974098
 [540,] 1.4091342
 [541,] 1.1065021
 [542,] 1.0617271
 [543,] 1.0294368
 [544,] 1.1937451
 [545,] 0.9218187
 [546,] 0.8627093
 [547,] 1.1802335
 [548,] 0.8462491
 [549,] 1.1016575
 [550,] 1.1271147
 [551,] 1.3607816
 [552,] 0.8988407
 [553,] 1.0211807
 [554,] 0.9215605
 [555,] 1.1394304
 [556,] 1.0058712
 [557,] 0.7320086
 [558,] 0.8795909
 [559,] 0.8210829
 [560,] 1.0714431
 [561,] 1.0870170
 [562,] 1.0150529
 [563,] 1.0868131
 [564,] 0.9530021
 [565,] 0.8234286
 [566,] 0.9344333
 [567,] 1.0018867
 [568,] 0.9201919
 [569,] 1.2954087
 [570,] 1.0121366
 [571,] 0.9334202
 [572,] 1.0640482
 [573,] 0.7970028
 [574,] 0.8882171
 [575,] 0.9562580
 [576,] 0.7496411
 [577,] 1.0224425
 [578,] 0.8652951
 [579,] 0.9389304
 [580,] 1.3952924
 [581,] 0.8102962
 [582,] 1.0967897
 [583,] 1.3398274
 [584,] 1.1091550
 [585,] 0.9617767
 [586,] 1.0500454
 [587,] 0.8014320
 [588,] 1.2639395
 [589,] 1.3110691
 [590,] 1.0236618
 [591,] 1.1240443
 [592,] 0.8858325
 [593,] 0.9618897
 [594,] 0.9143724
 [595,] 1.0102977
 [596,] 1.2710668
 [597,] 1.2273403
 [598,] 1.3467875
 [599,] 0.9347017
 [600,] 1.0204021
 [601,] 1.4417680
 [602,] 1.1773475
 [603,] 0.8926599
 [604,] 1.0698667
 [605,] 0.9249934
 [606,] 0.8131219
 [607,] 0.8955627
 [608,] 0.9542943
 [609,] 0.8894617
 [610,] 0.9080964
 [611,] 1.1770649
 [612,] 0.8282687
 [613,] 0.8541194
 [614,] 0.8994572
 [615,] 0.9119142
 [616,] 0.8499128
 [617,] 0.8798764
 [618,] 1.0800902
 [619,] 0.9652887
 [620,] 0.8261628
 [621,] 1.1173822
 [622,] 1.0473245
 [623,] 0.9390126
 [624,] 0.9491230
 [625,] 0.9291252
 [626,] 0.9475623
 [627,] 1.0263263
 [628,] 0.8984114
 [629,] 0.9819128
 [630,] 0.9679740
 [631,] 1.1115672
 [632,] 1.4423428
 [633,] 1.2301288
 [634,] 0.9562159
 [635,] 0.9828639
 [636,] 0.7784464
 [637,] 1.0367405
 [638,] 1.1200104
 [639,] 0.7670030
 [640,] 1.2664820
 [641,] 1.4968409
 [642,] 1.4710499
 [643,] 1.1349607
 [644,] 0.8643663
 [645,] 0.8308955
 [646,] 1.2960544
 [647,] 1.0326306
 [648,] 0.7895050
 [649,] 1.1217233
 [650,] 1.1406153
 [651,] 1.2737144
 [652,] 1.0008506
 [653,] 1.3668708
 [654,] 1.0691717
 [655,] 0.8587746
 [656,] 0.8273434
 [657,] 0.9349310
 [658,] 0.8473225
 [659,] 1.0684387
 [660,] 1.1598472
 [661,] 0.9022958
 [662,] 0.8682220
 [663,] 0.8160903
 [664,] 1.1220548
 [665,] 1.1464520
 [666,] 1.1710687
 [667,] 0.9209056
 [668,] 1.0324954
 [669,] 0.7808827
 [670,] 1.0330201
 [671,] 1.0361248
 [672,] 1.0055550
 [673,] 1.3068646
 [674,] 0.9306354
 [675,] 1.2569144
 [676,] 0.9311138
 [677,] 0.8581297
 [678,] 1.0456060
 [679,] 1.1496291
 [680,] 0.8720517
 [681,] 0.8430936
 [682,] 0.8318846
 [683,] 1.1331312
 [684,] 0.8277102
 [685,] 0.9261886
 [686,] 1.0869327
 [687,] 1.1455003
 [688,] 0.9853604
 [689,] 0.9758131
 [690,] 0.9688930
 [691,] 1.1952702
 [692,] 0.9294930
 [693,] 0.9319931
 [694,] 1.0618171
 [695,] 0.8261832
 [696,] 0.9585351
 [697,] 1.0950647
 [698,] 0.7655403
 [699,] 0.7729098
 [700,] 1.0679353
 [701,] 1.1525552
 [702,] 0.8911388
 [703,] 0.9168993
 [704,] 0.8652679
 [705,] 1.0560082
 [706,] 1.0300797
 [707,] 0.8095444
 [708,] 0.8517054
 [709,] 0.9853141
 [710,] 0.8917202
 [711,] 1.0689229
 [712,] 0.9600389
 [713,] 1.2213748
 [714,] 1.2745726
 [715,] 1.0123309
 [716,] 0.9938940
 [717,] 1.0846874
 [718,] 1.1345817
 [719,] 1.2138845
 [720,] 0.9226637
 [721,] 0.9758344
 [722,] 1.0928406
 [723,] 1.1931337
 [724,] 0.7790735
 [725,] 1.0639405
 [726,] 0.9292631
 [727,] 1.0161111
 [728,] 1.0232647
 [729,] 0.9217176
 [730,] 0.9286057
 [731,] 0.7621703
 [732,] 1.0032962
 [733,] 1.0357960
 [734,] 0.9832594
 [735,] 1.1861627
 [736,] 1.0543878
 [737,] 1.2741218
 [738,] 1.2037134
 [739,] 0.9688557
 [740,] 1.0085286
 [741,] 0.9437338
 [742,] 1.0236195
 [743,] 1.4264805
 [744,] 0.7658589
 [745,] 0.8241731
 [746,] 1.0741160
 [747,] 1.0696614
 [748,] 1.3619939
 [749,] 1.3017853
 [750,] 1.0460604
 [751,] 1.0591540
 [752,] 0.8864738
 [753,] 0.9849474
 [754,] 1.0893450
 [755,] 1.0807466
 [756,] 0.9174956
 [757,] 0.9389626
 [758,] 0.7011063
 [759,] 0.9140799
 [760,] 0.9019863
 [761,] 0.8783623
 [762,] 1.0028813
 [763,] 1.1979525
 [764,] 0.8387490
 [765,] 1.1206614
 [766,] 1.1072093
 [767,] 0.8956442
 [768,] 0.8796018
 [769,] 0.8260903
 [770,] 0.9864600
 [771,] 0.9342830
 [772,] 1.0591907
 [773,] 0.8036220
 [774,] 0.8973818
 [775,] 1.3499720
 [776,] 1.0685042
 [777,] 1.0716945
 [778,] 0.9208879
 [779,] 0.8366431
 [780,] 1.0043241
 [781,] 1.0449283
 [782,] 0.8869914
 [783,] 0.9692859
 [784,] 0.8919051
 [785,] 0.6681091
 [786,] 0.8441988
 [787,] 1.0104016
 [788,] 1.0743756
 [789,] 1.0040140
 [790,] 1.2024177
 [791,] 0.8888587
 [792,] 1.3538107
 [793,] 0.8430720
 [794,] 0.8483459
 [795,] 0.8382668
 [796,] 1.1010201
 [797,] 1.0696558
 [798,] 0.8083844
 [799,] 0.9907275
 [800,] 1.1344413
 [801,] 1.1439599
 [802,] 1.0089793
 [803,] 0.8334240
 [804,] 1.1085633
 [805,] 0.8039807
 [806,] 1.0499855
 [807,] 1.1448910
 [808,] 1.0433902
 [809,] 0.8933074
 [810,] 0.7406997
 [811,] 1.0065570
 [812,] 1.1690910
 [813,] 1.1099873
 [814,] 1.2410806
 [815,] 0.7771817
 [816,] 1.0276750
 [817,] 0.8786637
 [818,] 1.0815418
 [819,] 0.9536130
 [820,] 1.4381053
 [821,] 1.4670769
 [822,] 0.9458458
 [823,] 1.0887866
 [824,] 0.9154137
 [825,] 0.8154107
 [826,] 1.1857916
 [827,] 1.2429331
 [828,] 0.7862485
 [829,] 0.9131377
 [830,] 0.9831300
 [831,] 0.9286717
 [832,] 0.9593550
 [833,] 0.9211275
 [834,] 1.4250329
 [835,] 0.8740268
 [836,] 1.3540295
 [837,] 1.0635079
 [838,] 0.9152517
 [839,] 0.9120697
 [840,] 1.0353501
 [841,] 0.9834025
 [842,] 1.1729145
 [843,] 0.9038757
 [844,] 0.8703061
 [845,] 1.0509953
 [846,] 0.7503035
 [847,] 1.0540533
 [848,] 0.9840981
 [849,] 0.9010683
 [850,] 0.8706474
 [851,] 1.1748696
 [852,] 1.1497247
 [853,] 0.9756123
 [854,] 1.0097451
 [855,] 1.2007317
 [856,] 1.1690229
 [857,] 1.0134200
 [858,] 0.9656695
 [859,] 0.9061205
 [860,] 0.7755431
 [861,] 0.9858261
 [862,] 0.9460721
 [863,] 1.0619601
 [864,] 0.9232182
 [865,] 0.8961437
 [866,] 0.9577435
 [867,] 0.9287404
 [868,] 1.4590865
 [869,] 0.9751095
 [870,] 0.8965611
 [871,] 0.7501172
 [872,] 1.1649993
 [873,] 0.8543451
 [874,] 1.0687476
 [875,] 1.0842730
 [876,] 1.1567316
 [877,] 0.9838671
 [878,] 0.9833654
 [879,] 0.9932130
 [880,] 0.8750720
 [881,] 1.1203773
 [882,] 1.0222478
 [883,] 0.9856454
 [884,] 0.8074060
 [885,] 0.8539433
 [886,] 1.2587493
 [887,] 0.9755769
 [888,] 1.0305216
 [889,] 0.7257881
 [890,] 1.1266486
 [891,] 0.8682065
 [892,] 0.9168885
 [893,] 1.0196564
 [894,] 1.1599064
 [895,] 0.8294664
 [896,] 1.2540241
 [897,] 1.0100569
 [898,] 0.7809361
 [899,] 0.8504228
 [900,] 1.0540741
 [901,] 1.0634356
 [902,] 1.2605843
 [903,] 0.9417356
 [904,] 0.8594244
 [905,] 1.0908808
 [906,] 0.7960418
 [907,] 0.9757752
 [908,] 0.9473625
 [909,] 0.8303416
 [910,] 0.9078527
 [911,] 1.2357543
 [912,] 0.8405828
 [913,] 1.0064794
 [914,] 1.1179534
 [915,] 0.8683650
 [916,] 1.2138443
 [917,] 1.0531195
 [918,] 0.7159595
 [919,] 1.4180843
 [920,] 1.0231549
 [921,] 0.9017258
 [922,] 1.1629937
 [923,] 0.9446421
 [924,] 0.9878286
 [925,] 1.0525034
 [926,] 0.8929265
 [927,] 0.8827569
 [928,] 0.8282150
 [929,] 1.1008557
 [930,] 0.8855326
 [931,] 0.8173675
 [932,] 0.8525462
 [933,] 0.9908261
 [934,] 0.8211102
 [935,] 1.0746882
 [936,] 0.8540301
 [937,] 1.0923098
 [938,] 1.3203217
 [939,] 1.0790688
 [940,] 0.9390636
 [941,] 1.2086842
 [942,] 1.2207135
 [943,] 0.8115674
 [944,] 1.2097749
 [945,] 1.0827492
 [946,] 0.9452933
 [947,] 1.0836261
 [948,] 0.9601346
 [949,] 1.1139146
 [950,] 0.6370353
 [951,] 0.8128127
 [952,] 0.8391131
 [953,] 1.1878744
 [954,] 1.0036932
 [955,] 0.8559166
 [956,] 1.3065833
 [957,] 0.8942424
 [958,] 1.4440621
 [959,] 1.2340459
 [960,] 0.9127052
 [961,] 0.9767881
 [962,] 0.8888188
 [963,] 1.0400351
 [964,] 1.0631258
 [965,] 0.8153364
 [966,] 0.9126583
 [967,] 0.9746562
 [968,] 0.9563269
 [969,] 0.9660413
 [970,] 0.9488782
 [971,] 1.1263002
 [972,] 1.2016954
 [973,] 0.8482810
 [974,] 1.0898182
 [975,] 0.8620855
 [976,] 0.9941227
 [977,] 0.7786232
 [978,] 0.9994314
 [979,] 1.0422065
 [980,] 0.9741613
 [981,] 0.9995734
 [982,] 1.0257760
 [983,] 1.2158022
 [984,] 0.9230992
 [985,] 0.9161299
 [986,] 0.9974992
 [987,] 1.0905888
 [988,] 0.9986828
 [989,] 0.8613144
 [990,] 1.0933642
 [991,] 1.1467143
 [992,] 0.9891168
 [993,] 0.7833186
 [994,] 0.8582744
 [995,] 0.9563157
 [996,] 0.9016220
 [997,] 0.9861680
 [998,] 1.0740393
 [999,] 1.0401530

$model.matrix
           (Intercept) EnvType1 EnvType2 EnvType3 EnvType4 EnvType5 EnvType6
BHT0.LOT01           1        1        0        0        0        0        0
BHT0.LOT03           1        1        0        0        0        0        0
BHT0.LOT04           1        1        0        0        0        0        0
BHT0.LOT05           1        1        0        0        0        0        0
BHT0.LOT06           1        1        0        0        0        0        0
BHT0.LOT07           1        1        0        0        0        0        0
BHT0.LOT08           1        1        0        0        0        0        0
BHT0.LOT10           1        1        0        0        0        0        0
VHT0.LOT01           1       -1       -1       -1       -1       -1       -1
VHT0.LOT02           1       -1       -1       -1       -1       -1       -1
VHT0.LOT03           1       -1       -1       -1       -1       -1       -1
VHT0.LOT04           1       -1       -1       -1       -1       -1       -1
VHT0.LOT06           1       -1       -1       -1       -1       -1       -1
VHT0.LOT07           1       -1       -1       -1       -1       -1       -1
VHT0.LOT08           1       -1       -1       -1       -1       -1       -1
VHT0.LOT10           1       -1       -1       -1       -1       -1       -1
DLT0.LOT01           1        0        0        1        0        0        0
DLT0.LOT03           1        0        0        1        0        0        0
DLT0.LOT04           1        0        0        1        0        0        0
DLT0.LOT05           1        0        0        1        0        0        0
DLT0.LOT06           1        0        0        1        0        0        0
DLT0.LOT07           1        0        0        1        0        0        0
DLT0.LOT08           1        0        0        1        0        0        0
DLT0.LOT10           1        0        0        1        0        0        0
MVT0.LOT01           1        0        0        0        0        0        1
MVT0.LOT03           1        0        0        0        0        0        1
MVT0.LOT05           1        0        0        0        0        0        1
MVT0.LOT06           1        0        0        0        0        0        1
MVT0.LOT07           1        0        0        0        0        0        1
MVT0.LOT08           1        0        0        0        0        0        1
MVT0.LOT09           1        0        0        0        0        0        1
MVT0.LOT10           1        0        0        0        0        0        1
CDT0.LOT02           1        0        1        0        0        0        0
CDT0.LOT04           1        0        1        0        0        0        0
CDT0.LOT05           1        0        1        0        0        0        0
CDT0.LOT06           1        0        1        0        0        0        0
CDT0.LOT07           1        0        1        0        0        0        0
CDT0.LOT08           1        0        1        0        0        0        0
CDT0.LOT09           1        0        1        0        0        0        0
CDT0.LOT10           1        0        1        0        0        0        0
SFT0.LOT01           1        0        0        0        0        0        0
SFT0.LOT02           1        0        0        0        0        0        0
SFT0.LOT03           1        0        0        0        0        0        0
SFT0.LOT04           1        0        0        0        0        0        0
SFT0.LOT05           1        0        0        0        0        0        0
SFT0.LOT06           1        0        0        0        0        0        0
SFT0.LOT07           1        0        0        0        0        0        0
SFT0.LOT08           1        0        0        0        0        0        0
FST0.LOT01           1        0        0        0        0        1        0
FST0.LOT02           1        0        0        0        0        1        0
FST0.LOT03           1        0        0        0        0        1        0
FST0.LOT05           1        0        0        0        0        1        0
FST0.LOT06           1        0        0        0        0        1        0
FST0.LOT07           1        0        0        0        0        1        0
FST0.LOT08           1        0        0        0        0        1        0
FST0.LOT10           1        0        0        0        0        1        0
FCT0.LOT01           1        0        0        0        1        0        0
FCT0.LOT02           1        0        0        0        1        0        0
FCT0.LOT03           1        0        0        0        1        0        0
FCT0.LOT05           1        0        0        0        1        0        0
FCT0.LOT06           1        0        0        0        1        0        0
FCT0.LOT07           1        0        0        0        1        0        0
FCT0.LOT08           1        0        0        0        1        0        0
FCT0.LOT10           1        0        0        0        1        0        0
           EnvType7
BHT0.LOT01        0
BHT0.LOT03        0
BHT0.LOT04        0
BHT0.LOT05        0
BHT0.LOT06        0
BHT0.LOT07        0
BHT0.LOT08        0
BHT0.LOT10        0
VHT0.LOT01       -1
VHT0.LOT02       -1
VHT0.LOT03       -1
VHT0.LOT04       -1
VHT0.LOT06       -1
VHT0.LOT07       -1
VHT0.LOT08       -1
VHT0.LOT10       -1
DLT0.LOT01        0
DLT0.LOT03        0
DLT0.LOT04        0
DLT0.LOT05        0
DLT0.LOT06        0
DLT0.LOT07        0
DLT0.LOT08        0
DLT0.LOT10        0
MVT0.LOT01        0
MVT0.LOT03        0
MVT0.LOT05        0
MVT0.LOT06        0
MVT0.LOT07        0
MVT0.LOT08        0
MVT0.LOT09        0
MVT0.LOT10        0
CDT0.LOT02        0
CDT0.LOT04        0
CDT0.LOT05        0
CDT0.LOT06        0
CDT0.LOT07        0
CDT0.LOT08        0
CDT0.LOT09        0
CDT0.LOT10        0
SFT0.LOT01        1
SFT0.LOT02        1
SFT0.LOT03        1
SFT0.LOT04        1
SFT0.LOT05        1
SFT0.LOT06        1
SFT0.LOT07        1
SFT0.LOT08        1
FST0.LOT01        0
FST0.LOT02        0
FST0.LOT03        0
FST0.LOT05        0
FST0.LOT06        0
FST0.LOT07        0
FST0.LOT08        0
FST0.LOT10        0
FCT0.LOT01        0
FCT0.LOT02        0
FCT0.LOT03        0
FCT0.LOT05        0
FCT0.LOT06        0
FCT0.LOT07        0
FCT0.LOT08        0
FCT0.LOT10        0

$terms
dist.uf ~ EnvType
attr(,"variables")
list(dist.uf, EnvType)
attr(,"factors")
        EnvType
dist.uf       0
EnvType       1
attr(,"term.labels")
[1] "EnvType"
attr(,"order")
[1] 1
attr(,"intercept")
[1] 1
attr(,"response")
[1] 1
attr(,".Environment")
<environment: R_GlobalEnv>

attr(,"class")
[1] "adonis"

The results show that food origin explains a bit less than 2 thirds of the total variability observed between samples in terms of species repertoires. This is quite strong! Don’t expect such strong results in general.

Heatmap

We investigate the content of our samples when looking at the raw count table and use a custom color scale to reproduce (kind of) the figures in the paper.

plot_heatmap(food) + 
  facet_grid(~EnvType, scales = "free_x", space = "free_x") + 
  scale_fill_gradient2(low = "#1a9850", mid = "#ffffbf", high = "#d73027",
                       na.value = "white", trans = log_trans(4),
                       midpoint = log(100, base = 4))
Figure 6: Heatmap

It looks like:

  • there is some kind of block structure in the data (eg. OTUs that are abundant in seafoods but not meat products or vice-versa)
  • dices of bacon have a lot of OTU in common with seafoods. This is indeed the case and the result of “contamination”, sea salt is usually added to bacon to add flavor. But, in addition to flavor, the grains of salt also bring sea-specific bacterial taxa (at least their genetic material) with them.

Differential abundance study

To highlight the structure, we’re going to perform a differential analysis (between meat products and seafoods) and look only at the differentially abundant taxa.

cds <- phyloseq_to_deseq2(food, ~ FoodType)
dds <- DESeq2::DESeq(cds)
results <- DESeq2::results(dds) %>% as.data.frame()

We can explore the full result table:

DT::datatable(results, filter = "top", 
              extensions = 'Buttons', 
              caption = htmltools::tags$caption(
    style = 'caption-side: top; text-align: left;',
    'Table 2: Result table of differential analysis'),
              options = list(dom = "Bltip", buttons = c('csv'))) %>% 
  DT::formatRound(columns = names(results), digits = 4)

Or only select the OTUs with an adjusted p-value lower than \(0.05\) and sort them according to fold-change.

da_otus <- results %>% as_tibble(rownames = "OTU") %>% 
  filter(padj < 0.05) %>% 
  arrange(log2FoldChange) %>% 
  pull(OTU)
length(da_otus)
[1] 273

We end up with 273 significant OTUs sorted according to their fold-change. We keep only those OTUs in that order in the heat map.

plot_heatmap(prune_taxa(da_otus, food), ## keep only da otus...
                  taxa.order = da_otus       ## ordered according to fold-change
                  ) + 
  facet_grid(~EnvType, scales = "free_x", space = "free_x") + 
  scale_fill_gradient2(low = "#1a9850", mid = "#ffffbf", high = "#d73027",
                       na.value = "white", trans = log_trans(4),
                       midpoint = log(100, base = 4))
Figure 7: Heatmap of differentially abundant taxa

A few conclusions

The different elements we’ve seen allow us to draw a few conclusions:

  • different foods harbor different ecosystems;
  • they may harbor a lot of taxa, the effective number of species is quite low;
  • the high observed number of OTUs in dices of bacon is caused to by salt addition, which also moves bacon samples towards seafoods.
  • the samples are really different and well separated when considering the UniFrac distance (in which case food origin accounts for 63% of the total variability)
  • differential analyses is helpful to select and zoom at specific portions of the count table.

A work by Migale Bioinformatics Facility
Université Paris-Saclay, INRAE, MaIAGE, 78350, Jouy-en-Josas, France
Université Paris-Saclay, INRAE, BioinfOmics, MIGALE bioinformatics facility, 78350, Jouy-en-Josas, France