Creative Commons License

1 Comparison of \(g\) groups

  • Extend \(F\)-test from a one-way ANOVA to non-parametric alternatives.

2 DMH example

Assess genotoxicity of 1,2-dimethylhydrazine dihydrochloride (DMH) (EU directive)

  • 24 rats
  • four groups with daily DMH dose
    • control
    • low
    • medium
    • high
  • Genotoxicity in liver using comet assay on 150 liver cells per rat.
  • Are there differences in DNA damage due to DMH dose?

2.1 Comet Assay:

  • Visualise DNA strand breaks
  • Length comet tail is a proxy for strand breaks.
Comet assay
Comet assay
dna <- read_delim("https://raw.githubusercontent.com/GTPB/PSLS20/master/data/dna.txt", delim = " ")
dna$dose <- as.factor(dna$dose)
dna
dna %>%
  ggplot(aes(x = dose, y = length, fill = dose)) +
  geom_boxplot() +
  geom_point(position = "jitter")

dna %>%
  ggplot(aes(sample = length)) +
  geom_qq() +
  geom_qq_line() +
  facet_wrap(~dose)

  • Strong indication that data in control group has a lower variance.
  • 6 observations per group are too few to check the assumptions
plot(lm(length ~ dose, data = dna))

3 Kruskal-Wallis Rank Test

  • The Kruskal-Wallis Rank Test (KW-test) is a non-parameteric alternative for ANOVA F-test.

  • Classical \(F\)-teststatistic can be written as \[ F = \frac{\text{SST}/(g-1)}{\text{SSE}/(n-g)} = \frac{\text{SST}/(g-1)}{(\text{SSTot}-\text{SST})/(n-g)} , \]

  • with \(g\) the number of groups.

  • SSTot depends only on outcomes \(\mathbf{y}\) and will not vary in permutation test.

  • SST can be used as statistic \[\text{SST}=\sum_{j=1}^t n_j(\bar{Y}_j-\bar{Y})^2\]

  • The KW test statistic is based on SST on rank-transformed outcomes1, \[ \text{SST} = \sum_{j=1}^g n_j \left(\bar{R}_j - \bar{R}\right)^2 = \sum_{j=1}^t n_j \left(\bar{R}_j - \frac{n+1}{2}\right)^2 , \]

  • with \(\bar{R}_j\) the mean of the ranks in group \(j\), and \(\bar{R}\) the mean of all ranks, \[ \bar{R} = \frac{1}{n}(1+2+\cdots + n) = \frac{1}{n}\frac{1}{2}n(n+1) = \frac{n+1}{2}. \]

  • The KW teststatistic is given by \[ KW = \frac{12}{n(n+1)} \sum_{j=1}^g n_j \left(\bar{R}_j - \frac{n+1}{2}\right)^2. \]

  • The factor \(\frac{12}{n(n+1)}\) is used so that \(KW\) has a simple asymptotic null distribution. In particular under \(H_0\), given thart \(\min(n_1,\ldots, n_g)\rightarrow \infty\), \[ KW \rightarrow \chi^2_{t-1}. \]

  • The exact KW-test can be executed by calculating the permutation null distribution (that only depends on \(n_1, \ldots, n_g\)) to test \[H_0: f_1=\ldots=f_g \text{ vs } H_1: \text{ at least two means are different}.\]

  • In order to allow \(H_1\) to be formulated in terms of means, the assumption of locations shift should be valid.

  • For DMH example this is not the case.

  • If location-shift is invalid, we have to formulate \(H_1\) in terms of probabilistic indices: \[H_0: f_1=\ldots=f_g \text{ vs } H_1: \exists\ j,k \in \{1,\ldots,g\} : \text{P}\left[Y_j\geq Y_k\right]\neq 0.5\]

3.1 DNA Damage Example

kruskal.test(length ~ dose, data = dna)

    Kruskal-Wallis rank sum test

data:  length by dose
Kruskal-Wallis chi-squared = 14, df = 3, p-value = 0.002905
  • On the \(5\%\) level of significance we can reject the null hypothesis.

  • R-functie kruskal.test only returns the asymptotic approximation for \(p\)-values.

  • With only 6 observaties per groep, this is not a good approximation of the \(p\)-value

  • With the coin R package we can calculate the exacte \(p\)-value

