Efeito da biomassa e sobrenadante de Bacillus alcalophilus na germinação de conídios de Colletotrichum spp.

Autores

Prof. Dr. Walmes Zeviani

Débora Petermann

1 Sobre o experimento

Introdução

Este estudo se concentrou em avaliar o efeito de diferentes tempos de cultivo (24 ou 48 horas) da bactéria Bacillus alcalophilus e a separação da biomassa e do sobrenadante dessa bactéria na germinação de conídios de duas espécies de fungos: Colletotrichum nymphaeae e Colletotrichum chrysophilum, ambas sensíveis e com sensibilidade reduzida a fungicidas. A variável resposta foi o diâmetro das colônias de fungos, expresso em milímetros.

Materiais e Métodos

Os experimentos 1 e 2 foram conduzidos no Laboratório de Epidemiologia para o Manejo Integrado de Doenças de Plantas (LEMID) pela aluna de mestrado Débora Petermann, sob a orientação da professora doutora Louise Larissa May De Mio.

  • Experimento 1:
    • Data de montagem: 17 de setembro de 2019
    • Data de avaliação: 24 de setembro de 2019
  • Experimento 2:
    • Data de montagem: 17 de setembro de 2019
    • Data de avaliação: 24 de setembro de 2019

Os experimentos foram conduzidos em um delineamento inteiramente casualizado (DIC) com 5 tratamentos e 4 isolados, totalizando 20 combinações experimentais, cada uma com 5 repetições. Os tratamentos utilizados foram:

  1. (24SBa) Sobrenadante da bactéria B. alcalophilus cultivada no laboratório por 24 horas;
  2. (24BBa) Biomassa da bactéria B. alcalophilus cultivada no laboratório por 24 horas;
  3. (48SBa) Sobrenadante da bactéria B. alcalophilus cultivada no laboratório por 48 horas;
  4. (48BBa) Biomassa da bactéria B. alcalophilus cultivada no laboratório por 48 horas;
  5. (Controle) Testemunha composta por água esterilizada.

Os isolados utilizados foram:

  • MdCn-CA32M: C. nymphaeae sensível a fungicidas;
  • MdCn-179: C. nymphaeae sensibilidade reduzida a fungicidas;
  • MdCc-Col33: C. chrysophillum sensível a fungicidas;
  • MdCc-134: C. chrysophillum sensibilidade reduzida a fungicidas.

Análise Estatística

O objetivo da análise estatística é realizar uma análise fatorial, onde um dos fatores é composto pelos tratamentos (os 5) e o segundo fator pelos isolados. No entanto, a análise se concentra na comparação entre os dois isolados de C. nymphaeae (sensível e sensibilidade reduzida) e os dois isolados de C. chrysophilum (sensível e sensibilidade reduzida). Além disso, os experimentos 1 e 2 serão analisados separadamente.

O crescimento apresentou vários zeros indicando que não houve germinação. Para contornar o muito provável afastamento dos pressupostos decorrente do excesso de valores iguais a zero, optou-se por cortar os valores em classe e análisar como resposta de sobreviência, ainda mantendo a suposição de distribuição normal. Dessa maneira, valores iguais a zero ou muito próximo de, que caírem na primeira classe, serão considerados censuras intervalares. Valores positivos que estiverem além da primeira classe, não serão considerados censurados. Para amplitude de classe considerou-se 2.5 mm.

Ao final, pode-se apresentar as médias amostrais de diâmetro ao lado das estimativas obtidas com o modelo de sobreviência.

2 Análise de dados

Código
#-----------------------------------------------------------------------
# Pacotes.

# options(warn = -1)

library(car)
library(emmeans)
library(survival)
library(tidyverse)

#-----------------------------------------------------------------------
# Importação e preparo.

# Importação.
tb <- readxl::read_excel(
    "analises_artigo_mestrado.xlsx",
    sheet = "Tcc-germ")

# Nomes em caixa baixa.
tb <- tb |>
    rename_with(tolower) |>
    rename("diameter" = "colony diameter (mm)")
