1 A differential-expression-ish analysis of the subcu tnseq samples.

index.html

2 Visualize some sample metrics for the subcutaneous infection

In this first block we create a set of initial pictures and we will show them below.

subcu <- set_expt_colors(subcu)
## Error in is.factor(x): object 'subcu' not found
subcu_metrics <- sm(graph_metrics(subcu))
## Error in corheat$plot: $ operator is invalid for atomic vectors
subcu_norm <- sm(normalize_expt(subcu, transform="log2", convert="cpm", norm="quant", filter=TRUE))
## Error in normalize_expt(subcu, transform = "log2", convert = "cpm", norm = "quant", : object 'subcu' not found
subcu_norm_metrics <- sm(graph_metrics(subcu_norm))
## Error in corheat$plot: $ operator is invalid for atomic vectors

Now we have raw-data metrics and default-normalized metrics. Lets visualize some of them.

subcu_metrics$libsize
## Error in eval(expr, envir, enclos): object 'subcu_metrics' not found
## mouset48r2 is low, subcut0 is high  They are not tragic
subcu_metrics$density
## Error in eval(expr, envir, enclos): object 'subcu_metrics' not found
subcu_metrics$boxplot
## Error in eval(expr, envir, enclos): object 'subcu_metrics' not found
## Ok, I am a bit concerned about the 48 hour data
subcu_norm_metrics$corheat
## Error in eval(expr, envir, enclos): object 'subcu_norm_metrics' not found
subcu_metrics$legend
## Error in eval(expr, envir, enclos): object 'subcu_metrics' not found
## t0 is brightest pink, t12 is 2nd brightest, t24 starting to get brown, t48 is brownish
## There is some funky batch effect going on which we will need to address
## Yoann wants colors:  t0='red', t12='orange', t24='yellow', t48='green'
subcu_norm_metrics$pcaplot
## Error in eval(expr, envir, enclos): object 'subcu_norm_metrics' not found
## the one 24 hour sample is a bit of an arsehole
subcu_norm_metrics$smc
## Error in eval(expr, envir, enclos): object 'subcu_norm_metrics' not found
subcu_norm_metrics$smd
## Error in eval(expr, envir, enclos): object 'subcu_norm_metrics' not found
## t24 m2v2

Ok, so subcutaneous sample time 24 m2v2 might be too damaged to use. Lets see if it is possible to do some sort of batch correction to salvage it?

attempt <- sm(normalize_expt(subcu, transform="log2", batch="fsva",
                             filter=TRUE))
## Error in normalize_expt(subcu, transform = "log2", batch = "fsva", filter = TRUE): object 'subcu' not found
attempt_metrics <- graph_metrics(attempt)
## Graphing number of non-zero genes with respect to CPM by library.
## Graphing library sizes.
## Warning in plot_libsize(expt, title = libsize_title, ...): restarting interrupted promise
## evaluation
## Graphing a boxplot.
## Warning in plot_boxplot(expt, title = boxplot_title, ...): restarting interrupted promise
## evaluation
## Graphing a correlation heatmap.
## Warning in plot_heatmap(expt_data, expt_colors = expt_colors, expt_design = expt_design, :
## restarting interrupted promise evaluation
## Graphing a standard median correlation.
## Warning in plot_sm(expt, method = cormethod, title = smc_title, ...): restarting
## interrupted promise evaluation
## Graphing a distance heatmap.
## Warning in plot_heatmap(expt_data, expt_colors = expt_colors, expt_design = expt_design, :
## restarting interrupted promise evaluation
## Graphing a standard median distance.
## Warning in plot_sm(expt, method = distmethod, title = smd_title, ...): restarting
## interrupted promise evaluation
## Graphing a PCA plot.
## Warning in plot_pca(expt, title = pca_title, ...): restarting interrupted promise
## evaluation
## Plotting a density plot.
## Warning in plot_density(expt, title = dens_title): restarting interrupted promise
## evaluation
## Printing a color to condition legend.
## Error in corheat$plot: $ operator is invalid for atomic vectors
attempt_metrics$pcaplot
## Error in eval(expr, envir, enclos): object 'attempt_metrics' not found
## This might be valid?
attempt_metrics$corheat
## Error in eval(expr, envir, enclos): object 'attempt_metrics' not found
## The early time points are very similar to each other and so mixed
## Oh, 1 t12 sample clusters with t24, that is annoying
attempt_metrics$disheat
## Error in eval(expr, envir, enclos): object 'attempt_metrics' not found
## Ditto
attempt_metrics$smc
## Error in eval(expr, envir, enclos): object 'attempt_metrics' not found
## This suggests t48r1v1 as will the distance
attempt_metrics$smd
## Error in eval(expr, envir, enclos): object 'attempt_metrics' not found
## hmm using this normalization, t48r1v1 might be a problem.
attempt_metrics$qqrat
## Error in eval(expr, envir, enclos): object 'attempt_metrics' not found
## According to this, the following samples might be jerks: mouset48r2v1, mouset48r1v1, subcut12m1v2

