tl;dr: It looks like we have ~ 98.6% conversion efficiency for CpG sites.
I wanted to look at the Methylation conversion rates for the lambda spike in for our samples. This is used as a proxy for sample methylation conversion rate because lambda methylation rate is usually known. We goofed up a bit and used a potentially methylated lambda strain. Oops.
First I read in the data I curated from a bunch of bismark files.
library(readr)
lambda_conversion_rates <- read_csv("~/Documents/Genewiz_hdd/lambda_conversion_rates.csv")
Parsed with column specification:
cols(
Sample = col_character(),
`Mapping Eff` = col_double(),
`CpG Methylation Rate` = col_double(),
`CHG Methylation Rate` = col_double(),
`CHH Methylation Rate` = col_double()
)
Here I plot histograms and boxplots (with a stripchart of the actual data overlayed) for Mapping Efficiency, as well as mean and standard deviation. P
hist(lambda_conversion_rates$`Mapping Eff`)

boxplot(lambda_conversion_rates$`Mapping Eff`, outline = FALSE, ylim = c(min(lambda_conversion_rates$`Mapping Eff`) - 0.1, max(lambda_conversion_rates$`Mapping Eff`) + 0.1))
stripchart(lambda_conversion_rates$`Mapping Eff`, add = TRUE, axes = F, vertical = T, jitter = 0.02, method = "jitter", pch = 16)

mean(lambda_conversion_rates$`Mapping Eff`)
[1] 0.5692308
sd(lambda_conversion_rates$`Mapping Eff`)
[1] 0.2790309
Next I look at CpG Methlaytion rate in the same way
hist(lambda_conversion_rates$`CpG Methylation Rate`)

boxplot(lambda_conversion_rates$`CpG Methylation Rate`, outline = FALSE, ylim = c(1.1, 2.3))
stripchart(lambda_conversion_rates$`CpG Methylation Rate`, add = TRUE, axes = F, vertical = T, jitter = 0.02, method = "jitter", pch = 16)

mean(lambda_conversion_rates$`CpG Methylation Rate`)
[1] 1.419231
sd(lambda_conversion_rates$`CpG Methylation Rate`)
[1] 0.1836861
And next CHG methylation rates.
hist(lambda_conversion_rates$`CHG Methylation Rate`)

boxplot(lambda_conversion_rates$`CHG Methylation Rate`, outline = FALSE, ylim = c(min(lambda_conversion_rates$`CHG Methylation Rate`) - 0.1, max(lambda_conversion_rates$`CHG Methylation Rate`) + 0.1))
stripchart(lambda_conversion_rates$`CHG Methylation Rate`, add = TRUE, axes = F, vertical = T, jitter = 0.02, method = "jitter", pch = 16)

mean(lambda_conversion_rates$`CHG Methylation Rate`)
[1] 4.296154
sd(lambda_conversion_rates$`CHG Methylation Rate`)
[1] 0.4818109
Then CHH methylation rates the same way.
hist(lambda_conversion_rates$`CHH Methylation Rate`)

boxplot(lambda_conversion_rates$`CHH Methylation Rate`, outline = FALSE, ylim = c(min(lambda_conversion_rates$`CHH Methylation Rate`) - 0.1, max(lambda_conversion_rates$`CHH Methylation Rate`) + 0.1))
stripchart(lambda_conversion_rates$`CHH Methylation Rate`, add = TRUE, axes = F, vertical = T, jitter = 0.02, method = "jitter", pch = 16)