str(tb)
tibble [200 × 7] (S3: tbl_df/tbl/data.frame)
 $ experiment: num [1:200] 1 1 1 1 1 1 1 1 1 1 ...
 $ treatment : chr [1:200] "24BBa" "24BBa" "24BBa" "24BBa" ...
 $ isolated  : chr [1:200] "MdCn-CA32M" "MdCn-CA32M" "MdCn-CA32M" "MdCn-CA32M" ...
 $ species   : chr [1:200] "C. nymphaeae" "C. nymphaeae" "C. nymphaeae" "C. nymphaeae" ...
 $ phenotype : chr [1:200] "Sensitive" "Sensitive" "Sensitive" "Sensitive" ...
 $ repetition: num [1:200] 1 2 3 4 5 1 2 3 4 5 ...
 $ diameter  : num [1:200] 21.2 0 0 0 0 ...
Código
# Alguns erros de digitação da `specie` precisam ser corrigidos.
tb_fix <-
    tb |>
    count(isolated, species, phenotype, sort = TRUE) |>
    slice_head(n = 4)

# Corrigindo valores de `specie` e `phenotype` para `isolated`.
tb <-
    tb |>
    select(-species, -phenotype) |>
    left_join(tb_fix[, 1:3], by = "isolated")

# Variáveis `specie` e `phenotype` são características do isolado.
tb |>
    count(isolated, species, phenotype, sort = TRUE)
# A tibble: 4 × 4
  isolated    species          phenotype               n
  <chr>       <chr>            <chr>               <int>
1 MdCc-Col134 C. chrysophillum Reduced sensitivity    50
2 MdCc-Col33  C. chrysophillum Sensitive              50
3 MdCn-179    C. nymphaeae     Reduced sensitivity    50
4 MdCn-CA32M  C. nymphaeae     Sensitive              50
Código
# Variável `experiment` é a repetição do experimento.
tb |>
    xtabs(formula = ~treatment + experiment)
         experiment
treatment  1  2
  24BBa   20 20
  24SBa   20 20
  48BBa   20 20
  48SBa   20 20
  Control 20 20
Código
# A frequência de cada combinação experimental.
tb |>
    xtabs(formula = ~experiment + isolated + treatment) |>
    ftable()
                       treatment 24BBa 24SBa 48BBa 48SBa Control
experiment isolated                                             
1          MdCc-Col134               5     5     5     5       5
           MdCc-Col33                5     5     5     5       5
           MdCn-179                  5     5     5     5       5
           MdCn-CA32M                5     5     5     5       5
2          MdCc-Col134               5     5     5     5       5
           MdCc-Col33                5     5     5     5       5
           MdCn-179                  5     5     5     5       5
           MdCn-CA32M                5     5     5     5       5
Código
# Criar variáveis para indicar o tempo e a fonte do material inibidor.
tb <-
    tb |>
    mutate(
        time = ifelse(treatment == "Control",
                      0,
                      str_extract(treatment, "^[0-9]+")),
        time = as.integer(time),
        font = ifelse(treatment == "Control",
                      "Control",
                      str_extract(treatment, ".{3}$")),
        font = fct_relevel(font, "Control")
    )

# tb |>
#     xtabs(formula = ~time + font)

# Passa para fator.
tb <- tb |>
    mutate_at(c("treatment", "isolated", "experiment"), factor)
Código
#-----------------------------------------------------------------------
# Visualização.

ggplot(data = tb,
       mapping = aes(x = treatment, y = diameter,
                     color = isolated, group = isolated)) +
    facet_grid(facets = ~experiment) +
    geom_point() +
    stat_summary(fun = "mean", geom = "line")

Código
# ggplot(data = tb,
#        mapping = aes(x = time, y = diameter,
#                      color = isolated)) +
#     facet_grid(facets = font ~ experiment) +
#     geom_point() +
#     stat_summary(fun = "mean", geom = "line")

# ATTENTION: Presença de zeros que corresponde a esporos que não
# germinaram.

# Qual a frequência de zeros?
tb |>
    mutate(zero = ifelse(diameter == 0, "zero", "positive")) |>
    count(treatment, experiment, isolated, zero) |>
    pivot_wider(names_from = zero,
                values_from = n,
                values_fill = 0) |>
    arrange(zero) |>
    print(n = Inf)