The question now is, can we drop one or more of these samples and still have a valid pairwise comparison?

The primary candidate for dropping is: t48r1v1

remove <- expt_subset(expt=subcu, subset="sampleid!='mouset48r1v1'")
## Error in expt_subset(expt = subcu, subset = "sampleid!='mouset48r1v1'"): object 'subcu' not found
remove_norm <- sm(normalize_expt(remove, transform="log2", convert="cpm",
                                 norm="quant", filter=TRUE, batch="fsva"))
## Error in expt[["state"]]: object of type 'closure' is not subsettable
pp("images/removed_one_pca.png")
plot_pca(remove_norm)$plot
## Error in plot_pca(remove_norm): object 'remove_norm' not found
dev.off()
## png 
##   2
## Removing that one sample messes up the pca, that is annoying
plot_corheat(remove_norm)
## Error in plot_heatmap(expt_data, expt_colors = expt_colors, expt_design = expt_design, : object 'remove_norm' not found
## and also the correlations get worse, damners

2.1 Attempt a differential expression

subcu_filt <- normalize_expt(subcu, filter=TRUE)
## Error in normalize_expt(subcu, filter = TRUE): object 'subcu' not found
subcu_de <- all_pairwise(subcu_filt, model_batch="fsva")
## Error in get_model_adjust(input, estimate_type = model_batch, surrogates = surrogates): object 'subcu_filt' not found
keepers <- list(
    "t12vt0" = c("subcut12","subcut0"),
    "t24vt0" = c("subcut24","subcut0"),
    "t48vt0" = c("subcut48","subcut0")
    )
subcu_tables <- combine_de_tables(subcu_de, keepers=keepers,
                                  excel=paste0("excel/subcu_tables-v", ver, ".xlsx"))
## Error in combine_de_tables(subcu_de, keepers = keepers, excel = paste0("excel/subcu_tables-v", : object 'subcu_de' not found
subcu_sig <- extract_significant_genes(subcu_tables, p_type="bad",
                                       excel=paste0("excel/subcu_significant-v", ver, ".xlsx"))