library(coin)
kwPerm <- kruskal_test(length ~ dose,
  data = dna,
  distribution = approximate(B = 100000)
)
kwPerm

    Approximative Kruskal-Wallis Test

data:  length by dose (0, 1.25, 2.5, 5)
chi-squared = 14, p-value = 0.00043
  • We conclude that the difference in the distribution of the DNA damages due to the DMH dose is extremely significantly different.

  • Posthoc analysis with WMW tests.

pairwise.wilcox.test(dna$length, dna$dose)

    Pairwise comparisons using Wilcoxon rank sum exact test 

data:  dna$length and dna$dose 

     0     1.25  2.5  
1.25 0.013 -     -    
2.5  0.013 0.818 -    
5    0.013 0.721 0.788

P value adjustment method: holm 
  • All DMH behandelingen are significantly different from the control.
  • The DMH are not significantly different from one another.
  • U1 does not occur in the pairwise.wilcox.test output. Point estimate on probability on higher DNA-damage?
nGroup <- table(dna$dose)
probInd <- combn(levels(dna$dose), 2, function(x) {
  test <- wilcox.test(length ~ dose, subset(dna, dose %in% x))
  return(test$statistic / prod(nGroup[x]))
})
names(probInd) <- combn(levels(dna$dose), 2, paste, collapse = "vs")
probInd
  0vs1.25    0vs2.5      0vs5 1.25vs2.5   1.25vs5    2.5vs5 
0.0000000 0.0000000 0.0000000 0.4444444 0.2777778 0.3333333 

Because there are doubts on the location-shift model we draw our conclusions in terms of the probabilistic index.

3.1.1 Conclusion

  • There is an extremely significant difference in in the distribution of the DNA-damage measurements due to the treatment with DMH (\(p<0.001\) KW-test).
  • DNA-damage is more likely upon DMH treatment than in the control treatment (all p=0.013, WMW-testen).
  • The probability on higher DNA-damage upon exposure to DMH is 100% (Calculation of a CI on the probabilistic index is beyond the scope of the course)
  • There are no significant differences in the distributions of the comit-lengths among the treatment with the different DMH concentrations (\(p=\) 0.72-0.82).
  • DMH shows already genotoxic effects at low dose.
  • (Alle paarswise tests are gecorrected for multiple testing using Holm’s methode).

  1. we assume that no ties are available↩︎

