GCalignR Step by Step

Meinolf Ottensmann, Martin A. Stoffel, Hazel J. Nichols and Joseph I. Hoffman

Introduction

We developed GCalignR primarily as an alignment tool for GC-FID data based on peak retention times, but other types of data that contain retention time information for peaks (e.g. GC-MS) are supported as well. GCalignR implements a fast and objective method to cluster putatively homologous substances prior to multivariate statistical analyses. Using sophisticated visualisations, the resulting alignments can then be fine tuned. The input format of GCalignR is a peak list, which is comprised of retention times and arbitrary variables (e.g. peak height, peak area) that characterise each peak in a dataset.

The implemented algorithm is purely based on retention time data, which is why the quality of the alignment is highly dependent on the quality of the raw data and the parameters used for the initial peak detection. In other words: The clearer the peaks are which were extracted from the chromatograms, the better the alignment will be. GCalignR has been created for situations where the main interest of the research is in exploring broader patterns rather then the specific function of a certain chemical, which is unlikely to be determined correctly in all cases when just retention times are used. Also, we recommend to double-check the resulting alignment with mass-spectrometry data, where available. Furthermore, replicates that were analysed using both GC-MS and GC-FID with identical gas chromatography settings can be aligned together and may be used to identify peaks and validate alignment results.

This vignette gives an quick introduction into using GCalignR, whereas a more detailed description of the background is found in our manuscript(Ottensmann et al. 2018) and in the second vignette of the package “GCalignR: How does the Algorithm work?”.

GCalignR workflow in a larger context

In the flow diagram below, we visualized the functionality of GCalignR within a complete workflow of analysing chemical data. After (1) analysis of the chemical samples with GC-FID, an often proprietary software is used to extract a list of peaks (retention times, peak area, also often peak height and other variables). Steps (3)-(7) are the alignment steps within GCalignR, detailed below. After alignment and normalisation, the output can be used as input for multivariate statistics in other packages such as vegan (8).

Extended Workflow using GCalignR in the analysis of chemical similarity patterns.

Extended Workflow using GCalignR in the analysis of chemical similarity patterns.

Installation

The development version can be downloaded from GitHub with the following code:

install.packages("devtools") 
devtools::install_github("mottensmann/GCalignR", build_vignettes = TRUE) 
library("GCalignR") 

The package documentation can be accessed with:

?GCalignR # documentation

The functions below form the core of GCalignR:

The alignment algorithm

We developed an alignment procedure that involves three sequential steps to align and finally match peaks belonging to putatively homologous substances across samples. The first step is to align each sample to a reference sample while maximising overall similarity through linear shifts of retention times. This procedure is often described in the literature as ‘full alignment’. In the second step, individual peaks are sorted into rows based on close similarity of their retention times, a procedure that is often referred to as ‘partial alignment’. Finally, there is still a chance that homologous peaks can be sorted into different, but adjacent, rows in different samples, depending on the variability of their retention times Consequently, a third step merges rows representing putatively homologous substances.

The alignment algorithm implemented in the align_chromatograms function contains the following steps: (Here we refer to a peak list as all extracted peaks from a given sample chromatogram)

  1. The first step in the alignment procedure consists of an algorithm that corrects systematic linear shifts between peaks of a query sample and a fixed reference to account for systematic shifts in retention times among samples. By default the sample that is most similar on average to all other samples is automatically selected as reference. With respect to the user-defined parameter max_linear_shift linear shifts shifts are applied to all retention times of a sample to maximise similarity to the reference.

  2. The second step in the alignment procedure aligns individual peaks across samples by comparing the peak retention times of each sample consecutively with the mean of all previous samples The parameter max_diff_peak2mean specifies the allowed deviation between the retention time of a peak and the mean of previous retention times within the same row. If the deviation is larger than allowed, matrix operations are conducted to sort the peaks accordingly.

3.The third step in the alignment procedure accounts for the fact that a number of homologous peaks will be sorted into multiple rows that can be subsequently merged The maximum mean difference between two retention time rows can be specified with the min_diff_peak2peak argument.

Optional steps:

  1. Delete peaks that occur in just one sample by setting the delete_single_peak argument to TRUE

  2. Delete all peaks that occur in negative control samples by specifying their names as argument to blanks

Input data

The statistical analysis of GC-FID or GC-MS data is usually based on the detection of peaks (i.e. substances) within chromatograms instead of using the whole profile. Peak can be integrated using proprietary software or free programs. The peak data derived from a chromatogram usually contains the retention time of a given peak plus additional information such as the area under the peak or its height which are used in the subsequent analysis. GCalignR uses only the retention times (and not the mass-spectra, which may not be available, e.g. when using gas-chromatography coupled to a flame ionization detector (FID)) to align the peaks across individuals for subsequent chemometric analysis and pattern detection. The simple assumption is that peaks with similar retention times represent the same substances. However, it is recommended to verify this assumption by comparing also the mass-spectra (if available) of the substances of interest. The input peak list used in GCalignR is a plain text file, whereby all elements should be separated by tabs (with sep = “/t”) or any other separator, which has to be specified with the sep argument (see ?read.table for a list of separators). The decimal separator has to be the point.

Example of a input datafile. Only the head of the file is shown.

Example of a input datafile. Only the head of the file is shown.

Naturally, not all chromatograms contain the same number of peaks.

Tail of the input file

Tail of the input file

Alternative input from R

Alternatively to reading a text file, GCalignR also accepts lists of data frames. The name of each list element corresponds to the identity of a sample and the data frame contains the peak data for this sample (again, the minimum number of columns is one column for the retention time and one column for another variable such as the area under the peak or it’s height is required for using norm_peaks). All column names within the data frames have to be the same and named consistently. The attached dataset peak_data contains data from skin swabs of Antarctic Fur Seals Arctocephalus gazella (Stoffel et al. 2015) and can be used as template.

data("peak_data")
length(peak_data) # number of individuals, i.e. number of list elements
#> [1] 84
names(peak_data) # names of individuals, i.e. names of list elements 
#>  [1] "C3"  "C2"  "M2"  "M3"  "M4"  "M5"  "M6"  "M7"  "M8"  "M9"  "M10" "M12"
#> [13] "M14" "M15" "M16" "M17" "M18" "M19" "M20" "M21" "M23" "M24" "M25" "M26"
#> [25] "M27" "M28" "M29" "M30" "M31" "M33" "M35" "M36" "M37" "M38" "M39" "M40"
#> [37] "M41" "M43" "M44" "M45" "M46" "M47" "M48" "P2"  "P3"  "P4"  "P5"  "P6" 
#> [49] "P7"  "P8"  "P9"  "P10" "P12" "P14" "P15" "P16" "P17" "P18" "P19" "P20"
#> [61] "P21" "P23" "P24" "P25" "P26" "P27" "P28" "P29" "P30" "P31" "P33" "P35"
#> [73] "P36" "P37" "P38" "P39" "P40" "P41" "P43" "P44" "P45" "P46" "P47" "P48"
head(peak_data[[1]]) # column names and data, i.e. one data.frame of list element 
#>   time     area
#> 1 4.53  3331224
#> 2 4.55  1462381
#> 3 4.62  4834211
#> 4 4.68  7754401
#> 5 4.71  1267617
#> 6 4.79 10356487

GCalignR workflow

Check the input

To check the data formatting for the most common errors, use the check_input function. This will test for conformity with the the main requirements of the aligning algorithm and give a warning message if these aren’t met. When a text file is used as input, the decimal has to be a point (not a comma). However, there could potentially be a variety of different error sources so it is advisable to make sure by yourself that the data is in the correct format.

# if plot = T, a histogram of peaks is plotted
check_input(data = peak_data,plot = F)  
#> All checks passed!

The alignment procedure adjust peaks that represent putatively homologous substances that differ to varying degree in retention times among samples. In order to define sensible values for the the parameters min_diff_peak2peak it is advisable to investigate how far peaks are commonly separated within chromatograms. The function peak_interspace plots a histogram of all between peak retention time differences within samples and combines this estimates for the complete dataset. Here, the difference between close peaks is of interest and and the function allows to plot certain quantile ranges of the distribution by specifying the parameter quantile_range.

peak_interspace(data = peak_data, rt_col_name = "time",
                quantile_range = c(0, 0.8), quantiles = 0.05)
Figure 4: Histogram of Peak interspaces

Figure 4: Histogram of Peak interspaces

#> $Summary
#>    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
#>  0.0000  0.0600  0.1000  0.2542  0.2500 11.3700 
#> 
#> $Quantiles
#>   5% 
#> 0.03

The histogram shows the distribution of retention-time ‘spaces’ between peaks. Most peaks are around 0.05 minutes apart from each other. From the distribution we want to infer the potential error-margin around a peak,that GCalignR will correct. We can see from the histogram that very few peaks are closer together than 0.03 minutes. By looking at the original chromatograms it becomes clear that these peaks are usually substances with low concentration which show a ‘double peak’, i.e. two peaks appear for what we believe is just a single substance. Therefore, we decide to take a value of 0.03 for the min_diff_peak2peak parameter below. It is noteworthy that this does not set a strict threshold and substances with a smaller difference in mean retention times can still be formed during the alignment (because those peaks are known to exist within samples). Therefore, we suggest to carefully check the aligned data and revise the initial peak calling if required.

Align chromatograms

The core function in GCalignR is align_chromatograms, which will align the peak lists with the algorithm described above. See ?align_chromatograms for a detailed description of the arguments. The alignment process will take a few minutes to several hours on a standard computer depending on mainly three factors; (1) the number of samples and (2) the number of peaks per sample and (3) the number of substances that are classified during the alignment procedure. Progress bars and run time estimates (where possible) indicate the progress of the alignment run.