mean(lambda_conversion_rates$`CHH Methylation Rate`)
[1] 1.073077
sd(lambda_conversion_rates$`CHH Methylation Rate`)
[1] 0.2010905
Add a new chunk by clicking the Insert Chunk button on the toolbar or by pressing Ctrl+Alt+I.
When you save the notebook, an HTML file containing the code and output will be saved alongside it (click the Preview button or press Ctrl+Shift+K to preview the HTML file).
LS0tCnRpdGxlOiAiTGFtYmRhIGNvbnZlcnNpb24gcmF0ZXMiCm91dHB1dDogaHRtbF9ub3RlYm9vawotLS0KCnRsO2RyOiBJdCBsb29rcyBsaWtlIHdlIGhhdmUgfiA5OC42JSBjb252ZXJzaW9uIGVmZmljaWVuY3kgZm9yIENwRyBzaXRlcy4KCgpJIHdhbnRlZCB0byBsb29rIGF0IHRoZSBNZXRoeWxhdGlvbiBjb252ZXJzaW9uIHJhdGVzIGZvciB0aGUgbGFtYmRhIHNwaWtlIGluIGZvciBvdXIgc2FtcGxlcy4gVGhpcyBpcyB1c2VkIGFzIGEgcHJveHkgZm9yIHNhbXBsZSBtZXRoeWxhdGlvbiBjb252ZXJzaW9uIHJhdGUgYmVjYXVzZSBsYW1iZGEgbWV0aHlsYXRpb24gcmF0ZSBpcyB1c3VhbGx5IGtub3duLiBXZSBnb29mZWQgdXAgYSBiaXQgYW5kIHVzZWQgYSBwb3RlbnRpYWxseSBtZXRoeWxhdGVkIGxhbWJkYSBzdHJhaW4uIE9vcHMuIAoKRmlyc3QgSSByZWFkIGluIHRoZSBkYXRhIEkgY3VyYXRlZCBmcm9tIGEgYnVuY2ggb2YgYmlzbWFyayBmaWxlcy4KCmBgYHtyfQoKbGlicmFyeShyZWFkcikKCmxhbWJkYV9jb252ZXJzaW9uX3JhdGVzIDwtIHJlYWRfY3N2KCJ+L0RvY3VtZW50cy9HZW5ld2l6X2hkZC9sYW1iZGFfY29udmVyc2lvbl9yYXRlcy5jc3YiKQoKCgpgYGAKCkhlcmUgSSBwbG90IGhpc3RvZ3JhbXMgYW5kIGJveHBsb3RzICh3aXRoIGEgc3RyaXBjaGFydCBvZiB0aGUgYWN0dWFsIGRhdGEgb3ZlcmxheWVkKSBmb3IgTWFwcGluZyBFZmZpY2llbmN5LCBhcyB3ZWxsIGFzIG1lYW4gYW5kIHN0YW5kYXJkIGRldmlhdGlvbi4gUAoKYGBge3J9CgoKaGlzdChsYW1iZGFfY29udmVyc2lvbl9yYXRlcyRgTWFwcGluZyBFZmZgKQoKYm94cGxvdChsYW1iZGFfY29udmVyc2lvbl9yYXRlcyRgTWFwcGluZyBFZmZgLCBvdXRsaW5lID0gRkFMU0UsIHlsaW0gPSBjKG1pbihsYW1iZGFfY29udmVyc2lvbl9yYXRlcyRgTWFwcGluZyBFZmZgKSAtIDAuMSwgbWF4KGxhbWJkYV9jb252ZXJzaW9uX3JhdGVzJGBNYXBwaW5nIEVmZmApICsgMC4xKSkKCnN0cmlwY2hhcnQobGFtYmRhX2NvbnZlcnNpb25fcmF0ZXMkYE1hcHBpbmcgRWZmYCwgYWRkID0gVFJVRSwgYXhlcyA9IEYsIHZlcnRpY2FsID0gVCwgaml0dGVyID0gMC4wMiwgbWV0aG9kID0gImppdHRlciIsIHBjaCA9IDE2KQoKbWVhbihsYW1iZGFfY29udmVyc2lvbl9yYXRlcyRgTWFwcGluZyBFZmZgKQpzZChsYW1iZGFfY29udmVyc2lvbl9yYXRlcyRgTWFwcGluZyBFZmZgKQoKYGBgCgpOZXh0IEkgbG9vayBhdCBDcEcgTWV0aGxheXRpb24gcmF0ZSBpbiB0aGUgc2FtZSB3YXkKCmBgYHtyfQoKaGlzdChsYW1iZGFfY29udmVyc2lvbl9yYXRlcyRgQ3BHIE1ldGh5bGF0aW9uIFJhdGVgKQoKYm94cGxvdChsYW1iZGFfY29udmVyc2lvbl9yYXRlcyRgQ3BHIE1ldGh5bGF0aW9uIFJhdGVgLCBvdXRsaW5lID0gRkFMU0UsIHlsaW0gPSBjKDEuMSwgMi4zKSkKCnN0cmlwY2hhcnQobGFtYmRhX2NvbnZlcnNpb25fcmF0ZXMkYENwRyBNZXRoeWxhdGlvbiBSYXRlYCwgYWRkID0gVFJVRSwgYXhlcyA9IEYsIHZlcnRpY2FsID0gVCwgaml0dGVyID0gMC4wMiwgbWV0aG9kID0gImppdHRlciIsIHBjaCA9IDE2KQoKbWVhbihsYW1iZGFfY29udmVyc2lvbl9yYXRlcyRgQ3BHIE1ldGh5bGF0aW9uIFJhdGVgKQpzZChsYW1iZGFfY29udmVyc2lvbl9yYXRlcyRgQ3BHIE1ldGh5bGF0aW9uIFJhdGVgKQoKYGBgCgpBbmQgbmV4dCBDSEcgbWV0aHlsYXRpb24gcmF0ZXMuCgpgYGB7cn0KCmhpc3QobGFtYmRhX2NvbnZlcnNpb25fcmF0ZXMkYENIRyBNZXRoeWxhdGlvbiBSYXRlYCkKCmJveHBsb3QobGFtYmRhX2NvbnZlcnNpb25fcmF0ZXMkYENIRyBNZXRoeWxhdGlvbiBSYXRlYCwgb3V0bGluZSA9IEZBTFNFLCB5bGltID0gYyhtaW4obGFtYmRhX2NvbnZlcnNpb25fcmF0ZXMkYENIRyBNZXRoeWxhdGlvbiBSYXRlYCkgLSAwLjEsIG1heChsYW1iZGFfY29udmVyc2lvbl9yYXRlcyRgQ0hHIE1ldGh5bGF0aW9uIFJhdGVgKSArIDAuMSkpCgpzdHJpcGNoYXJ0KGxhbWJkYV9jb252ZXJzaW9uX3JhdGVzJGBDSEcgTWV0aHlsYXRpb24gUmF0ZWAsIGFkZCA9IFRSVUUsIGF4ZXMgPSBGLCB2ZXJ0aWNhbCA9IFQsIGppdHRlciA9IDAuMDIsIG1ldGhvZCA9ICJqaXR0ZXIiLCBwY2ggPSAxNikKCm1lYW4obGFtYmRhX2NvbnZlcnNpb25fcmF0ZXMkYENIRyBNZXRoeWxhdGlvbiBSYXRlYCkKc2QobGFtYmRhX2NvbnZlcnNpb25fcmF0ZXMkYENIRyBNZXRoeWxhdGlvbiBSYXRlYCkKYGBgCgpUaGVuIENISCBtZXRoeWxhdGlvbiByYXRlcyB0aGUgc2FtZSB3YXkuCgpgYGB7cn0KCmhpc3QobGFtYmRhX2NvbnZlcnNpb25fcmF0ZXMkYENISCBNZXRoeWxhdGlvbiBSYXRlYCkKCmJveHBsb3QobGFtYmRhX2NvbnZlcnNpb25fcmF0ZXMkYENISCBNZXRoeWxhdGlvbiBSYXRlYCwgb3V0bGluZSA9IEZBTFNFLCB5bGltID0gYyhtaW4obGFtYmRhX2NvbnZlcnNpb25fcmF0ZXMkYENISCBNZXRoeWxhdGlvbiBSYXRlYCkgLSAwLjEsIG1heChsYW1iZGFfY29udmVyc2lvbl9yYXRlcyRgQ0hIIE1ldGh5bGF0aW9uIFJhdGVgKSArIDAuMSkpCgpzdHJpcGNoYXJ0KGxhbWJkYV9jb252ZXJzaW9uX3JhdGVzJGBDSEggTWV0aHlsYXRpb24gUmF0ZWAsIGFkZCA9IFRSVUUsIGF4ZXMgPSBGLCB2ZXJ0aWNhbCA9IFQsIGppdHRlciA9IDAuMDIsIG1ldGhvZCA9ICJqaXR0ZXIiLCBwY2ggPSAxNikKCm1lYW4obGFtYmRhX2NvbnZlcnNpb25fcmF0ZXMkYENISCBNZXRoeWxhdGlvbiBSYXRlYCkKc2QobGFtYmRhX2NvbnZlcnNpb25fcmF0ZXMkYENISCBNZXRoeWxhdGlvbiBSYXRlYCkKYGBgCgoKCkFkZCBhIG5ldyBjaHVuayBieSBjbGlja2luZyB0aGUgKkluc2VydCBDaHVuayogYnV0dG9uIG9uIHRoZSB0b29sYmFyIG9yIGJ5IHByZXNzaW5nICpDdHJsK0FsdCtJKi4KCldoZW4geW91IHNhdmUgdGhlIG5vdGVib29rLCBhbiBIVE1MIGZpbGUgY29udGFpbmluZyB0aGUgY29kZSBhbmQgb3V0cHV0IHdpbGwgYmUgc2F2ZWQgYWxvbmdzaWRlIGl0IChjbGljayB0aGUgKlByZXZpZXcqIGJ1dHRvbiBvciBwcmVzcyAqQ3RybCtTaGlmdCtLKiB0byBwcmV2aWV3IHRoZSBIVE1MIGZpbGUpLgo=