# A tibble: 40 × 5
   treatment experiment isolated    positive  zero
   <fct>     <fct>      <fct>          <int> <int>
 1 24BBa     1          MdCc-Col134        5     0
 2 24SBa     1          MdCc-Col134        5     0
 3 24SBa     1          MdCc-Col33         5     0
 4 24SBa     1          MdCn-179           5     0
 5 24SBa     1          MdCn-CA32M         5     0
 6 24SBa     2          MdCc-Col134        5     0
 7 24SBa     2          MdCc-Col33         5     0
 8 24SBa     2          MdCn-179           5     0
 9 48SBa     1          MdCc-Col134        5     0
10 48SBa     1          MdCc-Col33         5     0
11 48SBa     1          MdCn-CA32M         5     0
12 48SBa     2          MdCc-Col134        5     0
13 Control   1          MdCc-Col134        5     0
14 Control   1          MdCc-Col33         5     0
15 Control   1          MdCn-179           5     0
16 Control   1          MdCn-CA32M         5     0
17 Control   2          MdCc-Col134        5     0
18 Control   2          MdCc-Col33         5     0
19 Control   2          MdCn-179           5     0
20 Control   2          MdCn-CA32M         5     0
21 24BBa     1          MdCc-Col33         4     1
22 48BBa     1          MdCc-Col134        4     1
23 48BBa     1          MdCc-Col33         4     1
24 48BBa     1          MdCn-CA32M         4     1
25 48SBa     2          MdCc-Col33         4     1
26 24BBa     1          MdCn-179           1     4
27 24BBa     1          MdCn-CA32M         1     4
28 24SBa     2          MdCn-CA32M         1     4
29 48SBa     1          MdCn-179           1     4
30 48SBa     2          MdCn-CA32M         1     4
31 24BBa     2          MdCc-Col134        0     5
32 24BBa     2          MdCc-Col33         0     5
33 24BBa     2          MdCn-179           0     5
34 24BBa     2          MdCn-CA32M         0     5
35 48BBa     1          MdCn-179           0     5
36 48BBa     2          MdCc-Col134        0     5
37 48BBa     2          MdCc-Col33         0     5
38 48BBa     2          MdCn-179           0     5
39 48BBa     2          MdCn-CA32M         0     5
40 48SBa     2          MdCn-179           0     5
Código
# Algumas combinações experimentais tem todas as repetições com zero de
# crescimento micelial. Isso corresponde a problemas com pressupostos.
# Seria interessante cortar em classes de crescimento micelial e
# analisar como uma resposta de sobreviência.

# Faça um histograma da variável `diameter` por `experiment`.
ggplot(data = tb,
       aes(x = diameter)) +
    facet_wrap(facets = ~experiment, ncol = 1) +
    geom_histogram(binwidth = 2.5, color = "black") +
    geom_rug()

Código
#-----------------------------------------------------------------------
# Corta a resposta em classe.

# Cortar a resposta em classes.
binwidth <- 2.5
breaks <- seq(from = 0,
              to = max(tb$diameter) + binwidth,
              by = binwidth)
tb$diameter_class <- cut(tb$diameter,
                         breaks = breaks,
                         include.lowest = TRUE)

# Separar valores para criar os limites do intervalo.
tb <-
    tb |>
    mutate(newvalue = as.character(diameter_class),
           newvalue = trimws(
               str_replace_all(newvalue,
                               pattern = "[\\[(\\]]",
                               replacement = " "))) |>
    separate(newvalue,
             into = c("left", "right"),
             sep = ",",
             convert = TRUE)

# IMPORTANT: Aqui foi feito censura intervalar para a primeira classe
# que é o intervalo que contém o 0. Valores positivos que cairam nas
# demais classes são declarados com eventos sem censura.

# `i` indica se é a classe que contém o 0 ou não.
tb <-
    tb |>
    mutate(i = diameter_class == levels(diameter_class)[1],
           status = ifelse(i, yes = 3, no = 1),
           right = ifelse(i, yes = right, no = diameter),
           left = ifelse(i, yes = left, no = diameter))