peak_data <- peak_data[1:4] # subset for speed reasons
peak_data_aligned <- align_chromatograms(data = peak_data, # input data
    rt_col_name = "time", # retention time variable name 
    rt_cutoff_low = 15, # remove peaks below 15 Minutes
    rt_cutoff_high = 45, # remove peaks exceeding 45 Minutes
    reference = NULL, # choose automatically 
    max_linear_shift = 0.05, # max. shift for linear corrections
    max_diff_peak2mean = 0.03, # max. distance of a peak to the mean across samples
    min_diff_peak2peak = 0.03, # min. expected distance between peaks 
    blanks = "C2", # negative control
    delete_single_peak = TRUE, # delete peaks that are present in just one sample 
    write_output = NULL) # add variable names to write aligned data to text files

The aligned data matrices are now stored in data frames which can be accessed as follows:

peak_data_aligned$aligned$time # to access the aligned retention times
peak_data_aligned$aligned$area # to access the aligned area data

The package includes the already aligned data set for all samples using default alignment parameter settings.

data("aligned_peak_data") 

Visual diagnostics for the aligned data

The gc_heatmap function can be used to visualise aligned datasets. A white filling indicates the absence of a peak in a sample, when using the default option of a binary heatmap. The basic rationale of the alignment is to sort the substances with very similar retention times together, as they represent putatively homologous substances. The heatmap shows how single peaks for the individuals deviate from the mean retention time of a substance. As a rule of thumb: The larger the deviation, the less likely it is the same substance, but retention time variation can be high for certain peaks. Therefore, retention time variations are highlighted with respect to mean and outliers are highlighted. By default, the a threshold value matching the parameter max_diff_peak2peak is used to show deviations. However, deviations might be higher after pairs of rows where merged with respect to the value of min_diff_peak2peak. Check out the documentation with help("gc_heatmap") for further possibilities.

gc_heatmap(aligned_peak_data,threshold = 0.03) 
Heatmap showing the distribution of peaks and the variability within substances

Heatmap showing the distribution of peaks and the variability within substances

The plot function shows a four figure plot for the aligned data. The first histogram shows the number of peaks per sample before and after alignment. The number of peaks is much smaller after the alignment as peaks have been deleted which were present in the control samples, as well as peaks that were found in just a single individual. The histograms on the bottom left shows the full chromatogram shifts (the first step in the algorithm). The bottom middle shows how much peaks vary around their means across samples. The histogram on the bottom right shows how many peaks are shared across samples. In this case, there is just a single substance present in all samples, while often 10-12 samples share a single substance (the mode of the distribution).

plot(aligned_peak_data,which_plot = "all") # Plots, can be invoked separetely
Diagnostic plot of the aligned dataset

Diagnostic plot of the aligned dataset

Using the printfunction, provides a verbal summary of the alignment procedure is retrieved and the function call can be retraced.

print(aligned_peak_data) 
#> Summary of Peak Alignment running align_chromatograms
#> Input: peak_data
#> Start:  2017-07-19 16:31:47  Finished:  2017-07-19 17:30:47 
#> 
#> Call:
#>   GCalignR::align_chromatograms(data=peak_data, rt_col_name=time,
#>   max_linear_shift=0.05, max_diff_peak2mean=0.02, min_diff_peak2peak=0.08,
#>   blanks=(C2, C3), delete_single_peak=T, sep=\t, rt_cutoff_low=NULL,
#>   rt_cutoff_high=NULL, reference=NULL)
#> 
#> Summary of scored substances:
#>    total   blanks singular retained 
#>      494      171       45      278 
#> 
#> In total 494 substances were identified among all samples. 171 substances were
#>   present in blanks. The corresponding peaks as well as the blanks were removed
#>   from the data. 45 substances were present in just one single sample and were
#>   removed. 278 substances are retained after all filtering steps.
#> 
#> Sample overview:
#>   The following 84 samples were aligned to the reference 'P20':
#>   M2, M3, M4, M5, M6, M7, M8, M9, M10, M12, M14, M15, M16, M17, M18, M19, M20,
#>   M21, M23, M24, M25, M26, M27, M28, M29, M30, M31, M33, M35, M36, M37, M38,
#>   M39, M40, M41, M43, M44, M45, M46, M47, M48, P2, P3, P4, P5, P6, P7, P8, P9,
#>   P10, P12, P14, P15, P16, P17, P18, P19, P20, P21, P23, P24, P25, P26, P27,
#>   P28, P29, P30, P31, P33, P35, P36, P37, P38, P39, P40, P41, P43, P44, P45,
#>   P46, P47, P48
#> 
#> For further details type:
#>   'gc_heatmap(aligned_peak_data)' to retrieve heatmaps
#>   'plot(aligned_peak_data)' to retrieve further diagnostic plots

Normalise peaks and log+1 transformation

norm_peaks is used to standardize the concentration of peaks across samples to obtain the relative abundance. This is an essential step prior to the analysis if the absolute concentration of chemicals varies across samples. Note that this step is also required when retention time cut-offs, single peak deletion or blank peak removal was applied, even if the data already contained a measure of relative abundance. The output is a list of data frames containing the relative abundance of peaks for every individual.

## normalise area and return a data frame
scent <- norm_peaks(aligned_peak_data, conc_col_name = "area",rt_col_name = "time",out = "data.frame") 
## common transformation for abundance data to reduce the extent of mean-variance trends
scent <- log(scent + 1) 

Visualise patterns by ordination plots using the vegan package

vegan offers a variety of useful function for the analysis of multivariate abundance data such as the scent profiles handled here. Check out help("vegan") for a first overview.

Non-metric multidimensional scaling

## GCalignR contains factors for the chemical dataset
data("peak_factors") 
## keep order of rows consistent
scent <- scent[match(row.names(peak_factors),row.names(scent)),] 
## NMDS using Bray-Curtis dissimilarities
scent_nmds <- vegan::metaMDS(comm = scent, distance = "bray")
## get x and y coordinates
scent_nmds <- as.data.frame(scent_nmds[["points"]])  
## add the colony as a factor to each sample
scent_nmds <- cbind(scent_nmds,colony = peak_factors[["colony"]])
## ordiplot with ggplot2
library(ggplot2)
ggplot(data = scent_nmds,aes(MDS1,MDS2,color = colony)) +
    geom_point() + 
    theme_void() + 
    scale_color_manual(values = c("blue","red")) +
    theme(panel.background = element_rect(colour = "black", size = 1.25,
            fill = NA), aspect.ratio = 1, legend.position = "none")
NMDS plot

NMDS plot

Multivariate analysis using adonis

Using adonis and betadisper we can immediately do multivariate statistics, showing that the two colonies differ significantly. This illustrates a location effect.