LS0tCnRpdGxlOiAiOS4gTm9uLXBhcmFtZXRyaWMgc3RhdGlzdGljcyAtIEtydXNrYWwgV2FsbGlzIgphdXRob3I6ICJMaWV2ZW4gQ2xlbWVudCIKZGF0ZTogInN0YXRPbWljcywgR2hlbnQgVW5pdmVyc2l0eSAoaHR0cHM6Ly9zdGF0b21pY3MuZ2l0aHViLmlvKSIKb3V0cHV0OgogIGJvb2tkb3duOjpwZGZfZG9jdW1lbnQyOgogICAgdG9jOiB0cnVlCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUKICAgIGxhdGV4X2VuZ2luZTogeGVsYXRleAphbHdheXNfYWxsb3dfaHRtbDogdHJ1ZQotLS0KCjxhIHJlbD0ibGljZW5zZSIgaHJlZj0iaHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL2J5LW5jLXNhLzQuMCI+PGltZyBhbHQ9IkNyZWF0aXZlIENvbW1vbnMgTGljZW5zZSIgc3R5bGU9ImJvcmRlci13aWR0aDowIiBzcmM9Imh0dHBzOi8vaS5jcmVhdGl2ZWNvbW1vbnMub3JnL2wvYnktbmMtc2EvNC4wLzg4eDMxLnBuZyIgLz48L2E+CgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRSwgY2FjaGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldCgKICBpbmNsdWRlID0gVFJVRSwgY29tbWVudCA9IE5BLCBlY2hvID0gVFJVRSwKICBtZXNzYWdlID0gRkFMU0UsIHdhcm5pbmcgPSBGQUxTRSwgY2FjaGUgPSBUUlVFCikKbGlicmFyeSh0aWR5dmVyc2UpCnNldC5zZWVkKDE0MCkKYGBgCgoKIyBDb21wYXJpc29uIG9mICRnJCBncm91cHMKCi0gRXh0ZW5kICAkRiQtdGVzdCBmcm9tIGEgb25lLXdheSBBTk9WQSB0byBub24tcGFyYW1ldHJpYyBhbHRlcm5hdGl2ZXMuCgojIERNSCBleGFtcGxlCgpBc3Nlc3MgZ2Vub3RveGljaXR5IG9mIDEsMi1kaW1ldGh5bGh5ZHJhemluZSBkaWh5ZHJvY2hsb3JpZGUgKERNSCkgIChFVSBkaXJlY3RpdmUpCgotIDI0IHJhdHMKLSBmb3VyIGdyb3VwcyB3aXRoIGRhaWx5IERNSCBkb3NlCiAgLSBjb250cm9sCiAgLSBsb3cKICAtIG1lZGl1bQogIC0gaGlnaAoKLSBHZW5vdG94aWNpdHkgaW4gbGl2ZXIgdXNpbmcgY29tZXQgYXNzYXkgb24gMTUwIGxpdmVyIGNlbGxzIHBlciByYXQuCi0gQXJlIHRoZXJlIGRpZmZlcmVuY2VzIGluIEROQSBkYW1hZ2UgZHVlIHRvIERNSCBkb3NlPwoKIyMgQ29tZXQgQXNzYXk6CgotIFZpc3VhbGlzZSBETkEgc3RyYW5kIGJyZWFrcwotIExlbmd0aCBjb21ldCB0YWlsIGlzIGEgcHJveHkgZm9yIHN0cmFuZCBicmVha3MuCgohW0NvbWV0IGFzc2F5XSguL2ZpZ3VyZXMvY29tZXQuanBnKXsgd2lkdGg9NTAlIH0KCgpgYGB7cn0KZG5hIDwtIHJlYWRfZGVsaW0oImh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbS9HVFBCL1BTTFMyMC9tYXN0ZXIvZGF0YS9kbmEudHh0IiwgZGVsaW0gPSAiICIpCmRuYSRkb3NlIDwtIGFzLmZhY3RvcihkbmEkZG9zZSkKZG5hCmBgYAoKCmBgYHtyfQpkbmEgJT4lCiAgZ2dwbG90KGFlcyh4ID0gZG9zZSwgeSA9IGxlbmd0aCwgZmlsbCA9IGRvc2UpKSArCiAgZ2VvbV9ib3hwbG90KCkgKwogIGdlb21fcG9pbnQocG9zaXRpb24gPSAiaml0dGVyIikKCmRuYSAlPiUKICBnZ3Bsb3QoYWVzKHNhbXBsZSA9IGxlbmd0aCkpICsKICBnZW9tX3FxKCkgKwogIGdlb21fcXFfbGluZSgpICsKICBmYWNldF93cmFwKH5kb3NlKQpgYGAKCi0gU3Ryb25nIGluZGljYXRpb24gdGhhdCBkYXRhIGluIGNvbnRyb2wgZ3JvdXAgaGFzIGEgbG93ZXIgdmFyaWFuY2UuCi0gNiBvYnNlcnZhdGlvbnMgcGVyIGdyb3VwIGFyZSB0b28gZmV3IHRvIGNoZWNrIHRoZSBhc3N1bXB0aW9ucwoKYGBge3J9CnBsb3QobG0obGVuZ3RoIH4gZG9zZSwgZGF0YSA9IGRuYSkpCmBgYAoKIyBLcnVza2FsLVdhbGxpcyBSYW5rIFRlc3QKCi0gVGhlIEtydXNrYWwtV2FsbGlzIFJhbmsgVGVzdCAoS1ctdGVzdCkgaXMgYSAgbm9uLXBhcmFtZXRlcmljIGFsdGVybmF0aXZlICBmb3IgQU5PVkEgRi10ZXN0LgoKLSAgQ2xhc3NpY2FsICRGJC10ZXN0c3RhdGlzdGljIGNhbiBiZSB3cml0dGVuIGFzCiAgXFsKICAgIEYgPSBcZnJhY3tcdGV4dHtTU1R9LyhnLTEpfXtcdGV4dHtTU0V9LyhuLWcpfSA9IFxmcmFje1x0ZXh0e1NTVH0vKGctMSl9eyhcdGV4dHtTU1RvdH0tXHRleHR7U1NUfSkvKG4tZyl9ICwKICBcXQotICB3aXRoICRnJCB0aGUgbnVtYmVyIG9mIGdyb3Vwcy4KCi0gU1NUb3QgZGVwZW5kcyBvbmx5IG9uICBvdXRjb21lcyAkXG1hdGhiZnt5fSQgYW5kIHdpbGwgbm90IHZhcnkgaW4gcGVybXV0YXRpb24gdGVzdC4KCi0gU1NUIGNhbiBiZSB1c2VkIGFzIHN0YXRpc3RpYwogJCRcdGV4dHtTU1R9PVxzdW1fe2o9MX1edCBuX2ooXGJhcntZfV9qLVxiYXJ7WX0pXjIkJAoKCi0gIFRoZSBLVyB0ZXN0IHN0YXRpc3RpYyBpcyBiYXNlZCBvbiBTU1Qgb24gcmFuay10cmFuc2Zvcm1lZCBvdXRjb21lc15bd2UgYXNzdW1lIHRoYXQgbm8gKnRpZXMqIGFyZSBhdmFpbGFibGVdLAogIFxbCiAgICAgXHRleHR7U1NUfSA9IFxzdW1fe2o9MX1eZyBuX2ogXGxlZnQoXGJhcntSfV9qIC0gXGJhcntSfVxyaWdodCleMiA9IFxzdW1fe2o9MX1edCBuX2ogXGxlZnQoXGJhcntSfV9qIC0gXGZyYWN7bisxfXsyfVxyaWdodCleMiAsCiAgXF0KLSAgd2l0aCAkXGJhcntSfV9qJCB0aGUgbWVhbiBvZiB0aGUgcmFua3MgaW4gZ3JvdXAgJGokLCBhbmQgJFxiYXJ7Un0kIHRoZSBtZWFuIG9mIGFsbCByYW5rcywKICBcWwogICAgXGJhcntSfSA9IFxmcmFjezF9e259KDErMitcY2RvdHMgKyBuKSA9IFxmcmFjezF9e259XGZyYWN7MX17Mn1uKG4rMSkgPSBcZnJhY3tuKzF9ezJ9LgogIFxdCi0gIFRoZSBLVyB0ZXN0c3RhdGlzdGljIGlzIGdpdmVuIGJ5CiAgXFsKICAgIEtXID0gXGZyYWN7MTJ9e24obisxKX0gIFxzdW1fe2o9MX1eZyBuX2ogXGxlZnQoXGJhcntSfV9qIC0gXGZyYWN7bisxfXsyfVxyaWdodCleMi4KICBcXQotICBUaGUgZmFjdG9yICRcZnJhY3sxMn17bihuKzEpfSQgaXMgdXNlZCBzbyB0aGF0ICRLVyQgaGFzIGEgc2ltcGxlIGFzeW1wdG90aWMgbnVsbCBkaXN0cmlidXRpb24uIEluIHBhcnRpY3VsYXIgdW5kZXIgJEhfMCQsIGdpdmVuIHRoYXJ0ICRcbWluKG5fMSxcbGRvdHMsIG5fZylccmlnaHRhcnJvdyBcaW5mdHkkLAogIFxbCiAgICBLVyAgXHJpZ2h0YXJyb3cgXGNoaV4yX3t0LTF9LgogIFxdCgotICBUaGUgZXhhY3QgS1ctdGVzdCBjYW4gYmUgZXhlY3V0ZWQgYnkgY2FsY3VsYXRpbmcgdGhlIHBlcm11dGF0aW9uIG51bGwgZGlzdHJpYnV0aW9uICh0aGF0IG9ubHkgZGVwZW5kcyBvbiAkbl8xLCBcbGRvdHMsIG5fZyQpIHRvIHRlc3QKICAkJEhfMDogZl8xPVxsZG90cz1mX2cgXHRleHR7IHZzIH0gSF8xOiBcdGV4dHsgYXQgbGVhc3QgdHdvIG1lYW5zIGFyZSBkaWZmZXJlbnR9LiQkCgotIEluIG9yZGVyIHRvIGFsbG93ICRIXzEkIHRvIGJlIGZvcm11bGF0ZWQgaW4gdGVybXMgb2YgbWVhbnMsIHRoZSBhc3N1bXB0aW9uIG9mIGxvY2F0aW9ucyBzaGlmdCBzaG91bGQgYmUgdmFsaWQuCi0gRm9yIERNSCBleGFtcGxlIHRoaXMgaXMgbm90IHRoZSBjYXNlLgotIElmIGxvY2F0aW9uLXNoaWZ0IGlzIGludmFsaWQsIHdlIGhhdmUgdG8gZm9ybXVsYXRlICRIXzEkIGluIHRlcm1zIG9mIHByb2JhYmlsaXN0aWMgaW5kaWNlczoKICAkJEhfMDogZl8xPVxsZG90cz1mX2cgXHRleHR7IHZzIH0gSF8xOiBcZXhpc3RzXCBqLGsgXGluIFx7MSxcbGRvdHMsZ1x9IDogXHRleHR7UH1cbGVmdFtZX2pcZ2VxIFlfa1xyaWdodF1cbmVxIDAuNSQkCgoKIyMgRE5BIERhbWFnZSBFeGFtcGxlCgpgYGB7cn0Ka3J1c2thbC50ZXN0KGxlbmd0aCB+IGRvc2UsIGRhdGEgPSBkbmEpCmBgYAoKLSBPbiB0aGUgJDVcJSQgbGV2ZWwgb2Ygc2lnbmlmaWNhbmNlIHdlIGNhbiByZWplY3QgdGhlIG51bGwgaHlwb3RoZXNpcy4KCi0gUi1mdW5jdGllIGBrcnVza2FsLnRlc3RgIG9ubHkgcmV0dXJucyB0aGUgYXN5bXB0b3RpYyBhcHByb3hpbWF0aW9uIGZvciAkcCQtdmFsdWVzLgoKLSBXaXRoIG9ubHkgNiBvYnNlcnZhdGllcyBwZXIgZ3JvZXAsIHRoaXMgaXMgbm90IGEgZ29vZCBhcHByb3hpbWF0aW9uIG9mIHRoZSAkcCQtdmFsdWUKCi0gIFdpdGggdGhlIGBjb2luYCBSIHBhY2thZ2Ugd2UgY2FuIGNhbGN1bGF0ZSB0aGUgZXhhY3RlICRwJC12YWx1ZQoKYGBge3Isd2FybmluZz1GQUxTRSxtZXNzYWdlPUZBTFNFfQpsaWJyYXJ5KGNvaW4pCmt3UGVybSA8LSBrcnVza2FsX3Rlc3QobGVuZ3RoIH4gZG9zZSwKICBkYXRhID0gZG5hLAogIGRpc3RyaWJ1dGlvbiA9IGFwcHJveGltYXRlKEIgPSAxMDAwMDApCikKa3dQZXJtCmBgYAoKLSBXZSBjb25jbHVkZSB0aGF0IHRoZSBkaWZmZXJlbmNlIGluIHRoZSBkaXN0cmlidXRpb24gb2YgdGhlIEROQSBkYW1hZ2VzIGR1ZSB0byB0aGUgRE1IIGRvc2UgaXMgZXh0cmVtZWx5IHNpZ25pZmljYW50bHkgZGlmZmVyZW50LgoKLSBQb3N0aG9jIGFuYWx5c2lzIHdpdGggV01XIHRlc3RzLgoKYGBge3J9CnBhaXJ3aXNlLndpbGNveC50ZXN0KGRuYSRsZW5ndGgsIGRuYSRkb3NlKQpgYGAKCi0gQWxsIERNSCBiZWhhbmRlbGluZ2VuIGFyZSBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBmcm9tIHRoZSBjb250cm9sLgotIFRoZSBETUggYXJlIG5vdCBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBmcm9tIG9uZSBhbm90aGVyLgotIFUxIGRvZXMgbm90IG9jY3VyIGluIHRoZSBgcGFpcndpc2Uud2lsY294LnRlc3RgIG91dHB1dC4gUG9pbnQgZXN0aW1hdGUgb24gcHJvYmFiaWxpdHkgb24gaGlnaGVyIEROQS1kYW1hZ2U/CgpgYGB7ciwgZWNobz1GQUxTRX0KcGFpcldpbGNveCA8LSBwYWlyd2lzZS53aWxjb3gudGVzdChkbmEkbGVuZ3RoLCBkbmEkZG9zZSkKYGBgCgpgYGB7cn0Kbkdyb3VwIDwtIHRhYmxlKGRuYSRkb3NlKQpwcm9iSW5kIDwtIGNvbWJuKGxldmVscyhkbmEkZG9zZSksIDIsIGZ1bmN0aW9uKHgpIHsKICB0ZXN0IDwtIHdpbGNveC50ZXN0KGxlbmd0aCB+IGRvc2UsIHN1YnNldChkbmEsIGRvc2UgJWluJSB4KSkKICByZXR1cm4odGVzdCRzdGF0aXN0aWMgLyBwcm9kKG5Hcm91cFt4XSkpCn0pCm5hbWVzKHByb2JJbmQpIDwtIGNvbWJuKGxldmVscyhkbmEkZG9zZSksIDIsIHBhc3RlLCBjb2xsYXBzZSA9ICJ2cyIpCnByb2JJbmQKYGBgCgpCZWNhdXNlIHRoZXJlIGFyZSBkb3VidHMgb24gdGhlIGxvY2F0aW9uLXNoaWZ0IG1vZGVsIHdlIGRyYXcgb3VyIGNvbmNsdXNpb25zIGluIHRlcm1zIG9mIHRoZSBwcm9iYWJpbGlzdGljIGluZGV4LgoKIyMjIENvbmNsdXNpb24KCi0gVGhlcmUgaXMgYW4gZXh0cmVtZWx5IHNpZ25pZmljYW50IGRpZmZlcmVuY2UgaW4gaW4gdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgRE5BLWRhbWFnZSBtZWFzdXJlbWVudHMgZHVlIHRvIHRoZSB0cmVhdG1lbnQgd2l0aCBETUggICgkcDwwLjAwMSQgS1ctdGVzdCkuCi0gRE5BLWRhbWFnZSBpcyBtb3JlIGxpa2VseSB1cG9uIERNSCB0cmVhdG1lbnQgdGhhbiBpbiB0aGUgY29udHJvbCB0cmVhdG1lbnQgKGFsbCBwPTAuMDEzLCBXTVctdGVzdGVuKS4KLSBUaGUgcHJvYmFiaWxpdHkgb24gaGlnaGVyIEROQS1kYW1hZ2UgdXBvbiBleHBvc3VyZSB0byBETUggaXMgMTAwJSAoQ2FsY3VsYXRpb24gb2YgYSBDSSBvbiB0aGUgcHJvYmFiaWxpc3RpYyBpbmRleCBpcyBiZXlvbmQgdGhlIHNjb3BlIG9mIHRoZSBjb3Vyc2UpCi0gVGhlcmUgYXJlIG5vIHNpZ25pZmljYW50IGRpZmZlcmVuY2VzIGluIHRoZSBkaXN0cmlidXRpb25zIG9mIHRoZSBjb21pdC1sZW5ndGhzIGFtb25nIHRoZSB0cmVhdG1lbnQgd2l0aCB0aGUgZGlmZmVyZW50IERNSCBjb25jZW50cmF0aW9ucyAoJHA9JCBgciBwYXN0ZShmb3JtYXQocmFuZ2UocGFpcldpbGNveCRwLnZhbHVlWywtMV0sbmEucm09VFJVRSksZGlnaXQ9MiksY29sbGFwc2U9Ii0iKWApLgotIERNSCBzaG93cyBhbHJlYWR5IGdlbm90b3hpYyBlZmZlY3RzIGF0IGxvdyBkb3NlLgotIChBbGxlIHBhYXJzd2lzZSB0ZXN0cyBhcmUgZ2Vjb3JyZWN0ZWQgZm9yIG11bHRpcGxlIHRlc3RpbmcgdXNpbmcgSG9sbSdzIG1ldGhvZGUpLgo=