2.1 Experimento 1

Código
#-----------------------------------------------------------------------
# Experimento 1 --------------------------------------------------------

tbi <- tb |>
    filter(experiment == "1")

# Ajuste do modelo.
m0 <- survreg(
    formula = Surv(
        time = left + 0.01,
        time2 = right,
        event = status,
        type = "interval") ~ treatment * isolated,
    dist = "gaussian",
    # dist = "loggaussian",
    # dist = "loglogistic",
    # dist = "weibull",
    data = tbi)

# logLik(m0)
# AIC(m0)
# BIC(m0)

# Quadro de análise de deviance.
# anova(m0)
Anova(m0)
Analysis of Deviance Table (Type II tests)
                   LR Chisq Df Pr(>Chisq)    
treatment            77.182  4  6.882e-16 ***
isolated             58.075  3  1.515e-12 ***
treatment:isolated   37.183 12  0.0002086 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Código
# Comparar entre isolados de mesma espécie.
tb_iso <-
    tbi |>
    distinct(species, isolated) |>
    with({
        split(as.character(isolated), species)
    })
tb_iso
$`C. chrysophillum`
[1] "MdCc-Col33"  "MdCc-Col134"

$`C. nymphaeae`
[1] "MdCn-CA32M" "MdCn-179"  
Código
# Para armazenar as comparações de médias.
tb_means <- list(isolated = NULL, treatment = NULL)

# Aplica o teste de comparação de médias separado por espécie.
tb_means$isolated[["C. nymphaeae"]] <-
    emmeans(m0,
            specs = ~isolated | treatment,
            at = list(isolated = tb_iso[["C. nymphaeae"]])) |>
    multcomp::cld(Letters = letters, reversed = TRUE) |>
    as.data.frame() |>
    mutate(.group = trimws(.group))
tb_means$isolated[["C. chrysophillum"]] <-
    emmeans(m0,
            specs = ~isolated | treatment,
            at = list(isolated = tb_iso[["C. chrysophillum"]])) |>
    multcomp::cld(Letters = letters, reversed = TRUE) |>
    as.data.frame() |>
    mutate(.group = trimws(.group))
tb_means$isolated <- bind_rows(tb_means$isolated, .id = "Specie")

if (m0$dist == "weibull") {
    tb_means$isolated <-
        tb_means$isolated |>
        mutate(weibull_shape = 1/m0[["scale"]]) |>
        mutate_at(c("emmean", "lower.CL", "upper.CL"),
                  ~exp(.) * gamma(1 + 1/weibull_shape)) |>
        mutate(weibull_shape = NULL)
}

ggplot(data = tb_means$isolated,
       mapping = aes(y = isolated, x = emmean)) +
    facet_grid(facets = treatment ~ .) +
    geom_errorbarh(mapping = aes(xmin = lower.CL, xmax = upper.CL),
                   height = 0) +
    geom_point(mapping = aes(color = Specie)) +
    geom_text(mapping = aes(label = sprintf("%0.1f %s", emmean, .group)),
              vjust = 0, nudge_y = 0.10, size = 2.5) +
    labs(y = "Isolated",
         x = "Colony diameter (mm)")

Código
# Comparação entre os tratamentos.
tb_means$treatment <-
    emmeans(m0,
            specs = ~treatment | isolated) |>
    multcomp::cld(Letters = letters, reversed = TRUE) |>
    as.data.frame() |>
    mutate(.group = trimws(.group)) |>
    identity()
tb_means$treatment
   treatment    isolated    emmean       SE df   lower.CL  upper.CL .group
