Setup knitr and load utility functions

knitr::opts_chunk$set(echo = TRUE)
knitr::opts_knit$set(root.dir="E:/DISC/reproducibility")
utilities_path = "./source/utilities.r"
source(utilities_path)
As of rlang 0.4.0, dplyr must be at least version 0.8.0.
x dplyr 0.7.8 is too old for rlang 0.4.1.
i Please update dplyr to the latest version.
i Updating packages on Windows requires precautions:
  <https://github.com/jennybc/what-they-forgot/issues/62>reldist: Relative Distribution Methods
Version 1.6-6 created on 2016-10-07.
copyright (c) 2003, Mark S. Handcock, University of California-Los Angeles
 For citation information, type citation("reldist").
 Type help(package="reldist") to get started.

Load Data

RETINA original data can be found here.
We can directly download the expression matrix here.
The cluster assignments for the 44,808 retinal cells in the paper can be found here.

gene_bc_mat = as.matrix(read.csv("./data/RETINA/original_data/GSE63472_P14Retina_merged_digital_expression.txt.gz", sep = "\t", row.names = 1))
save_h5("./data/RETINA/raw.loom", t(gene_bc_mat))
[1] TRUE
cell_type = as.matrix(read.table("./data/RETINA/original_data/retina_clusteridentities.txt", sep = "\t", row.names = 1))[, 1]
cell_type[cell_type == 1] = "Horizontal"
cell_type[cell_type == 2] = "Retinal Ganglion"
cell_type[cell_type %in% seq(3, 23)] = "Amacrine"
cell_type[cell_type == 24] = "Rod"
cell_type[cell_type == 25] = "Cone"
cell_type[cell_type %in% seq(26, 33)] = "Bipolar"
cell_type[cell_type == 34] = "Muller glia"
cell_type[cell_type == 35] = "Astrocytes"
cell_type[cell_type == 36] = "Fibroblasts"
cell_type[cell_type == 37] = "Vascular endothelium"
cell_type[cell_type == 38] = "Pericytes"
cell_type[cell_type == 39] = "Microglia"
saveRDS(cell_type, "./data/RETINA/cell_type.rds")

Reference

Macosko, Evan Z. et al. Highly Parallel Genome-wide Expression Profiling of Individual Cells Using Nanoliter Droplets. Cell 161, 1202-1214 (2015).