## colony effect
vegan::adonis(scent ~ peak_factors$colony,permutations = 999) 
#> $aov.tab
#> Permutation: free
#> Number of permutations: 999
#> 
#> Terms added sequentially (first to last)
#> 
#>                     Df SumsOfSqs MeanSqs F.Model     R2 Pr(>F)    
#> peak_factors$colony  1     2.543 2.54300  11.733 0.1279  0.001 ***
#> Residuals           80    17.340 0.21675         0.8721           
#> Total               81    19.883                 1.0000           
#> ---
#> Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
#> 
#> $call
#> vegan::adonis(formula = scent ~ peak_factors$colony, permutations = 999)
#> 
#> $coefficients
#>                      4.57815789473684 4.63811320754717 4.75782608695652
#> (Intercept)                 0.4960031        0.6861533        0.2201237
#> peak_factors$colony1       -0.2254985       -0.1611214        0.0218812
#>                         4.776875 4.90469387755102 4.92904761904762
#> (Intercept)           0.48780641        0.5131334       0.21449008
#> peak_factors$colony1 -0.04755273       -0.1224804       0.04327273
#>                      5.02483870967742 5.08666666666667       5.107   5.1671875
#> (Intercept)                0.32893912      0.401618259  0.33417559  0.41080985
#> peak_factors$colony1      -0.03680084      0.003740504 -0.04288249 -0.08439993
#>                      5.18717948717949        5.24 5.29642857142857
#> (Intercept)                0.45223795  0.24504268        0.2212512
#> peak_factors$colony1      -0.07993187 -0.02385058       -0.1166943
#>                      5.3262962962963 5.39583333333333 5.54166666666667
#> (Intercept)               0.21770016       0.20201125       0.19211613
#> peak_factors$colony1     -0.01841605       0.00551927      -0.08348079
#>                      5.57409090909091 5.59166666666667       5.668       5.718
#> (Intercept)                0.18609516      0.044590474  0.09638410  0.09007201
#> peak_factors$colony1      -0.03099631     -0.009153856 -0.01011584 -0.02384961
#>                            5.735 5.7795652173913 5.83909090909091      5.988
#> (Intercept)           0.19882974      0.18713144       0.06440126  0.1468555
#> peak_factors$colony1 -0.05976512     -0.02273764       0.01115780 -0.1282835
#>                      6.01807692307692      6.0668        6.09 6.15619047619048
#> (Intercept)                0.21523065 0.169667169 0.116903696       0.18666941
#> peak_factors$colony1       0.01819312 0.007257901 0.002085931      -0.06558486
#>                      6.22333333333333 6.23944444444444 6.29409090909091
#> (Intercept)                0.13601600       0.11063550       0.16270779
#> peak_factors$colony1       0.02511686      -0.03572419      -0.02005276
#>                      6.30833333333333       6.415 6.44642857142857      6.4825
#> (Intercept)                0.03172734 0.009265585       0.06681986  0.05623546
#> peak_factors$colony1      -0.01956213 0.009265585      -0.01256277 -0.01423180
#>                      6.53166666666667 6.57529411764706 6.61090909090909
#> (Intercept)               0.055425913      0.090250038       0.06125941
#> peak_factors$colony1     -0.007857218      0.006274586      -0.02570432
#>                           6.6505 6.68827586206897 6.71733333333333
#> (Intercept)           0.15285770      0.271819259       0.28831129
#> peak_factors$colony1 -0.06676733      0.001945085      -0.05090653
#>                      6.75846153846154     6.7675     6.8125 6.85192307692308
#> (Intercept)                0.29300980 0.03265278 0.22850854        0.2742509
#> peak_factors$colony1       0.09180006 0.01395451 0.04967921       -0.0511568
#>                      6.87633333333333 6.90657142857143 6.93592592592593
#> (Intercept)                0.29166330       0.29092379       0.20157843
#> peak_factors$colony1       0.01121343      -0.02934769      -0.09002699
#>                      6.95588235294118      6.979 7.00785714285714
#> (Intercept)                0.15928427 0.07061302       0.07995200
#> peak_factors$colony1      -0.02829561 0.01274233      -0.03575665
#>                      7.03818181818182 7.05333333333333         7.08        7.17
#> (Intercept)               0.065535367      0.010708066  0.028085807  0.01353544
#> peak_factors$colony1      0.002783442     -0.006695525 -0.004697952 -0.01353544
#>                            7.20625     7.2375    7.26375 7.29833333333333
#> (Intercept)           0.0529720022 0.09455785 0.08498182       0.13459960
#> peak_factors$colony1 -0.0007924993 0.01175431 0.02783025      -0.01688231
#>                          7.32125 7.37684210526316 7.51911764705882
#> (Intercept)           0.15558893        0.2464067        0.6132765
#> peak_factors$colony1 -0.03216457       -0.1005379       -0.0990323
#>                      7.57931034482759 7.61611111111111 7.65961538461538
#> (Intercept)                 0.3687148       0.12569081       0.19651959
#> peak_factors$colony1       -0.1062481       0.03322159      -0.02227399
#>                             7.745 7.79666666666667 7.87666666666667
#> (Intercept)           0.014638131       0.02639207      0.035557924
#> peak_factors$colony1 -0.004752921       0.01599460     -0.008924104
#>                      7.91142857142857 7.94866666666667 8.05666666666667
#> (Intercept)                0.10019506      0.126909846       0.17967237
#> peak_factors$colony1       0.02048841     -0.004724464      -0.02260517
#>                      8.30333333333333       8.388     8.41625 8.46428571428572
#> (Intercept)               0.020925850  0.02683992  0.09439628       0.40718740
#> peak_factors$colony1     -0.006912634 -0.01200075 -0.07985005       0.06015209
#>                      8.52722222222222 8.55833333333333 8.89088235294118
#> (Intercept)               0.122398683      0.024987552        0.5256431
#> peak_factors$colony1     -0.006674776     -0.001872883        0.1427015
#>                      8.94571428571429 8.99666666666667        9.255        9.66
#> (Intercept)                0.18142054       0.04698581 0.0110617315 0.022199545
#> peak_factors$colony1      -0.05004971       0.01646943 0.0004943885 0.004460537
#>                      9.69076923076923     9.7376 9.76033333333333         9.9
#> (Intercept)               0.207731604 0.24904732       0.28102510 0.050075645
#> peak_factors$colony1      0.007252475 0.04169994      -0.05864507 0.001502136
#>                            9.945      10.236     10.3175   10.466875    10.6075
#> (Intercept)          0.006241114 0.087891791  0.08587822  0.15389945 0.02922459
#> peak_factors$colony1 0.001493417 0.004489419 -0.01716012 -0.05197125 0.02922459
#>                            10.69 10.7485714285714 10.8907142857143
#> (Intercept)          0.026431953       0.05931878       0.13407239
#> peak_factors$colony1 0.002425486       0.03422530      -0.01338839
#>                      11.0413636363636        11.1      11.216      11.945
#> (Intercept)                0.18562350 0.008728858 0.069650488 0.011374195
#> peak_factors$colony1       0.05496906 0.008728858 0.009182589 0.004657074
#>                             12.2 12.3933333333333      12.445       12.66
#> (Intercept)          0.009131868      0.091610317 0.006064098  0.15590306
#> peak_factors$colony1 0.009131868     -0.002812156 0.006064098 -0.05117219
#>                      12.7217647058824 12.7858333333333  13.115625     13.174
#> (Intercept)                0.06891846      0.048522713 0.07723057 0.08643708
#> peak_factors$colony1      -0.02431253     -0.009538039 0.02367789 0.02447191
#>                      13.2522580645161   13.36875      13.685 13.7227586206897
#> (Intercept)                0.17933418 0.05051634 0.017258868       0.42114934
#> peak_factors$colony1      -0.04611837 0.01020585 0.005218031       0.01013677
#>                      13.7895238095238 13.8509523809524         13.88
#> (Intercept)               0.433289084       0.11225035  0.0255713603
#> peak_factors$colony1      0.001745209      -0.01873689 -0.0001791283
#>                      14.0508695652174       14.24 14.2933333333333
#> (Intercept)                0.12760250 0.009053976      0.034132922
#> peak_factors$colony1      -0.02175565 0.009053976      0.007771027
#>                      14.3666666666667 14.5207692307692 14.5908333333333
#> (Intercept)               0.007993250      0.048860807       0.05376237
#> peak_factors$colony1     -0.005726269     -0.006281604      -0.00747252
#>                      14.6444444444444    14.6904 15.1038461538462
#> (Intercept)               0.038233018  0.4133849       0.06296403
#> peak_factors$colony1      0.001795336 -0.1083785      -0.04837968
#>                      15.2052380952381 15.2944444444444   15.368125
#> (Intercept)                 0.1329102       0.03246351  0.07066892
#> peak_factors$colony1       -0.1047540      -0.00263049 -0.06786967
#>                      15.4498717948718 15.5008108108108     15.686
#> (Intercept)                 1.4461121        0.4405547 0.04327617
#> peak_factors$colony1       -0.8414049        0.0643137 0.02277674
#>                      15.7342465753425 15.8188888888889      15.8575     16.1525
#> (Intercept)                 0.6953760       0.02217735  0.009318582 0.008778948
#> peak_factors$colony1       -0.1001144      -0.01627068 -0.003735105 0.008778948
#>                           16.2025     16.279 16.3895238095238 16.7071428571429
#> (Intercept)           0.024841947  0.2935544        0.6928799       0.11311366
#> peak_factors$colony1 -0.009902343 -0.1716125       -0.5917575      -0.04727114
#>                      16.8414285714286 16.9664705882353     17.07
#> (Intercept)                0.02813339       0.07452645 0.3677711
#> peak_factors$colony1      -0.02813339      -0.05683169 0.0324919
#>                      17.3853571428571 17.4137142857143 17.5383333333333
#> (Intercept)                 0.2803627       0.45331590      0.042209362
#> peak_factors$colony1       -0.1611828       0.04870415     -0.007719569
#>                      17.8085714285714 17.9464705882353 18.2161764705882
#> (Intercept)                0.04548524        0.1218084       0.20967984
#> peak_factors$colony1      -0.02715042       -0.1218084       0.02073497
#>                      18.7126923076923    18.838 19.0422222222222      19.135
#> (Intercept)                 0.1391448 0.0538858       0.12471324  0.03141067
#> peak_factors$colony1        0.0197298 0.0538858      -0.04694593 -0.02162720
#>                      19.2026315789474 19.2766666666667 19.5174358974359
#> (Intercept)                 0.3440265       0.01074694        0.7655670
#> peak_factors$colony1       -0.1100373      -0.01074694        0.4745861
#>                      19.5633333333333 19.6111904761905 19.6568571428571
#> (Intercept)               0.007841882       0.39787524        0.3449591
#> peak_factors$colony1     -0.007841882       0.08645177       -0.2994349
#>                      19.7148780487805 19.8544827586207 19.9640740740741
#> (Intercept)                 2.3031944       0.21788737        0.1548225
#> peak_factors$colony1        0.4989992       0.02410315       -0.0136976
#>                           20.015        20.14 20.2511764705882 20.3534615384615
#> (Intercept)          0.003968948 0.0104134178       0.26241198       0.27524091
#> peak_factors$colony1 0.003968948 0.0002277853       0.01659893       0.07632955
#>                      20.3628571428571 20.4390909090909 20.4782352941176
#> (Intercept)                0.07171897       0.07011516        0.1180117
#> peak_factors$colony1       0.01956406       0.03350734        0.1073186
#>                      20.509347826087     20.5605     20.794      20.828
#> (Intercept)                0.4783100  0.09489262  0.2898305  0.10535155
#> peak_factors$colony1      -0.3757291 -0.08012670 -0.1955809 -0.08600698
#>                            20.866       21.005 21.0841176470588
#> (Intercept)           0.024078002  0.007096097       0.15660596
#> peak_factors$colony1 -0.005733804 -0.004852511       0.09733618
#>                      21.2086363636364     21.34 21.3982051282051
#> (Intercept)                0.12456822 0.5966281        0.5587115
#> peak_factors$colony1       0.05272332 0.4674895        0.5200429
#>                      21.4912121212121         21.52 21.5672549019608
#> (Intercept)                0.34921502  0.0283171978        0.4775701
#> peak_factors$colony1       0.07602885 -0.0002670292       -0.2283156
#>                      21.8033333333333     21.8275 21.8971428571429     22.11375
#> (Intercept)               0.016675561 0.033999917       0.01587804 0.0336565016
#> peak_factors$colony1     -0.004783144 0.004772731       0.00207089 0.0005038313
#>                         22.1575      22.252     22.35875     22.416
#> (Intercept)          0.03732864 0.010668555  0.021879517 0.05578432
#> peak_factors$colony1 0.02667679 0.007307618 -0.005118309 0.02831529
#>                      22.5166666666667 22.5439130434783    22.57875     22.618
#> (Intercept)                0.02149656       0.15224725  0.06234738 0.16714808
#> peak_factors$colony1      -0.02149656      -0.04549984 -0.04246726 0.01555931
#>                      22.7242857142857 22.7645945945946 22.8527272727273
#> (Intercept)                0.09916151        0.3492584      0.039681003
#> peak_factors$colony1      -0.03936529        0.2519313      0.003257135
#>                      22.9611111111111          23    23.06125        23.13
#> (Intercept)                0.04942787  0.04086176 0.107735348  0.009853710
#> peak_factors$colony1       0.03566286 -0.03112434 0.001115498 -0.004672029
#>                      23.2233333333333 23.3961538461538 23.5111111111111
#> (Intercept)                0.12001760      0.081063295       0.08722947
#> peak_factors$colony1       0.01527003      0.002314346       0.04930072
#>                      23.6815384615385      23.805        23.89       23.93
#> (Intercept)                0.10290101 0.009098594  0.008614083 0.003137898
#> peak_factors$colony1       0.01650433 0.003084052 -0.001247830 0.000685523
#>                            24.17 24.2538461538462     24.31875 24.5442857142857
#> (Intercept)           0.01321064       0.11271166  0.031128679       0.02112115
#> peak_factors$colony1 -0.01192744       0.02916312 -0.002129551       0.00159501
#>                      24.5838461538462 24.6411111111111      24.67
#> (Intercept)               0.054255148       0.05885535 0.09923426
#> peak_factors$colony1     -0.005203722       0.02308192 0.01195996
#>                      24.7116666666667       24.77 24.9516666666667
#> (Intercept)               0.018677688 0.009899627       0.01762272
#> peak_factors$colony1     -0.001439561 0.009899627       0.00449231
#>                      24.9957142857143     25.0575       25.125 25.3366666666667
#> (Intercept)              0.0227453356 0.011395443 0.0035474878     0.0129733845
#> peak_factors$colony1     0.0007871531 0.001393578 0.0002712318     0.0007424495
#>                           25.4375       25.745    25.83625      25.938
#> (Intercept)           0.010006626  0.004142354 0.036823105  0.03288233
#> peak_factors$colony1 -0.006493626 -0.004142354 0.009050397 -0.02820059
#>                            26.048      26.145    26.1825 26.3277777777778
#> (Intercept)           0.013768013  0.01132252 0.01945162      0.026146887
#> peak_factors$colony1 -0.001483183 -0.01132252 0.01694785      0.001000117
#>                           26.505 26.7808450704225 26.9127272727273     27.0175
#> (Intercept)           0.03123302        1.8030001       0.05534532 0.010471536
#> peak_factors$colony1 -0.01506572        0.1437746       0.02315315 0.005202219
#>                           27.055 27.0933333333333 27.2166666666667
#> (Intercept)          0.019407755       0.00778871      0.006746926
#> peak_factors$colony1 0.005503705       0.00778871      0.003221939
#>                      27.6714285714286 27.6916666666667      27.764
#> (Intercept)                0.09092913       0.03886792 0.016174863
#> peak_factors$colony1      -0.03163587      -0.01605033 0.009418324
#>                      27.9992857142857     28.152       28.34 28.8466666666667
#> (Intercept)                0.11597296 0.02112426 0.014930678      0.010626549
#> peak_factors$colony1       0.02842578 0.01251282 0.004035268      0.005194646
#>                      29.0226666666667      30.525       30.634 30.7885294117647
#> (Intercept)                0.08823239  0.02262417  0.017349055        0.5218007
#> peak_factors$colony1       0.02152008 -0.02262417 -0.006285839        0.2855259
#>                      30.8084210526316     30.845       31.12   31.57875
#> (Intercept)               0.251435247 0.05399237 0.013011016 0.05467227
#> peak_factors$colony1      0.007120187 0.02146107 0.003270478 0.01510243
#>                         32.6025 33.5888888888889 33.6328571428571
#> (Intercept)          0.03640122       0.12313918       0.10358037
#> peak_factors$colony1 0.03640122      -0.02336516       0.02000399
#>                      33.6476923076923        34.1 34.2576923076923
#> (Intercept)                0.19253161 0.005700008       0.12850888
#> peak_factors$colony1      -0.04699263 0.005700008      -0.03280716
#>                      34.2933333333333       34.875       34.935       35.005
#> (Intercept)               0.026534451 0.0162170185  0.020162291  0.025590507
#> peak_factors$colony1     -0.001165799 0.0006167595 -0.000325064 -0.002025451
#>                           35.3775       35.415     35.455 36.0685294117647
#> (Intercept)           0.012086005  0.019557226 0.01018938       0.48215437
#> peak_factors$colony1 -0.000905528 -0.002935424 0.01018938      -0.02499614
#>                      36.1266666666667      36.27      36.825 36.9154545454545
#> (Intercept)                0.11772482  0.0253945  0.03665076       0.12152503
#> peak_factors$colony1      -0.02897689 -0.0253945 -0.01470688      -0.04304539
#>                      36.9416666666667 36.9861538461538 37.0316666666667
#> (Intercept)                0.04157679       0.08936403       0.17040176
#> peak_factors$colony1       0.02440964       0.03311876      -0.01214173
#>                      37.0577777777778 37.0883333333333      37.505
#> (Intercept)                0.19407154     0.0492998802  0.01998708
#> peak_factors$colony1      -0.02931285     0.0007009459 -0.01998708
#>                      37.5734782608696 38.4982142857143    38.5256
#> (Intercept)               0.414362708       0.49996219  0.4420984
#> peak_factors$colony1     -0.001411704       0.05685117 -0.1923564
#>                      42.7166666666667        42.82       43.285
#> (Intercept)               0.022755984  0.005727757  0.004929371
#> peak_factors$colony1     -0.006800732 -0.005727757 -0.004929371
#> 
#> $coef.sites
#>                            M10       M12        M14         M15        M16
#> (Intercept)          0.6743792 0.6653504 0.71932755  0.73410999 0.70150543
#> peak_factors$colony1 0.0456997 0.0591496 0.03601436 -0.08378308 0.06822735
#>                             M17        M18        M19          M2        M20
#> (Intercept)          0.74762724 0.65974904 0.68631215  0.73774583 0.68007551
#> peak_factors$colony1 0.06919318 0.04439063 0.01191172 -0.01447244 0.05264725
#>                             M21        M23        M24        M25         M26
#> (Intercept)          0.65033989 0.72330724 0.66207664 0.67528711  0.65095694
#> peak_factors$colony1 0.05775316 0.03019023 0.03259359 0.05595641 -0.06093678
#>                             M27         M28         M29          M3        M30
#> (Intercept)           0.6555764  0.68725337  0.68596490  0.72104901 0.66978168
#> peak_factors$colony1 -0.0700088 -0.07126058 -0.08035308 -0.04447704 0.07125227
#>                             M31        M33        M35        M36         M37
#> (Intercept)          0.67678723 0.66900401 0.63913255 0.75786441  0.65681387
#> peak_factors$colony1 0.07131928 0.04163475 0.05472133 0.04542816 -0.07116549
#>                             M38        M39          M4         M40         M41
#> (Intercept)          0.66222871 0.69609163  0.69643071  0.73505012  0.65519214
#> peak_factors$colony1 0.06247488 0.07323913 -0.05440593 -0.06985475 -0.07629795
#>                              M43        M44          M45         M46        M47
#> (Intercept)           0.67599720  0.6730764  0.716666850  0.74450272  0.7079523
#> peak_factors$colony1 -0.03271806 -0.0501769 -0.008135185 -0.03689733 -0.0112890
#>                              M48          M5         M6         M7         M8
#> (Intercept)           0.66106877  0.64397197 0.70594962 0.70407147 0.71366459
#> peak_factors$colony1 -0.03323221 -0.06886574 0.03410125 0.05290112 0.03299138
#>                               M9        P10        P12        P14         P15
#> (Intercept)           0.65074406 0.69076614 0.65561719 0.71626890  0.68910909
#> peak_factors$colony1 -0.05764732 0.04996843 0.07649294 0.04912973 -0.05301087
#>                             P16        P17        P18        P19          P2
#> (Intercept)          0.69496247 0.70457727 0.66191719 0.66409944  0.72528132
#> peak_factors$colony1 0.04085148 0.06630824 0.04835376 0.04075108 -0.03950783
#>                             P20        P21        P23        P24        P25
#> (Intercept)          0.69915156 0.67124462 0.69789845 0.67149320 0.66895253
#> peak_factors$colony1 0.05668215 0.04522624 0.02690825 0.04092601 0.04612121
#>                              P26         P27         P28         P29
#> (Intercept)           0.70265986  0.66642060  0.68361636  0.67590732
#> peak_factors$colony1 -0.04601528 -0.04064034 -0.05147861 -0.06927339
#>                               P3        P30        P31        P33        P35
#> (Intercept)           0.71727521 0.66586487 0.66493292 0.67008819 0.64158928
#> peak_factors$colony1 -0.02589199 0.03631072 0.07764269 0.05481137 0.07101689
#>                             P36         P37        P38        P39          P4
#> (Intercept)          0.66207324  0.67607344 0.66450819 0.68983650  0.67979202
#> peak_factors$colony1 0.07941043 -0.07656105 0.07059074 0.04190615 -0.03759182
#>                              P40         P41         P43         P44
#> (Intercept)           0.71949711  0.62028776  0.69003691  0.66000168
#> peak_factors$colony1 -0.07749246 -0.04275744 -0.04972208 -0.05108594
#>                              P45         P46         P47         P48
#> (Intercept)           0.74428006  0.73388894  0.68670009  0.69476243
#> peak_factors$colony1 -0.04557795 -0.02729727 -0.03456565 -0.04984155
#>                               P5         P6         P7         P8          P9
#> (Intercept)           0.68052765 0.65643123 0.67979350 0.75473873  0.67142652
#> peak_factors$colony1 -0.07452868 0.05268521 0.02901803 0.02935144 -0.05138301
#> 
#> $f.perms
#>              [,1]
#>    [1,] 0.8874154
#>    [2,] 1.2054996
#>    [3,] 0.6242766
#>    [4,] 0.5861573
#>    [5,] 0.7022416
#>    [6,] 0.6141833
#>    [7,] 0.7663245
#>    [8,] 1.0659479
#>    [9,] 1.0076019
#>   [10,] 0.7419166
#>   [11,] 1.1768505
#>   [12,] 2.0720546
#>   [13,] 0.9420268
#>   [14,] 0.8046983
#>   [15,] 0.8002891
#>   [16,] 1.1824432
#>   [17,] 0.9727811
#>   [18,] 0.9021384
#>   [19,] 1.1010807
#>   [20,] 0.7285790
#>   [21,] 0.6702941
#>   [22,] 1.0824122
#>   [23,] 0.6856266
#>   [24,] 1.1471990
#>   [25,] 0.8012117
#>   [26,] 1.1434095
#>   [27,] 1.0878285
#>   [28,] 1.0172101
#>   [29,] 0.9640122
#>   [30,] 1.0816352
#>   [31,] 0.7342675
#>   [32,] 0.9292355
#>   [33,] 1.0623740
#>   [34,] 0.7121465
#>   [35,] 1.2004305
#>   [36,] 1.1309154
#>   [37,] 1.4811493
#>   [38,] 1.0529523
#>   [39,] 1.1108084
#>   [40,] 0.8581626
#>   [41,] 0.6960781
#>   [42,] 1.2545336
#>   [43,] 1.0082170
#>   [44,] 1.0811548
#>   [45,] 0.6392615
#>   [46,] 1.1413399
#>   [47,] 1.4578877
#>   [48,] 1.4446754
#>   [49,] 0.6525703
#>   [50,] 2.4087737
#>   [51,] 0.6106048
#>   [52,] 1.0392644
#>   [53,] 0.7444965
#>   [54,] 0.9407798
#>   [55,] 1.0061195
#>   [56,] 1.0035901
#>   [57,] 1.1161832
#>   [58,] 0.9796402
#>   [59,] 1.1207037
#>   [60,] 0.8744581
#>   [61,] 0.7953024
#>   [62,] 1.7754193
#>   [63,] 1.1404507
#>   [64,] 1.0798966
#>   [65,] 0.6877731
#>   [66,] 1.2004021
#>   [67,] 0.7406638
#>   [68,] 0.9723927
#>   [69,] 1.5477139
#>   [70,] 0.7558591
#>   [71,] 0.7934042
#>   [72,] 1.1532372
#>   [73,] 0.5603333
#>   [74,] 1.0792624
#>   [75,] 0.6877086
#>   [76,] 0.9956672
#>   [77,] 1.1539627
#>   [78,] 1.3737293
#>   [79,] 1.1172579
#>   [80,] 1.7609136
#>   [81,] 1.7606409
#>   [82,] 1.0843435
#>   [83,] 1.0391544
#>   [84,] 1.3237926
#>   [85,] 1.2972214
#>   [86,] 0.6538207
#>   [87,] 0.9128491
#>   [88,] 1.2735367
#>   [89,] 0.8835463
#>   [90,] 1.0364150
#>   [91,] 0.6011674
#>   [92,] 1.2433189
#>   [93,] 0.8779952
#>   [94,] 1.2933889
#>   [95,] 0.6693254
#>   [96,] 1.6707474
#>   [97,] 1.1388162
#>   [98,] 0.9666660
#>   [99,] 0.9724515
#>  [100,] 1.4098928
#>  [101,] 0.7014045
#>  [102,] 1.2959198
#>  [103,] 1.2726383
#>  [104,] 1.0510294
#>  [105,] 0.5997140
#>  [106,] 0.9292443
#>  [107,] 0.6892349
#>  [108,] 1.0111266
#>  [109,] 0.9880112
#>  [110,] 0.7677365
#>  [111,] 1.0172826
#>  [112,] 0.9831513
#>  [113,] 0.7350273
#>  [114,] 1.2076883
#>  [115,] 0.8486226
#>  [116,] 0.6638098
#>  [117,] 0.8858061
#>  [118,] 1.1065337
#>  [119,] 0.8181832
#>  [120,] 0.5825269
#>  [121,] 0.7561137
#>  [122,] 0.8546934
#>  [123,] 0.9390679
#>  [124,] 0.6664467
#>  [125,] 1.4272724
#>  [126,] 1.1389855
#>  [127,] 0.8259154
#>  [128,] 0.5013782
#>  [129,] 0.8126935
#>  [130,] 1.1395692
#>  [131,] 1.0823150
#>  [132,] 1.1133039
#>  [133,] 1.6041012
#>  [134,] 0.6971007
#>  [135,] 1.5194445
#>  [136,] 0.9938801
#>  [137,] 1.1152162
#>  [138,] 0.8192982
#>  [139,] 1.1080319
#>  [140,] 1.5606352
#>  [141,] 0.9119187
#>  [142,] 0.9197990
#>  [143,] 1.8287840
#>  [144,] 0.8700202
#>  [145,] 1.9645242
#>  [146,] 1.6417983
#>  [147,] 0.5148557
#>  [148,] 0.6750741
#>  [149,] 0.7916558
#>  [150,] 1.0093801
#>  [151,] 1.1087560
#>  [152,] 1.0323310
#>  [153,] 0.5686147
#>  [154,] 0.7092128
#>  [155,] 1.0359078
#>  [156,] 1.1511209
#>  [157,] 0.8180637
#>  [158,] 0.7749833
#>  [159,] 1.3304363
#>  [160,] 0.7465538
#>  [161,] 1.3350137
#>  [162,] 1.0598828
#>  [163,] 0.8208946
#>  [164,] 0.9063367
#>  [165,] 0.8137848
#>  [166,] 0.6106269
#>  [167,] 0.9150671
#>  [168,] 0.8990379
#>  [169,] 1.2270019
#>  [170,] 0.7979370
#>  [171,] 0.8255631
#>  [172,] 1.1722322
#>  [173,] 1.4838327
#>  [174,] 1.2099435
#>  [175,] 0.6284552
#>  [176,] 0.9288128
#>  [177,] 0.6041701
#>  [178,] 0.6831776
#>  [179,] 0.9598805
#>  [180,] 0.8498210
#>  [181,] 0.9430592
#>  [182,] 0.8708199
#>  [183,] 0.6625819
#>  [184,] 0.9406998
#>  [185,] 0.9487083
#>  [186,] 0.7047242
#>  [187,] 1.9907828
#>  [188,] 1.1440755
#>  [189,] 0.5384188
#>  [190,] 0.6989741
#>  [191,] 1.3103653
#>  [192,] 1.1677814
#>  [193,] 1.3329605
#>  [194,] 2.3209713
#>  [195,] 0.7527412
#>  [196,] 1.0567006
#>  [197,] 1.7768922
#>  [198,] 0.5435581
#>  [199,] 1.0035674
#>  [200,] 1.1812154
#>  [201,] 1.1082398
#>  [202,] 1.8053546
#>  [203,] 1.0054954
#>  [204,] 1.0078684
#>  [205,] 0.8492846
#>  [206,] 1.0205207
#>  [207,] 1.1137879
#>  [208,] 0.8562688
#>  [209,] 0.6994174
#>  [210,] 1.3552481
#>  [211,] 0.7520689
#>  [212,] 1.3661012
#>  [213,] 0.5888261
#>  [214,] 0.8953963
#>  [215,] 0.8150636
#>  [216,] 0.7789827
#>  [217,] 0.9039784
#>  [218,] 0.8467761
#>  [219,] 0.8737351
#>  [220,] 1.0351148
#>  [221,] 0.7102363
#>  [222,] 1.0596318
#>  [223,] 1.3681814
#>  [224,] 0.7661365
#>  [225,] 0.8035687
#>  [226,] 1.0534430
#>  [227,] 0.9381495
#>  [228,] 0.9366137
#>  [229,] 0.7328858
#>  [230,] 0.9703728
#>  [231,] 0.9699247
#>  [232,] 1.0010847
#>  [233,] 0.4650150
#>  [234,] 0.8863725
#>  [235,] 0.8534589
#>  [236,] 0.8746892
#>  [237,] 1.2263261
#>  [238,] 0.7189104
#>  [239,] 0.8681816
#>  [240,] 0.7504904
#>  [241,] 1.2404644
#>  [242,] 1.3925975
#>  [243,] 0.9038100
#>  [244,] 1.4210782
#>  [245,] 1.2154431
#>  [246,] 1.5668783
#>  [247,] 0.7973797
#>  [248,] 0.7333769
#>  [249,] 1.8432705
#>  [250,] 0.7248309
#>  [251,] 1.3272466
#>  [252,] 0.9419466
#>  [253,] 0.9414035
#>  [254,] 0.8043195
#>  [255,] 0.6301096
#>  [256,] 1.3388392
#>  [257,] 0.9734691
#>  [258,] 0.8788891
#>  [259,] 0.8135894
#>  [260,] 0.9112928
#>  [261,] 0.7262377
#>  [262,] 0.6562344
#>  [263,] 0.6285173
#>  [264,] 0.6626485
#>  [265,] 0.7277826
#>  [266,] 1.3272437
#>  [267,] 1.0828800
#>  [268,] 0.7089474
#>  [269,] 0.9037185
#>  [270,] 0.8649888
#>  [271,] 1.3475538
#>  [272,] 1.1886618
#>  [273,] 0.9759341
#>  [274,] 0.9500128
#>  [275,] 1.5233951
#>  [276,] 1.6740989
#>  [277,] 0.6614315
#>  [278,] 1.4218319
#>  [279,] 1.1096433
#>  [280,] 0.9577345
#>  [281,] 0.7254556
#>  [282,] 1.0564484
#>  [283,] 0.7105408
#>  [284,] 0.7162465
#>  [285,] 0.5591512
#>  [286,] 0.8352240
#>  [287,] 2.1914165
#>  [288,] 0.7402952
#>  [289,] 0.8578954
#>  [290,] 1.9343629
#>  [291,] 0.6299966
#>  [292,] 0.9200729
#>  [293,] 1.2529461
#>  [294,] 0.9621568
#>  [295,] 1.0204579
#>  [296,] 0.6169591
#>  [297,] 0.8833314
#>  [298,] 0.8898061
#>  [299,] 1.8358916
#>  [300,] 0.7307148
#>  [301,] 0.6863697
#>  [302,] 1.1401194
#>  [303,] 0.6441706
#>  [304,] 0.6778842
#>  [305,] 1.3205016
#>  [306,] 0.6740172
#>  [307,] 1.2889511
#>  [308,] 1.0790642
#>  [309,] 1.5512467
#>  [310,] 1.2485373
#>  [311,] 0.7197062
#>  [312,] 0.9296760
#>  [313,] 0.6720574
#>  [314,] 0.8065603
#>  [315,] 1.7447716
#>  [316,] 0.8470507
#>  [317,] 1.3695772
#>  [318,] 0.8422093
#>  [319,] 0.8922967
#>  [320,] 0.9024501
#>  [321,] 1.3153443
#>  [322,] 1.6400821
#>  [323,] 0.5985953
#>  [324,] 0.6296445
#>  [325,] 1.2375882
#>  [326,] 0.9909249
#>  [327,] 0.8178083
#>  [328,] 0.6647126
#>  [329,] 0.6664851
#>  [330,] 0.4778668
#>  [331,] 1.6585349
#>  [332,] 0.6226384
#>  [333,] 0.7673077
#>  [334,] 0.9351968
#>  [335,] 1.2885385
#>  [336,] 1.0153524
#>  [337,] 1.5190676
#>  [338,] 0.9031737
#>  [339,] 0.8509853
#>  [340,] 0.9243660
#>  [341,] 1.3091523
#>  [342,] 1.0014282
#>  [343,] 0.6052823
#>  [344,] 1.2399192
#>  [345,] 0.5347929
#>  [346,] 1.0643924
#>  [347,] 1.1904046
#>  [348,] 1.4741304
#>  [349,] 0.6391313
#>  [350,] 1.4748809
#>  [351,] 0.9306039
#>  [352,] 0.9528064
#>  [353,] 1.4178652
#>  [354,] 0.7568040
#>  [355,] 0.7023926
#>  [356,] 2.2572391
#>  [357,] 0.8371392
#>  [358,] 1.4828286
#>  [359,] 0.7484206
#>  [360,] 0.8593508
#>  [361,] 0.8395680
#>  [362,] 0.8689156
#>  [363,] 1.3403258
#>  [364,] 0.6380869
#>  [365,] 0.7717563
#>  [366,] 1.3793262
#>  [367,] 1.1540899
#>  [368,] 0.9421112
#>  [369,] 0.6812937
#>  [370,] 0.9327993
#>  [371,] 1.2591642
#>  [372,] 1.0928608
#>  [373,] 1.6453906
#>  [374,] 0.9764370
#>  [375,] 1.9678159
#>  [376,] 1.0478088
#>  [377,] 0.7671292
#>  [378,] 0.9824492
#>  [379,] 1.0300531
#>  [380,] 0.7106592
#>  [381,] 1.0847988
#>  [382,] 0.9591344
#>  [383,] 0.8120993
#>  [384,] 1.3638276
#>  [385,] 0.7171138
#>  [386,] 1.0636681
#>  [387,] 0.9901124
#>  [388,] 0.9931565
#>  [389,] 0.7851359
#>  [390,] 0.6773715
#>  [391,] 0.7824320
#>  [392,] 1.1970245
#>  [393,] 1.2101028
#>  [394,] 0.7954318
#>  [395,] 0.7021467
#>  [396,] 1.1741918
#>  [397,] 1.4540201
#>  [398,] 0.8607831
#>  [399,] 0.9373327
#>  [400,] 1.4808324
#>  [401,] 0.8554276
#>  [402,] 0.7534945
#>  [403,] 0.8974888
#>  [404,] 1.1705326
#>  [405,] 0.7889481
#>  [406,] 0.7589984
#>  [407,] 0.8620844
#>  [408,] 1.1825575
#>  [409,] 0.8659376
#>  [410,] 1.1230839
#>  [411,] 1.7458615
#>  [412,] 0.6059151
#>  [413,] 1.1057992
#>  [414,] 0.6770837
#>  [415,] 1.2054609
#>  [416,] 0.9434038
#>  [417,] 0.7464708
#>  [418,] 0.9309214
#>  [419,] 1.1063183
#>  [420,] 0.8802585
#>  [421,] 1.6607229
#>  [422,] 1.7440570
#>  [423,] 0.4844714
#>  [424,] 0.6114903
#>  [425,] 1.0448468
#>  [426,] 1.2854724
#>  [427,] 0.6091062
#>  [428,] 0.8745787
#>  [429,] 1.3216387
#>  [430,] 0.8172900
#>  [431,] 1.0338690
#>  [432,] 0.9644774
#>  [433,] 0.7265686
#>  [434,] 1.2062276
#>  [435,] 1.7049123
#>  [436,] 0.7488469
#>  [437,] 1.7364619
#>  [438,] 1.2665519
#>  [439,] 0.7153099
#>  [440,] 0.8606825
#>  [441,] 1.5132311
#>  [442,] 0.6483690
#>  [443,] 1.0582730
#>  [444,] 0.9066922
#>  [445,] 0.9121565
#>  [446,] 1.1049392
#>  [447,] 0.9345480
#>  [448,] 0.8581227
#>  [449,] 0.8278297
#>  [450,] 0.8308542
#>  [451,] 0.8722503
#>  [452,] 1.0740204
#>  [453,] 0.6246592
#>  [454,] 1.0377581
#>  [455,] 0.8550189
#>  [456,] 1.2782541
#>  [457,] 0.8161852
#>  [458,] 0.6078996
#>  [459,] 1.7876346
#>  [460,] 0.9953494
#>  [461,] 1.0359077
#>  [462,] 0.5931389
#>  [463,] 0.9763285
#>  [464,] 0.7785699
#>  [465,] 1.2275830
#>  [466,] 1.0316672
#>  [467,] 0.9780663
#>  [468,] 0.9178922
#>  [469,] 0.8294111
#>  [470,] 1.9983100
#>  [471,] 0.8578433
#>  [472,] 0.6995918
#>  [473,] 0.6596398
#>  [474,] 0.4764144
#>  [475,] 0.7396366
#>  [476,] 1.0265949
#>  [477,] 1.6810928
#>  [478,] 1.5650237
#>  [479,] 1.1461435
#>  [480,] 1.3645733
#>  [481,] 0.7034269
#>  [482,] 1.5753587
#>  [483,] 0.8221163
#>  [484,] 1.2846283
#>  [485,] 0.7803458
#>  [486,] 0.7611594
#>  [487,] 0.9184374
#>  [488,] 1.2526676
#>  [489,] 0.9057950
#>  [490,] 0.7079296
#>  [491,] 0.5832961
#>  [492,] 0.8036449
#>  [493,] 0.9422888
#>  [494,] 0.4739941
#>  [495,] 1.0836679
#>  [496,] 0.7031226
#>  [497,] 0.5502235
#>  [498,] 0.9811191
#>  [499,] 0.7076089
#>  [500,] 1.4389203
#>  [501,] 0.7823037
#>  [502,] 0.8339905
#>  [503,] 0.9448213
#>  [504,] 1.7913334
#>  [505,] 1.8917217
#>  [506,] 0.8064162
#>  [507,] 1.2084208
#>  [508,] 1.0535119
#>  [509,] 1.4960506
#>  [510,] 0.8358387
#>  [511,] 0.7548398
#>  [512,] 1.0884761
#>  [513,] 0.9383753
#>  [514,] 1.0103351
#>  [515,] 0.7331133
#>  [516,] 1.4741732
#>  [517,] 1.7024286
#>  [518,] 0.6601450
#>  [519,] 0.8457698
#>  [520,] 0.7774610
#>  [521,] 1.3134715
#>  [522,] 0.9619583
#>  [523,] 1.6215090
#>  [524,] 0.9883326
#>  [525,] 0.9276166
#>  [526,] 0.7059061
#>  [527,] 0.7799037
#>  [528,] 1.9536577
#>  [529,] 1.9291888
#>  [530,] 0.8549566
#>  [531,] 0.5434178
#>  [532,] 0.7235153
#>  [533,] 1.1558568
#>  [534,] 0.7456069
#>  [535,] 0.6947688
#>  [536,] 1.1078510
#>  [537,] 0.7668371
#>  [538,] 0.7193859
#>  [539,] 1.0681887
#>  [540,] 1.5172228
#>  [541,] 0.7104891
#>  [542,] 1.2081740
#>  [543,] 2.0366980
#>  [544,] 1.0416618
#>  [545,] 0.5189216
#>  [546,] 0.6865202
#>  [547,] 0.7815814
#>  [548,] 0.7088589
#>  [549,] 1.4889049
#>  [550,] 1.0560971
#>  [551,] 0.8639523
#>  [552,] 0.9633115
#>  [553,] 1.2579387
#>  [554,] 0.5780766
#>  [555,] 0.6906257
#>  [556,] 1.1344047
#>  [557,] 0.7918991
#>  [558,] 1.0280689
#>  [559,] 1.8855415
#>  [560,] 0.6728176
#>  [561,] 0.9351873
#>  [562,] 0.7835064
#>  [563,] 0.7723128
#>  [564,] 1.2513756
#>  [565,] 0.9846039
#>  [566,] 1.1709260
#>  [567,] 0.7908743
#>  [568,] 0.5904268
#>  [569,] 1.1136306
#>  [570,] 1.2114349
#>  [571,] 1.2190082
#>  [572,] 1.2043075
#>  [573,] 0.9140627
#>  [574,] 0.9603078
#>  [575,] 0.8354833
#>  [576,] 0.4359665
#>  [577,] 0.6925062
#>  [578,] 0.5296785
#>  [579,] 0.8016415
#>  [580,] 1.1441519
#>  [581,] 0.8666869
#>  [582,] 1.4463340
#>  [583,] 0.8674752
#>  [584,] 1.0823548
#>  [585,] 1.1558040
#>  [586,] 0.6535516
#>  [587,] 1.3486791
#>  [588,] 0.9767452
#>  [589,] 1.5868028
#>  [590,] 0.3956204
#>  [591,] 0.6743863
#>  [592,] 0.9551443
#>  [593,] 1.2731050
#>  [594,] 0.6479865
#>  [595,] 0.7545898
#>  [596,] 1.2570531
#>  [597,] 1.3569196
#>  [598,] 0.7346170
#>  [599,] 0.8644662
#>  [600,] 0.8191640
#>  [601,] 0.8982258
#>  [602,] 1.1596930
#>  [603,] 0.8609344
#>  [604,] 0.8054256
#>  [605,] 1.0410672
#>  [606,] 1.1752807
#>  [607,] 1.3009299
#>  [608,] 0.9307784
#>  [609,] 1.1432056
#>  [610,] 1.1884497
#>  [611,] 1.0971034
#>  [612,] 0.6526270
#>  [613,] 0.8848010
#>  [614,] 0.7541204
#>  [615,] 0.9884204
#>  [616,] 1.0674496
#>  [617,] 0.6855601
#>  [618,] 0.8433175
#>  [619,] 1.2771143
#>  [620,] 0.9511900
#>  [621,] 1.0403872
#>  [622,] 0.7933560
#>  [623,] 0.9158260
#>  [624,] 0.8011235
#>  [625,] 1.4580732
#>  [626,] 1.0012664
#>  [627,] 0.7693067
#>  [628,] 0.6217342
#>  [629,] 0.7399994
#>  [630,] 1.0470811
#>  [631,] 1.3808862
#>  [632,] 0.7138155
#>  [633,] 0.8726220
#>  [634,] 0.7151031
#>  [635,] 0.6742638
#>  [636,] 1.3628731
#>  [637,] 1.0005005
#>  [638,] 1.2201187
#>  [639,] 0.8985517
#>  [640,] 1.2286002
#>  [641,] 0.9956934
#>  [642,] 0.8268293
#>  [643,] 0.8894780
#>  [644,] 0.5401668
#>  [645,] 1.0971106
#>  [646,] 1.1623216
#>  [647,] 1.5136839
#>  [648,] 0.8276973
#>  [649,] 0.6683592
#>  [650,] 1.2259205
#>  [651,] 0.8985816
#>  [652,] 1.4352191
#>  [653,] 0.9375068
#>  [654,] 0.8292966
#>  [655,] 0.7019219
#>  [656,] 0.9733867
#>  [657,] 1.0269351
#>  [658,] 1.6515032
#>  [659,] 0.9366514
#>  [660,] 1.5818684
#>  [661,] 1.1353547
#>  [662,] 0.8731565
#>  [663,] 1.0493154
#>  [664,] 0.9809736
#>  [665,] 0.8635456
#>  [666,] 0.9451280
#>  [667,] 0.9929776
#>  [668,] 1.1672250
#>  [669,] 1.0223090
#>  [670,] 0.8134228
#>  [671,] 0.9496491
#>  [672,] 1.5514118
#>  [673,] 0.8702766
#>  [674,] 0.8132107
#>  [675,] 0.6736579
#>  [676,] 1.1266859
#>  [677,] 0.8529224
#>  [678,] 0.7234275
#>  [679,] 0.7987287
#>  [680,] 1.2862049
#>  [681,] 1.2404025
#>  [682,] 1.0409733
#>  [683,] 0.7542593
#>  [684,] 0.8242939
#>  [685,] 1.3128033
#>  [686,] 1.7370825
#>  [687,] 0.7487067
#>  [688,] 1.3894366
#>  [689,] 0.9151165
#>  [690,] 0.8245849
#>  [691,] 0.8000435
#>  [692,] 0.5581690
#>  [693,] 0.8582368
#>  [694,] 1.1496686
#>  [695,] 0.9529480
#>  [696,] 0.4048984
#>  [697,] 0.9544107
#>  [698,] 1.7794791
#>  [699,] 1.7181144
#>  [700,] 1.0150988
#>  [701,] 1.4176774
#>  [702,] 0.7725295
#>  [703,] 1.0204540
#>  [704,] 1.1828600
#>  [705,] 1.0542524
#>  [706,] 1.2442629
#>  [707,] 0.6345903
#>  [708,] 0.9783662
#>  [709,] 0.8100225
#>  [710,] 0.9363165
#>  [711,] 0.9708793
#>  [712,] 1.4226228
#>  [713,] 1.3636262
#>  [714,] 0.7867699
#>  [715,] 0.7221872
#>  [716,] 1.8007764
#>  [717,] 0.7556994
#>  [718,] 1.2450937
#>  [719,] 1.7678081
#>  [720,] 1.4720045
#>  [721,] 0.8051760
#>  [722,] 1.2316725
#>  [723,] 1.1552528
#>  [724,] 1.1147559
#>  [725,] 0.4475676
#>  [726,] 0.5541721
#>  [727,] 0.5714557
#>  [728,] 1.3471939
#>  [729,] 1.2537754
#>  [730,] 0.8659404
#>  [731,] 0.6049623
#>  [732,] 0.9567231
#>  [733,] 0.5568809
#>  [734,] 0.5469749
#>  [735,] 1.1538786
#>  [736,] 1.0219848
#>  [737,] 1.4813168
#>  [738,] 1.1066763
#>  [739,] 0.7742480
#>  [740,] 1.0802995
#>  [741,] 0.7742644
#>  [742,] 0.6697321
#>  [743,] 1.4354196
#>  [744,] 0.6926150
#>  [745,] 1.1916226
#>  [746,] 0.7885631
#>  [747,] 1.0278294
#>  [748,] 0.8370839
#>  [749,] 0.7204587
#>  [750,] 0.5936771
#>  [751,] 0.7089669
#>  [752,] 1.8064896
#>  [753,] 2.0890791
#>  [754,] 0.4757879
#>  [755,] 0.8154736
#>  [756,] 1.3886326
#>  [757,] 1.2413274
#>  [758,] 0.8314633
#>  [759,] 0.8718731
#>  [760,] 1.1043499
#>  [761,] 1.0096952
#>  [762,] 1.3830563
#>  [763,] 0.8025170
#>  [764,] 0.8235161
#>  [765,] 0.9731338
#>  [766,] 0.7963921
#>  [767,] 0.5573607
#>  [768,] 0.8812069
#>  [769,] 0.4677684
#>  [770,] 0.7332486
#>  [771,] 1.1375611
#>  [772,] 1.0524143
#>  [773,] 0.8071405
#>  [774,] 0.7306811
#>  [775,] 0.7212262
#>  [776,] 0.5407550
#>  [777,] 1.2956851
#>  [778,] 0.6571064
#>  [779,] 0.9424417
#>  [780,] 1.9922207
#>  [781,] 0.7776595
#>  [782,] 0.6009430
#>  [783,] 1.0087332
#>  [784,] 0.8224520
#>  [785,] 0.7586746
#>  [786,] 1.0132349
#>  [787,] 0.9342463
#>  [788,] 0.8219402
#>  [789,] 1.0383969
#>  [790,] 0.7907424
#>  [791,] 1.0490833
#>  [792,] 1.1151480
#>  [793,] 0.7313581
#>  [794,] 0.8152131
#>  [795,] 1.4034704
#>  [796,] 1.1078395
#>  [797,] 1.4529280
#>  [798,] 0.6877606
#>  [799,] 0.6346678
#>  [800,] 0.6483293
#>  [801,] 1.2217072
#>  [802,] 0.8892187
#>  [803,] 0.5338001
#>  [804,] 0.5334233
#>  [805,] 1.4510176
#>  [806,] 1.0677685
#>  [807,] 0.8406673
#>  [808,] 0.7882832
#>  [809,] 1.5590348
#>  [810,] 1.6374935
#>  [811,] 0.6637083
#>  [812,] 0.8913590
#>  [813,] 1.3026003
#>  [814,] 0.6318690
#>  [815,] 0.9269963
#>  [816,] 1.6266259
#>  [817,] 1.3770269
#>  [818,] 0.6033761
#>  [819,] 0.8732434
#>  [820,] 0.7373360
#>  [821,] 1.4730868
#>  [822,] 0.9889921
#>  [823,] 2.1625350
#>  [824,] 1.4529583
#>  [825,] 1.1014370
#>  [826,] 1.4641331
#>  [827,] 1.0312518
#>  [828,] 0.6382718
#>  [829,] 0.9173774
#>  [830,] 1.5888668
#>  [831,] 1.1756161
#>  [832,] 1.0960106
#>  [833,] 0.9421940
#>  [834,] 0.8238652
#>  [835,] 0.9923217
#>  [836,] 1.0297046
#>  [837,] 1.0362681
#>  [838,] 1.2743839
#>  [839,] 0.7973846
#>  [840,] 0.7077915
#>  [841,] 1.0112909
#>  [842,] 1.3691668
#>  [843,] 0.9185818
#>  [844,] 0.7629791
#>  [845,] 1.0920081
#>  [846,] 0.8241907
#>  [847,] 0.8643565
#>  [848,] 1.3196447
#>  [849,] 1.7495198
#>  [850,] 1.5492724
#>  [851,] 1.0791598
#>  [852,] 1.0397709
#>  [853,] 0.8290288
#>  [854,] 1.0146800
#>  [855,] 1.1793008
#>  [856,] 0.7079329
#>  [857,] 1.2932532
#>  [858,] 0.9453042
#>  [859,] 1.0824408
#>  [860,] 0.7418678
#>  [861,] 0.5831474
#>  [862,] 1.1777654
#>  [863,] 2.4874771
#>  [864,] 0.8848564
#>  [865,] 0.8786902
#>  [866,] 0.6911995
#>  [867,] 0.8579380
#>  [868,] 1.4615941
#>  [869,] 1.0657856
#>  [870,] 1.1443191
#>  [871,] 0.9075079
#>  [872,] 1.0604643
#>  [873,] 1.4023026
#>  [874,] 0.6933357
#>  [875,] 1.2385918
#>  [876,] 1.0615375
#>  [877,] 1.0845963
#>  [878,] 0.6128211
#>  [879,] 0.8512849
#>  [880,] 0.9721334
#>  [881,] 1.2672586
#>  [882,] 0.9338662
#>  [883,] 1.4040924
#>  [884,] 1.0588128
#>  [885,] 0.8148629
#>  [886,] 0.6490924
#>  [887,] 1.3083902
#>  [888,] 1.4072160
#>  [889,] 1.0224220
#>  [890,] 0.8804836
#>  [891,] 1.0127891
#>  [892,] 1.0185580
#>  [893,] 1.1571155
#>  [894,] 0.9975896
#>  [895,] 0.8183183
#>  [896,] 0.6848833
#>  [897,] 0.9655695
#>  [898,] 0.7918540
#>  [899,] 1.0197285
#>  [900,] 1.2106886
#>  [901,] 0.9803564
#>  [902,] 0.8171101
#>  [903,] 0.8037701
#>  [904,] 0.5300094
#>  [905,] 0.6733255
#>  [906,] 0.6945760
#>  [907,] 1.2784632
#>  [908,] 1.1466171
#>  [909,] 1.4733182
#>  [910,] 1.0131378
#>  [911,] 0.9510904
#>  [912,] 0.6319892
#>  [913,] 1.0781618
#>  [914,] 0.7963497
#>  [915,] 1.1365907
#>  [916,] 0.7126824
#>  [917,] 0.6192234
#>  [918,] 0.7195034
#>  [919,] 1.1108495
#>  [920,] 1.2845151
#>  [921,] 0.9564577
#>  [922,] 0.7583165
#>  [923,] 0.7103446
#>  [924,] 1.0829406
#>  [925,] 1.1568318
#>  [926,] 0.6914785
#>  [927,] 0.6376287
#>  [928,] 1.7630340
#>  [929,] 0.9112895
#>  [930,] 0.8989819
#>  [931,] 1.2579446
#>  [932,] 0.6436369
#>  [933,] 0.7013026
#>  [934,] 1.2993422
#>  [935,] 0.9298203
#>  [936,] 0.7820952
#>  [937,] 0.8500564
#>  [938,] 1.1252524
#>  [939,] 1.0193542
#>  [940,] 0.9643346
#>  [941,] 0.9309097
#>  [942,] 0.8858247
#>  [943,] 0.8755095
#>  [944,] 0.7054782
#>  [945,] 0.9749635
#>  [946,] 1.6991017
#>  [947,] 1.0283466
#>  [948,] 0.6339922
#>  [949,] 1.1633279
#>  [950,] 1.1194328
#>  [951,] 0.5613279
#>  [952,] 0.7251447
#>  [953,] 0.7243931
#>  [954,] 0.6126621
#>  [955,] 1.4964693
#>  [956,] 0.7963469
#>  [957,] 0.7598587
#>  [958,] 0.6308225
#>  [959,] 0.8371519
#>  [960,] 0.9082693
#>  [961,] 1.0245621
#>  [962,] 1.0177938
#>  [963,] 0.9485157
#>  [964,] 1.2043504
#>  [965,] 0.9168104
#>  [966,] 0.8546509
#>  [967,] 0.7901586
#>  [968,] 1.6001683
#>  [969,] 0.8670428
#>  [970,] 0.7034568
#>  [971,] 0.5832549
#>  [972,] 1.3322220
#>  [973,] 1.3458454
#>  [974,] 1.5589628
#>  [975,] 0.6820118
#>  [976,] 0.7376066
#>  [977,] 1.6585005
#>  [978,] 0.8714832
#>  [979,] 0.7971287
#>  [980,] 0.8019669
#>  [981,] 1.2204099
#>  [982,] 0.8409628
#>  [983,] 1.9765763
#>  [984,] 1.1374678
#>  [985,] 0.6356378
#>  [986,] 1.2016075
#>  [987,] 1.2076889
#>  [988,] 1.2502163
#>  [989,] 1.2198951
#>  [990,] 1.1130966
#>  [991,] 1.4311269
#>  [992,] 0.8670789
#>  [993,] 1.1641184
#>  [994,] 1.0529723
#>  [995,] 1.4915810
#>  [996,] 0.5282907
#>  [997,] 1.2227500
#>  [998,] 0.8535826
#>  [999,] 0.8930160
#> 
#> $model.matrix
#>    (Intercept) peak_factors$colony1
#> 1            1                   -1
#> 2            1                   -1
#> 3            1                   -1
#> 4            1                    1
#> 5            1                   -1
#> 6            1                   -1
#> 7            1                   -1
#> 8            1                    1
#> 9            1                    1
#> 10           1                   -1
#> 11           1                   -1
#> 12           1                   -1
#> 13           1                   -1
#> 14           1                   -1
#> 15           1                    1
#> 16           1                    1
#> 17           1                    1
#> 18           1                    1
#> 19           1                    1
#> 20           1                   -1
#> 21           1                   -1
#> 22           1                   -1
#> 23           1                   -1
#> 24           1                   -1
#> 25           1                    1
#> 26           1                   -1
#> 27           1                   -1
#> 28           1                    1
#> 29           1                    1
#> 30           1                    1
#> 31           1                    1
#> 32           1                    1
#> 33           1                    1
#> 34           1                    1
#> 35           1                    1
#> 36           1                    1
#> 37           1                    1
#> 38           1                   -1
#> 39           1                   -1
#> 40           1                   -1
#> 41           1                    1
#> 42           1                   -1
#> 43           1                   -1
#> 44           1                   -1
#> 45           1                    1
#> 46           1                   -1
#> 47           1                   -1
#> 48           1                   -1
#> 49           1                    1
#> 50           1                    1
#> 51           1                   -1
#> 52           1                   -1
#> 53           1                   -1
#> 54           1                   -1
#> 55           1                   -1
#> 56           1                    1
#> 57           1                    1
#> 58           1                    1
#> 59           1                    1
#> 60           1                    1
#> 61           1                   -1
#> 62           1                   -1
#> 63           1                   -1
#> 64           1                   -1
#> 65           1                   -1
#> 66           1                    1
#> 67           1                   -1
#> 68           1                   -1
#> 69           1                    1
#> 70           1                    1
#> 71           1                    1
#> 72           1                    1
#> 73           1                    1
#> 74           1                    1
#> 75           1                    1
#> 76           1                    1
#> 77           1                    1
#> 78           1                    1
#> 79           1                   -1
#> 80           1                   -1
#> 81           1                   -1
#> 82           1                    1
#> 
#> $terms
#> scent ~ peak_factors$colony
#> attr(,"variables")
#> list(scent, peak_factors$colony)
#> attr(,"factors")
#>                     peak_factors$colony
#> scent                                 0
#> peak_factors$colony                   1
#> attr(,"term.labels")
#> [1] "peak_factors$colony"
#> attr(,"order")
#> [1] 1
#> attr(,"intercept")
#> [1] 1
#> attr(,"response")
#> [1] 1
#> attr(,".Environment")
#> <environment: R_GlobalEnv>
#> 
#> attr(,"class")
#> [1] "adonis"
## no dispersion effect
anova(vegan::betadisper(vegan::vegdist(scent),peak_factors$colony))
#> Analysis of Variance Table
#> 
#> Response: Distances
#>           Df   Sum Sq   Mean Sq F value Pr(>F)
#> Groups     1 0.000791 0.0007913   0.222 0.6388
#> Residuals 80 0.285197 0.0035650

References

Ottensmann, Meinolf, Martin A Stoffel, Hazel J Nichols, and Joseph I Hoffman. 2018. “GCalignR: An r Package for Aligning Gas-Chromatography Data for Ecological and Evolutionary Studies.” PloS One 13 (6): e0198311.
Stoffel, Martin A, Barbara A Caspers, Jaume Forcada, Athina Giannakara, Markus Baier, Luke Eberhart-Phillips, Caroline Müller, and Joseph I Hoffman. 2015. “Chemical Fingerprints Encode Mother–Offspring Similarity, Colony Membership, Relatedness, and Genetic Quality in Fur Seals.” Proceedings of the National Academy of Sciences 112 (36): E5005–12.