1    Control MdCc-Col134 36.926000 3.023601 79 30.9076721 42.944328      a
3      24SBa MdCc-Col134 35.936000 3.023601 79 29.9176721 41.954328      a
4      48SBa MdCc-Col134 35.356000 3.023601 79 29.3376721 41.374328      a
2      48BBa MdCc-Col134 23.173201 3.026788 79 17.1485302 29.197872      b
5      24BBa MdCc-Col134 15.476000 3.023601 79  9.4576721 21.494328      b
6    Control  MdCc-Col33 36.852000 3.023601 79 30.8336721 42.870328      a
8      48SBa  MdCc-Col33 35.238000 3.023601 79 29.2196721 41.256328      a
7      24SBa  MdCc-Col33 35.070000 3.023601 79 29.0516721 41.088328      a
9      48BBa  MdCc-Col33 22.958750 3.026792 79 16.9340714 28.983429      b
10     24BBa  MdCc-Col33 20.928455 3.026829 79 14.9037026 26.953208      b
13   Control    MdCn-179 27.918000 3.023601 79 21.8996721 33.936328      a
11     24SBa    MdCn-179 24.724000 3.023601 79 18.7056721 30.742328      a
14     48SBa    MdCn-179  5.756481 3.037267 79 -0.2890482 11.802010      b
12     24BBa    MdCn-179  4.026943 3.037289 79 -2.0186301 10.072516      b
15     48BBa    MdCn-179  1.255000 3.040757 79 -4.7974757  7.307476      b
16   Control  MdCn-CA32M 38.164000 3.023601 79 32.1456721 44.182328      a
18     48SBa  MdCn-CA32M 36.018000 3.023601 79 29.9996721 42.036328      a
17     24SBa  MdCn-CA32M 35.034000 3.023601 79 29.0156721 41.052328      a
19     48BBa  MdCn-CA32M 28.961123 3.026666 79 22.9366944 34.985551      a
20     24BBa  MdCn-CA32M  5.288277 3.037274 79 -0.7572655 11.333820      b
Código
if (m0$dist == "weibull") {
    tb_means$treatment <-
        tb_means$treatment |>
        mutate(weibull_shape = 1/m0[["scale"]]) |>
        mutate_at(c("emmean", "lower.CL", "upper.CL"),
                  ~exp(.) * gamma(1 + 1/weibull_shape)) |>
        mutate(weibull_shape = NULL)
}

ggplot(data = tb_means$treatment,
       mapping = aes(y = treatment, x = emmean)) +
    facet_grid(facets = isolated ~ .) +
    geom_errorbarh(mapping = aes(xmin = lower.CL, xmax = upper.CL),
                   height = 0) +
    geom_point() +
    geom_text(mapping = aes(label = sprintf("%0.1f %s", emmean, .group)),
              vjust = 0, nudge_y = 0.10, size = 2.5) +
    labs(y = "Treatment",
         x = "Colony diameter (mm)")

Código
#-----------------------------------------------------------------------
# Comparando com estimativas amostrais.

tbi |>
    group_by(treatment, isolated) |>
    summarise_at("diameter", "mean") |>
    left_join(tb_means$treatment,
              by = c("treatment", "isolated")) |>
    select(treatment, isolated, diameter, emmean) |>
    ungroup() |>
    # arrange(diameter) |>
    print(n = Inf)
# A tibble: 20 × 4
   treatment isolated    diameter emmean
   <fct>     <fct>          <dbl>  <dbl>
 1 24BBa     MdCc-Col134    15.5   15.5 
 2 24BBa     MdCc-Col33     20.6   20.9 
 3 24BBa     MdCn-179        3.00   4.03
 4 24BBa     MdCn-CA32M      4.25   5.29
 5 24SBa     MdCc-Col134    35.9   35.9 
 6 24SBa     MdCc-Col33     35.1   35.1 
 7 24SBa     MdCn-179       24.7   24.7 
 8 24SBa     MdCn-CA32M     35.0   35.0 
 9 48BBa     MdCc-Col134    22.9   23.2 
10 48BBa     MdCc-Col33     22.7   23.0 
11 48BBa     MdCn-179        0      1.25
12 48BBa     MdCn-CA32M     28.6   29.0 
13 48SBa     MdCc-Col134    35.3   35.4 
14 48SBa     MdCc-Col33     35.2   35.2 
15 48SBa     MdCn-179        4.71   5.76
16 48SBa     MdCn-CA32M     36.0   36.0 
17 Control   MdCc-Col134    36.9   36.9 
18 Control   MdCc-Col33     36.8   36.9 
19 Control   MdCn-179       27.9   27.9 
20 Control   MdCn-CA32M     38.2   38.2 