## Error in extract_significant_genes(subcu_tables, p_type = "bad", excel = paste0("excel/subcu_significant-v", : object 'subcu_tables' not found
LS0tCnRpdGxlOiAiUk5BL1ROU2VxIG9mIFMucHlvZ2VuZXMgNTQ0ODogU3ViY3V0YW5lb3VzIGluZmVjdGlvbiIKYXV0aG9yOiAiYXRiIGFiZWxld0BnbWFpbC5jb20iCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCIKb3V0cHV0OgogaHRtbF9kb2N1bWVudDoKICBjb2RlX2Rvd25sb2FkOiB0cnVlCiAgY29kZV9mb2xkaW5nOiBzaG93CiAgZmlnX2NhcHRpb246IHRydWUKICBmaWdfaGVpZ2h0OiA3CiAgZmlnX3dpZHRoOiA3CiAgaGlnaGxpZ2h0OiBkZWZhdWx0CiAga2VlcF9tZDogZmFsc2UKICBtb2RlOiBzZWxmY29udGFpbmVkCiAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlCiAgc2VsZl9jb250YWluZWQ6IHRydWUKICB0aGVtZTogcmVhZGFibGUKICB0b2M6IHRydWUKICB0b2NfZmxvYXQ6CiAgICBjb2xsYXBzZWQ6IGZhbHNlCiAgICBzbW9vdGhfc2Nyb2xsOiBmYWxzZQotLS0KCjxzdHlsZT4KICA8IS0tIERvY3VtZW50IHByZWx1ZGUgcmV2aXNpb24gMjAxNy0wMiAtLT4KICBib2R5IC5tYWluLWNvbnRhaW5lciB7CiAgICBtYXgtd2lkdGg6IDE2MDBweDsKfQo8L3N0eWxlPgoKYGBge3Igb3B0aW9ucywgaW5jbHVkZT1GQUxTRX0KIyMgVGhlc2UgYXJlIHRoZSBvcHRpb25zIEkgdGVuZCB0byBmYXZvcgpsaWJyYXJ5KCJocGdsdG9vbHMiKQp0dCA8LSBkZXZ0b29sczo6bG9hZF9hbGwoIn4vaHBnbHRvb2xzIikKa25pdHI6Om9wdHNfa25pdCRzZXQoCiAgICBwcm9ncmVzcyA9IFRSVUUsCiAgICB2ZXJib3NlID0gVFJVRSwKICAgIHdpZHRoID0gOTAsCiAgICBlY2hvID0gVFJVRSkKa25pdHI6Om9wdHNfY2h1bmskc2V0KAogICAgZXJyb3IgPSBUUlVFLAogICAgZmlnLndpZHRoID0gOCwKICAgIGZpZy5oZWlnaHQgPSA4LAogICAgZHBpID0gOTYpCm9wdGlvbnMoCiAgICBkaWdpdHMgPSA0LAogICAgc3RyaW5nc0FzRmFjdG9ycyA9IEZBTFNFLAogICAga25pdHIuZHVwbGljYXRlLmxhYmVsID0gImFsbG93IikKZ2dwbG90Mjo6dGhlbWVfc2V0KGdncGxvdDI6OnRoZW1lX2J3KGJhc2Vfc2l6ZT0xMCkpCnNldC5zZWVkKDEpCnZlciA8LSAiMjAxNzA2MDUiCnByZXZpb3VzX2ZpbGUgPC0gImFubm90YXRpb24uUm1kIgpgYGAKCmBgYHtyIGxvYWRtZSwgaW5jbHVkZT1GQUxTRX0KdG1wIDwtIHRyeShzbShsb2FkbWUoZmlsZW5hbWU9cGFzdGUwKGdzdWIocGF0dGVybj0iXFwuUm1kIiwgcmVwbGFjZT0iIiwgeD1wcmV2aW91c19maWxlKSwgIi12IiwgdmVyLCAiLnJkYS54eiIpKSkpCmBgYAoKYGBge3IgcmVuZGVyLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpybWRfZmlsZSA8LSAic3ViY3UuUm1kIgp0aGlzX3NhdmUgPC0gcGFzdGUwKGdzdWIocGF0dGVybj0iXFwuUm1kIiwgcmVwbGFjZT0iIiwgeD1ybWRfZmlsZSksICItdiIsIHZlciwgIi5yZGEueHoiKQoKcm1hcmtkb3duOjpyZW5kZXIocm1kX2ZpbGUpCgojIyBBbiBleHRyYSByZW5kZXJlciBmb3IgcGRmIG91dHB1dApybWFya2Rvd246OnJlbmRlcihybWRfZmlsZSwgb3V0cHV0X2Zvcm1hdD0icGRmX2RvY3VtZW50Iiwgb3V0cHV0X29wdGlvbnM9Yygic2tpcF9odG1sIikpCmBgYAoKQSBkaWZmZXJlbnRpYWwtZXhwcmVzc2lvbi1pc2ggYW5hbHlzaXMgb2YgdGhlIHN1YmN1IHRuc2VxIHNhbXBsZXMuCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKW2luZGV4Lmh0bWxdKGluZGV4Lmh0bWwpCgojIFZpc3VhbGl6ZSBzb21lIHNhbXBsZSBtZXRyaWNzIGZvciB0aGUgc3ViY3V0YW5lb3VzIGluZmVjdGlvbgoKSW4gdGhpcyBmaXJzdCBibG9jayB3ZSBjcmVhdGUgYSBzZXQgb2YgaW5pdGlhbCBwaWN0dXJlcyBhbmQgd2Ugd2lsbCBzaG93IHRoZW0gYmVsb3cuCgpgYGB7ciBzdWJjdV9tZXRyaWNzLCBmaWcuc2hvdz0iaGlkZSJ9CnN1YmN1IDwtIHNldF9leHB0X2NvbG9ycyhzdWJjdSkKc3ViY3VfbWV0cmljcyA8LSBzbShncmFwaF9tZXRyaWNzKHN1YmN1KSkKc3ViY3Vfbm9ybSA8LSBzbShub3JtYWxpemVfZXhwdChzdWJjdSwgdHJhbnNmb3JtPSJsb2cyIiwgY29udmVydD0iY3BtIiwgbm9ybT0icXVhbnQiLCBmaWx0ZXI9VFJVRSkpCnN1YmN1X25vcm1fbWV0cmljcyA8LSBzbShncmFwaF9tZXRyaWNzKHN1YmN1X25vcm0pKQpgYGAKCk5vdyB3ZSBoYXZlIHJhdy1kYXRhIG1ldHJpY3MgYW5kIGRlZmF1bHQtbm9ybWFsaXplZCBtZXRyaWNzLiAgTGV0cyB2aXN1YWxpemUgc29tZSBvZiB0aGVtLgoKYGBge3Igc3ViY3VfdmlzfQpzdWJjdV9tZXRyaWNzJGxpYnNpemUKCiMjIG1vdXNldDQ4cjIgaXMgbG93LCBzdWJjdXQwIGlzIGhpZ2ggIFRoZXkgYXJlIG5vdCB0cmFnaWMKc3ViY3VfbWV0cmljcyRkZW5zaXR5CgpzdWJjdV9tZXRyaWNzJGJveHBsb3QKCiMjIE9rLCBJIGFtIGEgYml0IGNvbmNlcm5lZCBhYm91dCB0aGUgNDggaG91ciBkYXRhCnN1YmN1X25vcm1fbWV0cmljcyRjb3JoZWF0CgpzdWJjdV9tZXRyaWNzJGxlZ2VuZAoKIyMgdDAgaXMgYnJpZ2h0ZXN0IHBpbmssIHQxMiBpcyAybmQgYnJpZ2h0ZXN0LCB0MjQgc3RhcnRpbmcgdG8gZ2V0IGJyb3duLCB0NDggaXMgYnJvd25pc2gKIyMgVGhlcmUgaXMgc29tZSBmdW5reSBiYXRjaCBlZmZlY3QgZ29pbmcgb24gd2hpY2ggd2Ugd2lsbCBuZWVkIHRvIGFkZHJlc3MKIyMgWW9hbm4gd2FudHMgY29sb3JzOiAgdDA9J3JlZCcsIHQxMj0nb3JhbmdlJywgdDI0PSd5ZWxsb3cnLCB0NDg9J2dyZWVuJwpzdWJjdV9ub3JtX21ldHJpY3MkcGNhcGxvdAoKIyMgdGhlIG9uZSAyNCBob3VyIHNhbXBsZSBpcyBhIGJpdCBvZiBhbiBhcnNlaG9sZQpzdWJjdV9ub3JtX21ldHJpY3Mkc21jCnN1YmN1X25vcm1fbWV0cmljcyRzbWQKIyMgdDI0IG0ydjIKYGBgCgpPaywgc28gc3ViY3V0YW5lb3VzIHNhbXBsZSB0aW1lIDI0IG0ydjIgbWlnaHQgYmUgdG9vIGRhbWFnZWQgdG8gdXNlLiAgTGV0cyBzZWUgaWYgaXQgaXMgcG9zc2libGUgdG8KZG8gc29tZSBzb3J0IG9mIGJhdGNoIGNvcnJlY3Rpb24gdG8gc2FsdmFnZSBpdD8KCmBgYHtyIGF0dGVtcHRfYmF0Y2h9CmF0dGVtcHQgPC0gc20obm9ybWFsaXplX2V4cHQoc3ViY3UsIHRyYW5zZm9ybT0ibG9nMiIsIGJhdGNoPSJmc3ZhIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI9VFJVRSkpCmF0dGVtcHRfbWV0cmljcyA8LSBncmFwaF9tZXRyaWNzKGF0dGVtcHQpCmF0dGVtcHRfbWV0cmljcyRwY2FwbG90CgojIyBUaGlzIG1pZ2h0IGJlIHZhbGlkPwphdHRlbXB0X21ldHJpY3MkY29yaGVhdAojIyBUaGUgZWFybHkgdGltZSBwb2ludHMgYXJlIHZlcnkgc2ltaWxhciB0byBlYWNoIG90aGVyIGFuZCBzbyBtaXhlZAojIyBPaCwgMSB0MTIgc2FtcGxlIGNsdXN0ZXJzIHdpdGggdDI0LCB0aGF0IGlzIGFubm95aW5nCmF0dGVtcHRfbWV0cmljcyRkaXNoZWF0CiMjIERpdHRvCmF0dGVtcHRfbWV0cmljcyRzbWMKIyMgVGhpcyBzdWdnZXN0cyB0NDhyMXYxIGFzIHdpbGwgdGhlIGRpc3RhbmNlCmF0dGVtcHRfbWV0cmljcyRzbWQKIyMgaG1tIHVzaW5nIHRoaXMgbm9ybWFsaXphdGlvbiwgdDQ4cjF2MSBtaWdodCBiZSBhIHByb2JsZW0uCmF0dGVtcHRfbWV0cmljcyRxcXJhdAojIyBBY2NvcmRpbmcgdG8gdGhpcywgdGhlIGZvbGxvd2luZyBzYW1wbGVzIG1pZ2h0IGJlIGplcmtzOiBtb3VzZXQ0OHIydjEsIG1vdXNldDQ4cjF2MSwgc3ViY3V0MTJtMXYyCmBgYAoKVGhlIHF1ZXN0aW9uIG5vdyBpcywgY2FuIHdlIGRyb3Agb25lIG9yIG1vcmUgb2YgdGhlc2Ugc2FtcGxlcyBhbmQgc3RpbGwgaGF2ZSBhIHZhbGlkIHBhaXJ3aXNlCmNvbXBhcmlzb24/CgpUaGUgcHJpbWFyeSBjYW5kaWRhdGUgZm9yIGRyb3BwaW5nIGlzOiAgdDQ4cjF2MQoKYGBge3IgcmVtb3ZlX29uZX0KcmVtb3ZlIDwtIGV4cHRfc3Vic2V0KGV4cHQ9c3ViY3UsIHN1YnNldD0ic2FtcGxlaWQhPSdtb3VzZXQ0OHIxdjEnIikKcmVtb3ZlX25vcm0gPC0gc20obm9ybWFsaXplX2V4cHQocmVtb3ZlLCB0cmFuc2Zvcm09ImxvZzIiLCBjb252ZXJ0PSJjcG0iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3JtPSJxdWFudCIsIGZpbHRlcj1UUlVFLCBiYXRjaD0iZnN2YSIpKQpwcCgiaW1hZ2VzL3JlbW92ZWRfb25lX3BjYS5wbmciKQpwbG90X3BjYShyZW1vdmVfbm9ybSkkcGxvdApkZXYub2ZmKCkKCiMjIFJlbW92aW5nIHRoYXQgb25lIHNhbXBsZSBtZXNzZXMgdXAgdGhlIHBjYSwgdGhhdCBpcyBhbm5veWluZwpwbG90X2NvcmhlYXQocmVtb3ZlX25vcm0pCiMjIGFuZCBhbHNvIHRoZSBjb3JyZWxhdGlvbnMgZ2V0IHdvcnNlLCBkYW1uZXJzCmBgYAoKIyMgQXR0ZW1wdCBhIGRpZmZlcmVudGlhbCBleHByZXNzaW9uCgpgYGB7ciBkZV9hdHRlbXB0c30Kc3ViY3VfZmlsdCA8LSBub3JtYWxpemVfZXhwdChzdWJjdSwgZmlsdGVyPVRSVUUpCnN1YmN1X2RlIDwtIGFsbF9wYWlyd2lzZShzdWJjdV9maWx0LCBtb2RlbF9iYXRjaD0iZnN2YSIpCmtlZXBlcnMgPC0gbGlzdCgKICAgICJ0MTJ2dDAiID0gYygic3ViY3V0MTIiLCJzdWJjdXQwIiksCiAgICAidDI0dnQwIiA9IGMoInN1YmN1dDI0Iiwic3ViY3V0MCIpLAogICAgInQ0OHZ0MCIgPSBjKCJzdWJjdXQ0OCIsInN1YmN1dDAiKQogICAgKQpzdWJjdV90YWJsZXMgPC0gY29tYmluZV9kZV90YWJsZXMoc3ViY3VfZGUsIGtlZXBlcnM9a2VlcGVycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsPXBhc3RlMCgiZXhjZWwvc3ViY3VfdGFibGVzLXYiLCB2ZXIsICIueGxzeCIpKQoKc3ViY3Vfc2lnIDwtIGV4dHJhY3Rfc2lnbmlmaWNhbnRfZ2VuZXMoc3ViY3VfdGFibGVzLCBwX3R5cGU9ImJhZCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VsPXBhc3RlMCgiZXhjZWwvc3ViY3Vfc2lnbmlmaWNhbnQtdiIsIHZlciwgIi54bHN4IikpCmBgYAo=