LS0tDQp0aXRsZTogIkRhdGEgcHJlcGFyYXRpb24gZm9yIFJFVElOQSINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQojIyMgU2V0dXAga25pdHIgYW5kIGxvYWQgdXRpbGl0eSBmdW5jdGlvbnMNCmBgYHtyIHNldHVwfQ0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQ0Ka25pdHI6Om9wdHNfa25pdCRzZXQocm9vdC5kaXI9IkU6L0RJU0MvcmVwcm9kdWNpYmlsaXR5IikNCmBgYA0KYGBge3J9DQp1dGlsaXRpZXNfcGF0aCA9ICIuL3NvdXJjZS91dGlsaXRpZXMuciINCnNvdXJjZSh1dGlsaXRpZXNfcGF0aCkNCmBgYA0KIyMjIExvYWQgRGF0YQ0KUkVUSU5BIG9yaWdpbmFsIGRhdGEgY2FuIGJlIGZvdW5kIDxhIGhyZWY9Imh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvZ2VvL3F1ZXJ5L2FjYy5jZ2k/YWNjPUdTRTYzNDcyIj5oZXJlPC9hPi48L2JyPg0KV2UgY2FuIGRpcmVjdGx5IGRvd25sb2FkIHRoZSBleHByZXNzaW9uIG1hdHJpeCA8YSBocmVmPSJodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L2dlby9kb3dubG9hZC8/YWNjPUdTRTYzNDcyJmZvcm1hdD1maWxlJmZpbGU9R1NFNjM0NzIlNUZQMTRSZXRpbmElNUZtZXJnZWQlNUZkaWdpdGFsJTVGZXhwcmVzc2lvbiUyRXR4dCUyRWd6Ij5oZXJlPC9hPi48L2JyPg0KVGhlIGNsdXN0ZXIgYXNzaWdubWVudHMgZm9yIHRoZSA0NCw4MDggcmV0aW5hbCBjZWxscyBpbiA8YSBocmVmPSJodHRwczovL3d3dy5zY2llbmNlZGlyZWN0LmNvbS9zY2llbmNlL2FydGljbGUvcGlpL1MwMDkyODY3NDE1MDA1NDk4Ij50aGUgcGFwZXI8L2E+IGNhbiBiZSBmb3VuZCA8YSBocmVmPSJodHRwOi8vbWNjYXJyb2xsbGFiLm9yZy93cC1jb250ZW50L3VwbG9hZHMvMjAxNS8wNS9yZXRpbmFfY2x1c3RlcmlkZW50aXRpZXMudHh0Ij5oZXJlPC9hPi4NCmBgYHtyfQ0KZ2VuZV9iY19tYXQgPSBhcy5tYXRyaXgocmVhZC5jc3YoIi4vZGF0YS9SRVRJTkEvb3JpZ2luYWxfZGF0YS9HU0U2MzQ3Ml9QMTRSZXRpbmFfbWVyZ2VkX2RpZ2l0YWxfZXhwcmVzc2lvbi50eHQuZ3oiLCBzZXAgPSAiXHQiLCByb3cubmFtZXMgPSAxKSkNCnNhdmVfaDUoIi4vZGF0YS9SRVRJTkEvcmF3Lmxvb20iLCB0KGdlbmVfYmNfbWF0KSkNCmBgYA0KYGBge3J9DQpjZWxsX3R5cGUgPSBhcy5tYXRyaXgocmVhZC50YWJsZSgiLi9kYXRhL1JFVElOQS9vcmlnaW5hbF9kYXRhL3JldGluYV9jbHVzdGVyaWRlbnRpdGllcy50eHQiLCBzZXAgPSAiXHQiLCByb3cubmFtZXMgPSAxKSlbLCAxXQ0KY2VsbF90eXBlW2NlbGxfdHlwZSA9PSAxXSA9ICJIb3Jpem9udGFsIg0KY2VsbF90eXBlW2NlbGxfdHlwZSA9PSAyXSA9ICJSZXRpbmFsIEdhbmdsaW9uIg0KY2VsbF90eXBlW2NlbGxfdHlwZSAlaW4lIHNlcSgzLCAyMyldID0gIkFtYWNyaW5lIg0KY2VsbF90eXBlW2NlbGxfdHlwZSA9PSAyNF0gPSAiUm9kIg0KY2VsbF90eXBlW2NlbGxfdHlwZSA9PSAyNV0gPSAiQ29uZSINCmNlbGxfdHlwZVtjZWxsX3R5cGUgJWluJSBzZXEoMjYsIDMzKV0gPSAiQmlwb2xhciINCmNlbGxfdHlwZVtjZWxsX3R5cGUgPT0gMzRdID0gIk11bGxlciBnbGlhIg0KY2VsbF90eXBlW2NlbGxfdHlwZSA9PSAzNV0gPSAiQXN0cm9jeXRlcyINCmNlbGxfdHlwZVtjZWxsX3R5cGUgPT0gMzZdID0gIkZpYnJvYmxhc3RzIg0KY2VsbF90eXBlW2NlbGxfdHlwZSA9PSAzN10gPSAiVmFzY3VsYXIgZW5kb3RoZWxpdW0iDQpjZWxsX3R5cGVbY2VsbF90eXBlID09IDM4XSA9ICJQZXJpY3l0ZXMiDQpjZWxsX3R5cGVbY2VsbF90eXBlID09IDM5XSA9ICJNaWNyb2dsaWEiDQpzYXZlUkRTKGNlbGxfdHlwZSwgIi4vZGF0YS9SRVRJTkEvY2VsbF90eXBlLnJkcyIpDQpgYGANCiMjIyBSZWZlcmVuY2UNCk1hY29za28sIEV2YW4gWi4gZXQgYWwuIEhpZ2hseSBQYXJhbGxlbCBHZW5vbWUtd2lkZSBFeHByZXNzaW9uIFByb2ZpbGluZyBvZiBJbmRpdmlkdWFsIENlbGxzIFVzaW5nIE5hbm9saXRlciBEcm9wbGV0cy4gQ2VsbCAxNjEsIDEyMDItMTIxNCAoMjAxNSku