2.2 Experimento 2

Código
#-----------------------------------------------------------------------
# Experimento 2 --------------------------------------------------------

tbi <- tb |>
    filter(experiment == "2")

# Ajuste do modelo.
m0 <- survreg(
    formula = Surv(
        time = left + 0.01,
        time2 = right,
        event = status,
        type = "interval") ~ treatment * isolated,
    dist = "gaussian",
    # dist = "loggaussian",
    # dist = "loglogistic",
    # dist = "weibull",
    data = tbi)

# logLik(m0)
# AIC(m0)
# BIC(m0)

# Quadro de análise de deviance.
# anova(m0)
Anova(m0)
Analysis of Deviance Table (Type II tests)
                   LR Chisq Df Pr(>Chisq)    
treatment           128.857  4  < 2.2e-16 ***
isolated             27.718  3  4.162e-06 ***
treatment:isolated   97.553 12  1.676e-15 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Código
# Comparar entre isolados de mesma espécie.
tb_iso <-
    tbi |>
    distinct(species, isolated) |>
    with({
        split(as.character(isolated), species)
    })
tb_iso
$`C. chrysophillum`
[1] "MdCc-Col33"  "MdCc-Col134"

$`C. nymphaeae`
[1] "MdCn-CA32M" "MdCn-179"  
Código
# Para armazenar as comparações de médias.
tb_means <- list(isolated = NULL, treatment = NULL)

# Aplica o teste de comparação de médias separado por espécie.
tb_means$isolated[["C. nymphaeae"]] <-
    emmeans(m0,
            specs = ~isolated | treatment,
            at = list(isolated = tb_iso[["C. nymphaeae"]])) |>
    multcomp::cld(Letters = letters, reversed = TRUE) |>
    as.data.frame() |>
    mutate(.group = trimws(.group))
tb_means$isolated[["C. chrysophillum"]] <-
    emmeans(m0,
            specs = ~isolated | treatment,
            at = list(isolated = tb_iso[["C. chrysophillum"]])) |>
    multcomp::cld(Letters = letters, reversed = TRUE) |>
    as.data.frame() |>
    mutate(.group = trimws(.group))
tb_means$isolated <- bind_rows(tb_means$isolated, .id = "Specie")

if (m0$dist == "weibull") {
    tb_means$isolated <-
        tb_means$isolated |>
        mutate(weibull_shape = 1/m0[["scale"]]) |>
        mutate_at(c("emmean", "lower.CL", "upper.CL"),
                  ~exp(.) * gamma(1 + 1/weibull_shape)) |>
        mutate(weibull_shape = NULL)
}

ggplot(data = tb_means$isolated,
       mapping = aes(y = isolated, x = emmean)) +
    facet_grid(facets = treatment ~ .) +
    geom_errorbarh(mapping = aes(xmin = lower.CL, xmax = upper.CL),
                   height = 0) +
    geom_point(mapping = aes(color = Specie)) +
    geom_text(mapping = aes(label = sprintf("%0.1f %s", emmean, .group)),
              vjust = 0, nudge_y = 0.10, size = 2.5) +
    labs(y = "Isolated",
         x = "Colony diameter (mm)")

Código
# Comparação entre os tratamentos.
tb_means$treatment <-
    emmeans(m0,
            specs = ~treatment | isolated) |>
    multcomp::cld(Letters = letters, reversed = TRUE) |>
    as.data.frame() |>
    mutate(.group = trimws(.group)) |>
    identity()
tb_means$treatment
   treatment    isolated    emmean       SE df  lower.CL  upper.CL .group
