Microbial Diversity differences within Aerobic Granular Sludge and Activated Sludge Flocs

M-K H. Winkler1, R. Kleerebezem1, L.M.M de Bruin2, P.J.T. Verheijen1, B. Abbas1, J. Habermacher1,3, M.C.M. van Loosdrecht1

1 Department of Biotechnology, Delft University of Technology, Julianalaan 67, 2628 BC Delft, The Netherlands

2 DHV The Netherlands

3Federal Polytechnical Highschool Lausanne (EPFL), Department of Environmental Science and Engineering, Switzerland

Corresponding Author E-mail:

Supplementary Figure S1 A) Averaged influent characteristic of both systems for temperature (dashed line) COD concentration (black line) and ammonium concentration (gray line) as well as S1 B) corresponding averaged ammonium effluent concentrations of the flocculent system (dotted line) and granular system (gray line) as well as the averaged effluent nitrate concentrations for the granular system (black line) over a time frame of 400 days.


Supplementary Figure S2 Heatmaps derived from constructed densiometric curves (GelCompare) of the amoA DNA DGGE gel of the aerobic granular (left) and flocculent sludge (right) as well as sequencing accession numbers for selected bands from 7 samples taken over a period of 400 days. The grey-scale corresponds to bins of intervals of relative band intensity

Supplementary information S3:Code for construction of heatmaps in visual basics

After information was downloaded from gelcompare a script in visual basic was run to construct the heatmaps:

Dim col As Integer

Sub HeatMap()

For Each cell In Selection

If Not cell.Text = "" Then

If cell.Value = 0 Then

col = 255

ElseIf cell.Value > 0.0095 And cell.Value < 0.026 Then

col = 204

ElseIf cell.Value >= 0.026 And cell.Value < 0.0412 Then

col = 153

ElseIf cell.Value >= 0.0412 And cell.Value < 0.0748 Then

col = 102

ElseIf cell.Value >= 0.0748 And cell.Value < 0.2082 Then

col = 51

ElseIf cell.Value >= 0.2082 Then

col = 0

Else

col = 255

End If

Else

col = 255

End If

cell.Interior.Color = RGB(col, col, col)

cell.Font.Color = RGB(col, col, col)

Next

End Sub

Supplementary information S4: Here an example of the R! code is given for the construction of the Multi-dimensional scaling analysis, which is named here PcoA analysis (principle component analysis)

###### Load all required libraries to run the script

# Load the required library vegan

require(vegan)

# Load the required library analogue

require(analogue)

# Load the required library cluster

require(cluster)

# Load ade4

require(ade4)

#Load agnes

require (stats)

require (mvpart)

require (boot)

require(MASS)

source("pcall.R")

source("pcacircle.R")

source("evplot.R")

source("vecfit.R")

################################################################################

### 1. Import the data sets (csv files) from Gelcompare in this case the file was named "amoA_AGS_proportions.csv"

### ------

## Build data frame from CSV files (separator = ;)

prop = read.csv2("amoA_AGS_proportions.csv", header=TRUE, dec=",", row.names=1)

### 2. Standardize data (chord. distance should be applied, in order to avoid effect of double zeros, this is done by method "normalize" of the function "decostand"))

### ------

norm_prop=decostand(prop, "normalize")

### 3. Distance matrix calculation

### ------

dist_norm_prop=vegdist(norm_prop, "euclidean")

### 4. Calculation and storage of PCoA for all patterns and eigenvalues

pcoa=cmdscale(dist_norm_prop, k=(nrow(prop)-1), eig=TRUE)

### 5. Site scores: helps to find the Dimensions from the previous analyze

sc_pcoa = scores(pcoa)

### 6. Retrieve eigenvalues from the created PCoA

ev_pcoa = pcoa$eig

names(ev_pcoa) = paste("Dim", 1:length(ev_pcoa), sep="")

### 7. Selection of axis : Apply Kaiser's rule to select axes (only the eigenvalues which are higher than the average eigenvalue)

ev_pcoa[ev_pcoa > mean(ev_pcoa)]

### 8. Plot eigenvalues and % of variance for each axis; compare variation to broken stick model the function was written by F.Gilles

evplot(ev_pcoa)

### 9. calculate percentage of variation of Dim 1, Dim 2 and Dim 3

100 * ev_pcoa[1]/sum(ev_pcoa)

100 * ev_pcoa[2]/sum(ev_pcoa)

100 * ev_pcoa[3]/sum(ev_pcoa)

### 10. Plot communities on the ordination plane 1/2

windows(5,5)

ordiplot(scores(pcoa)[,c(1,2)], type="text", main="amoA PCoA, AGS, chord distance", xlab=names(ev_pcoa)[1], ylab=names(ev_pcoa)[2])

abline(h=0, lty=3)

abline(v=0, lty=3)

### 11. Plot communities on the ordination plane 1/3

windows(5,5)

ordiplot(scores(pcoa)[,c(1,3)], type="text", main="amoA PCoA, AGS, chord distance", xlab=names(ev_pcoa)[1], ylab=names(ev_pcoa)[3])

abline(h=0, lty=3)

abline(v=0, lty=3)