1      24SBa MdCc-Col134 33.992000 1.906086 79 30.198031 37.785969      a
3    Control MdCc-Col134 29.074000 1.906086 79 25.280031 32.867969      a
4      48SBa MdCc-Col134 26.784000 1.906086 79 22.990031 30.577969      a
5      48BBa MdCc-Col134  1.255000 1.933464 79 -2.593464  5.103464      b
2      24BBa MdCc-Col134  1.255000 1.933464 79 -2.593464  5.103464      b
6      24SBa  MdCc-Col33 31.314000 1.906086 79 27.520031 35.107969      a
8    Control  MdCc-Col33 29.272000 1.906086 79 25.478031 33.065969     ab
9      48SBa  MdCc-Col33 21.964564 1.909895 79 18.163013 25.766116      b
10     48BBa  MdCc-Col33  1.255000 1.933464 79 -2.593464  5.103464      c
7      24BBa  MdCc-Col33  1.255000 1.933464 79 -2.593464  5.103464      c
13     24SBa    MdCn-179 24.590000 1.906086 79 20.796031 28.383969      a
11   Control    MdCn-179 24.478000 1.906086 79 20.684031 28.271969      a
14     48SBa    MdCn-179  1.255000 1.933464 79 -2.593464  5.103464      b
15     24BBa    MdCn-179  1.255000 1.933464 79 -2.593464  5.103464      b
12     48BBa    MdCn-179  1.255000 1.933464 79 -2.593464  5.103464      b
18   Control  MdCn-CA32M 31.166000 1.906086 79 27.372031 34.959969      a
16     24SBa  MdCn-CA32M  6.942699 1.927333 79  3.106439 10.778959      b
19     48SBa  MdCn-CA32M  6.478537 1.927419 79  2.642105 10.314969      b
17     24BBa  MdCn-CA32M  1.255000 1.933464 79 -2.593464  5.103464      b
20     48BBa  MdCn-CA32M  1.255000 1.933464 79 -2.593464  5.103464      b
Código
if (m0$dist == "weibull") {
    tb_means$treatment <-
        tb_means$treatment |>
        mutate(weibull_shape = 1/m0[["scale"]]) |>
        mutate_at(c("emmean", "lower.CL", "upper.CL"),
                  ~exp(.) * gamma(1 + 1/weibull_shape)) |>
        mutate(weibull_shape = NULL)
}

ggplot(data = tb_means$treatment,
       mapping = aes(y = treatment, x = emmean)) +
    facet_grid(facets = isolated ~ .) +
    geom_errorbarh(mapping = aes(xmin = lower.CL, xmax = upper.CL),
                   height = 0) +
    geom_point() +
    geom_text(mapping = aes(label = sprintf("%0.1f %s", emmean, .group)),
              vjust = 0, nudge_y = 0.10, size = 2.5) +
    labs(y = "Treatment",
         x = "Colony diameter (mm)")

Código
#-----------------------------------------------------------------------
# Comparando com estimativas amostrais.

tbi |>
    group_by(treatment, isolated) |>
    summarise_at("diameter", "mean") |>
    left_join(tb_means$treatment,
              by = c("treatment", "isolated")) |>
    select(treatment, isolated, diameter, emmean) |>
    ungroup() |>
    # arrange(diameter) |>
    print(n = Inf)
# A tibble: 20 × 4
   treatment isolated    diameter emmean
   <fct>     <fct>          <dbl>  <dbl>
 1 24BBa     MdCc-Col134     0      1.25
 2 24BBa     MdCc-Col33      0      1.25
 3 24BBa     MdCn-179        0      1.26
 4 24BBa     MdCn-CA32M      0      1.26
 5 24SBa     MdCc-Col134    34.0   34.0 
 6 24SBa     MdCc-Col33     31.3   31.3 
 7 24SBa     MdCn-179       24.6   24.6 
 8 24SBa     MdCn-CA32M      5.81   6.94
 9 48BBa     MdCc-Col134     0      1.26
10 48BBa     MdCc-Col33      0      1.25
11 48BBa     MdCn-179        0      1.26
12 48BBa     MdCn-CA32M      0      1.25
13 48SBa     MdCc-Col134    26.8   26.8 
14 48SBa     MdCc-Col33     21.6   22.0 
15 48SBa     MdCn-179        0      1.26
16 48SBa     MdCn-CA32M      5.36   6.48
17 Control   MdCc-Col134    29.1   29.1 
18 Control   MdCc-Col33     29.3   29.3 
19 Control   MdCn-179       24.5   24.5 
20 Control   MdCn-CA32M     31.2   31.2