Litviňuková, M., Talavera-López, C., Maatz, H., Reichart, D., Worth, C.L., Lindberg, E.L., Kanda, M., Polanski, K., Heinig, M., Lee, M., et al. (2020). Cells of the adult human heart. Nature 588, 466–472.
Load required packages.
library(tidyverse)
library(magrittr)
library(Matrix)
library(patchwork)
library(extrafont)
library(reticulate)
Sys.time()
## [1] "2021-03-12 01:23:37 CST"
source(
file = file.path(
SCRIPT_DIR,"utilities.R"
) )
"/Users/jialei/Dropbox/Data/Projects/UTSW/HCM/" PROJECT_DIR <-
Load re-mapped UMI count matrix stored in the h5ad file.
reticulate::import(module = "anndata", convert = TRUE) ad <-
## Python version used by reticulate is different to the current python runtime
## current: /Users/jialei/.pyenv/versions/3.8.2/bin/python
## reticulate: /Users/jialei/.pyenv/shims/python
## Switch radian to the target python environment?
## radian: force reticulate to use /Users/jialei/.pyenv/versions/3.8.2/bin/python
print(ad$`__version__`)
## [1] "0.7.5"
ad$read_h5ad(
adata <-filename = file.path(
PROJECT_DIR,"raw/public/PRJEB39602/matrices/predefined",
"adata.h5ad"
),backed = "r"
)
Load metadata released along with the publication (extracted from h5ad file hosted at the HCA portal).
read_csv(
embedding_predefined <-file = file.path(
PROJECT_DIR,"raw/public/PRJEB39602/ad98d3cd-26fb-4ee3-99c9-8a2ab085e737.hca_heart_global_ctl200723_freeze",
"embedding_global_raw.gz"
)%>%
) dplyr::rename(cell = X1)
## Warning: Missing column names filled in: 'X1' [1]
##
## ── Column specification ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## cols(
## .default = col_character(),
## n_counts = col_double(),
## n_genes = col_double(),
## percent_mito = col_double(),
## percent_ribo = col_double(),
## scrublet_score = col_double(),
## x_umap = col_double(),
## y_umap = col_double(),
## x_pca = col_double(),
## y_pca = col_double()
## )
## ℹ Use `spec()` for the full column specifications.
colnames(embedding_predefined) <- tolower(colnames(embedding_predefined))
%<>%
embedding_predefined dplyr::left_join(
$obs %>% tibble::rownames_to_column(var = "cell"),
adataby = c("cell" = "cell")
)
%>% head() embedding_predefined
Cell types
%>%
embedding_predefined dplyr::group_by(cell_type) %>%
dplyr::summarize(
num_cells = n(),
median_umi = median(n_counts),
median_features = median(n_genes)
%>%
) gt::gt() %>%
# gt::cols_label(n = "num_cells") %>%
gt::tab_options(table.font.size = "median")
cell_type | num_cells | median_umi | median_features |
---|---|---|---|
Adipocytes | 3799 | 3875.0 | 1707.0 |
Atrial_Cardiomyocyte | 23483 | 2868.0 | 1399.0 |
doublets | 623 | 688.0 | 484.0 |
Endothelial | 100579 | 1585.0 | 909.0 |
Fibroblast | 59341 | 1195.0 | 757.0 |
Lymphoid | 17217 | 1552.0 | 831.0 |
Mesothelial | 718 | 1967.0 | 1082.5 |
Myeloid | 23028 | 1655.5 | 896.0 |
Neuronal | 3961 | 1039.0 | 716.0 |
NotAssigned | 33998 | 2186.0 | 1230.0 |
Pericytes | 77856 | 1321.0 | 790.0 |
Smooth_muscle_cells | 16242 | 1831.0 | 988.0 |
Ventricular_Cardiomyocyte | 125289 | 3621.0 | 1545.0 |
Samples not included after re-mapping.
%>%
embedding_predefined dplyr::filter(
is.na(num_umis)
%>%
) dplyr::count(sample.x, region, name = "num_cells")
Cell types for these two samples.
%>%
embedding_predefined dplyr::filter(
is.na(num_umis)
%>%
) dplyr::count(cell_type, name = "num_cells")
Cell types
%>%
embedding_predefined tidyr::drop_na() %>%
dplyr::group_by(cell_type) %>%
dplyr::summarize(
num_cells = n(),
median_umi = median(n_counts),
median_features = median(n_genes),
median_umi_remapped = median(num_umis),
median_features_remapped = median(num_features)
%>%
) gt::gt() %>%
# gt::cols_label(n = "num_cells") %>%
gt::tab_options(table.font.size = "median")
cell_type | num_cells | median_umi | median_features | median_umi_remapped | median_features_remapped |
---|---|---|---|---|---|
Adipocytes | 3703 | 3824 | 1686.0 | 3892 | 1743 |
Atrial_Cardiomyocyte | 22883 | 2819 | 1381.0 | 2855 | 1380 |
doublets | 615 | 684 | 483.0 | 717 | 494 |
Endothelial | 100066 | 1583 | 908.0 | 1700 | 963 |
Fibroblast | 58631 | 1187 | 753.0 | 1206 | 763 |
Lymphoid | 16785 | 1546 | 823.0 | 1597 | 858 |
Mesothelial | 718 | 1967 | 1082.5 | 2023 | 1082 |
Myeloid | 22705 | 1633 | 889.0 | 1699 | 924 |
Neuronal | 3785 | 1007 | 701.0 | 1038 | 721 |
NotAssigned | 33767 | 2170 | 1224.0 | 2234 | 1259 |
Pericytes | 76843 | 1309 | 784.0 | 1352 | 814 |
Smooth_muscle_cells | 15793 | 1795 | 975.0 | 1846 | 1008 |
Ventricular_Cardiomyocyte | 125289 | 3621 | 1545.0 | 3706 | 1588 |
Anatomical region
%>%
embedding_predefined tidyr::drop_na() %>%
dplyr::group_by(region) %>%
dplyr::summarize(
num_cells = n(),
median_umi = median(n_counts),
median_features = median(n_genes),
median_umi_remapped = median(num_umis),
median_features_remapped = median(num_features)
%>%
) gt::gt() %>%
# gt::cols_label(n = "num_cells") %>%
gt::tab_options(table.font.size = "median")
region | num_cells | median_umi | median_features | median_umi_remapped | median_features_remapped |
---|---|---|---|---|---|
AX | 98251 | 1894 | 1007 | 1973 | 1047 |
LA | 70321 | 1793 | 984 | 1840 | 1006 |
LV | 107261 | 2139 | 1109 | 2256 | 1166 |
RA | 39365 | 1509 | 901 | 1537 | 911 |
RV | 84519 | 2173 | 1126 | 2308 | 1186 |
SP | 81866 | 1948 | 1022 | 2015 | 1058 |
Chromium Single Cell 3’ Reagent Kit version
%>%
embedding_predefined tidyr::drop_na() %>%
dplyr::group_by(version) %>%
dplyr::summarise(
num_cells = n(),
median_umi = median(n_counts),
median_features = median(n_genes),
median_umi_remapped = median(num_umis),
median_features_remapped = median(num_features)
%>%
) gt::gt() %>%
gt::tab_options(table.font.size = "median")
version | num_cells | median_umi | median_features | median_umi_remapped | median_features_remapped |
---|---|---|---|---|---|
V2 | 238154 | 1511 | 837 | 1536 | 850 |
V3 | 243429 | 2358 | 1248 | 2522 | 1330 |
Cell source
%>%
embedding_predefined tidyr::drop_na() %>%
dplyr::group_by(cell_source) %>%
dplyr::summarise(
num_cells = n(),
median_umi = median(n_counts),
median_features = median(n_genes),
median_umi_remapped = median(num_umis),
median_features_remapped = median(num_features)
%>%
) gt::gt() %>%
gt::tab_options(table.font.size = "median")
cell_source | num_cells | median_umi | median_features | median_umi_remapped | median_features_remapped |
---|---|---|---|---|---|
Harvard-Nuclei | 173610 | 2184 | 1211 | 2266 | 1264 |
Sanger-CD45 | 80597 | 2009 | 965 | 2079 | 1004 |
Sanger-Cells | 45885 | 2884 | 1368 | 3474 | 1591 |
Sanger-Nuclei | 181491 | 1423 | 837 | 1442 | 845 |
Source
%>%
embedding_predefined tidyr::drop_na() %>%
dplyr::group_by(source) %>%
dplyr::summarise(
num_cells = n(),
median_umi = median(n_counts),
median_features = median(n_genes),
median_umi_remapped = median(num_umis),
median_features_remapped = median(num_features)
%>%
) gt::gt() %>%
gt::tab_options(table.font.size = "median")
source | num_cells | median_umi | median_features | median_umi_remapped | median_features_remapped |
---|---|---|---|---|---|
CD45+ | 80597 | 2009 | 965 | 2079 | 1004 |
Cells | 45885 | 2884 | 1368 | 3474 | 1591 |
Nuclei | 355101 | 1811 | 1018 | 1861 | 1046 |
Age group
%>%
embedding_predefined tidyr::drop_na() %>%
dplyr::group_by(age_group) %>%
dplyr::summarise(
num_cells = n(),
median_umi = median(n_counts),
median_features = median(n_genes),
median_umi_remapped = median(num_umis),
median_features_remapped = median(num_features)
%>%
) gt::gt() %>%
gt::tab_options(table.font.size = "median")
age_group | num_cells | median_umi | median_features | median_umi_remapped | median_features_remapped |
---|---|---|---|---|---|
40-45 | 26934 | 2953 | 1481 | 3050 | 1544 |
45-50 | 32336 | 2100 | 1177 | 2192 | 1232 |
50-55 | 108472 | 2091 | 1148 | 2163 | 1196 |
55-60 | 48287 | 1571 | 914 | 1607 | 936 |
60-65 | 128207 | 2066 | 1043 | 2136 | 1079 |
65-70 | 108449 | 1803 | 937 | 1931 | 983 |
70-75 | 28898 | 1166 | 708 | 1162 | 702 |
Donor
%>%
embedding_predefined tidyr::drop_na() %>%
dplyr::group_by(donor) %>%
dplyr::summarise(
num_cell = n(),
median_umi = median(n_counts),
median_features = median(n_genes),
median_umi_remapped = median(num_umis),
median_features_remapped = median(num_features)
%>%
) gt::gt() %>%
gt::tab_options(table.font.size = "median")
donor | num_cell | median_umi | median_features | median_umi_remapped | median_features_remapped |
---|---|---|---|---|---|
D1 | 15397 | 1982.0 | 883 | 1997.0 | 895 |
D11 | 48930 | 2782.0 | 1263 | 2909.5 | 1325 |
D2 | 43143 | 1393.0 | 829 | 1414.0 | 845 |
D3 | 27022 | 1210.0 | 754 | 1217.0 | 757 |
D4 | 28898 | 1166.0 | 708 | 1162.0 | 702 |
D5 | 28799 | 1396.0 | 751 | 1416.0 | 759 |
D6 | 79650 | 1921.0 | 1003 | 2098.0 | 1069 |
D7 | 36134 | 2123.5 | 1050 | 2182.5 | 1074 |
H2 | 22216 | 1780.0 | 1065 | 1841.0 | 1107 |
H3 | 32458 | 2045.0 | 1176 | 2118.0 | 1227 |
H4 | 21265 | 1924.0 | 1076 | 1976.0 | 1112 |
H5 | 38401 | 2385.0 | 1273 | 2482.0 | 1337 |
H6 | 26934 | 2953.0 | 1481 | 3050.0 | 1544 |
H7 | 32336 | 2100.0 | 1177 | 2192.0 | 1232 |
Type: Donation after Circulatory Death (DCD), Donation after Brain Death (DCD)
%>%
embedding_predefined tidyr::drop_na() %>%
dplyr::group_by(type) %>%
dplyr::summarise(
num_cell = n(),
median_umi = median(n_counts),
median_features = median(n_genes),
median_umi_remapped = median(num_umis),
median_features_remapped = median(num_features)
%>%
) gt::gt() %>%
gt::tab_options(table.font.size = "median")
type | num_cell | median_umi | median_features | median_umi_remapped | median_features_remapped |
---|---|---|---|---|---|
DBD | 216029 | 2058 | 1133 | 2126 | 1178 |
DCD | 265554 | 1853 | 965 | 1943 | 1000 |
Cell embedding and annotation are extracted from h5ad file provided on the HCA portal.
"UMAP"
EMBEDDING_TITLE_PREFIX <- "predefined" embedding_type <-
0.1
GEOM_POINT_SIZE <- plot_embedding(
p_embedding_predefined_cell_type <-embedding = embedding_predefined[, c("x_umap", "y_umap")],
color_values = embedding_predefined$cell_type %>% as.factor(),
label = paste0(EMBEDDING_TITLE_PREFIX, "; Cell type"),
label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = GEOM_POINT_SIZE,
sort_values = FALSE,
rasterise = FALSE,
legend_size = 2
+
) theme_customized(legend_key_size = 2, legend_text_size = 5)
plot_embedding(
p_embedding_predefined_region <-embedding = embedding_predefined[, c("x_umap", "y_umap")],
color_values = embedding_predefined$region %>% as.factor(),
label = paste0(EMBEDDING_TITLE_PREFIX, "; Region"),
label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = GEOM_POINT_SIZE,
sort_values = FALSE,
rasterise = TRUE,
legend_size = 2,
legend_ncol = 2
+
) scale_color_manual(
values = scales::hue_pal()(
$region %>% unique() %>% length()
embedding_predefined
)+
) theme_customized(legend_key_size = 2, legend_text_size = 5)
plot_embedding(
p_embedding_predefined_donor <-embedding = embedding_predefined[, c("x_umap", "y_umap")],
color_values = embedding_predefined$donor %>% as.factor(),
label = paste0(EMBEDDING_TITLE_PREFIX, "; Donor"),
label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = GEOM_POINT_SIZE,
sort_values = FALSE,
rasterise = TRUE,
legend_size = 2,
legend_ncol = 2
+
) scale_color_manual(
values = scales::hue_pal()(
$donor %>% unique() %>% length()
embedding_predefined
)+
) theme_customized(legend_key_size = 2, legend_text_size = 5)
plot_embedding(
p_embedding_predefined_version <-embedding = embedding_predefined[, c("x_umap", "y_umap")],
color_values = embedding_predefined$version %>% as.factor(),
label = paste0(EMBEDDING_TITLE_PREFIX, "; Version"),
label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = GEOM_POINT_SIZE,
sort_values = FALSE,
rasterise = TRUE,
legend_size = 2
+
) scale_color_manual(
values = scales::hue_pal()(
$version %>% unique() %>% length()
embedding_predefined
)+
) theme_customized(legend_key_size = 2, legend_text_size = 5)
plot_embedding(
p_embedding_predefined_source <-embedding = embedding_predefined[, c("x_umap", "y_umap")],
color_values = embedding_predefined$source %>% as.factor(),
label = paste0(EMBEDDING_TITLE_PREFIX, "; Source"),
label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = GEOM_POINT_SIZE,
sort_values = FALSE,
rasterise = TRUE,
legend_size = 2
+
) scale_color_manual(
values = scales::hue_pal()(
$source %>% unique() %>% length()
embedding_predefined
)+
) theme_customized(legend_key_size = 2, legend_text_size = 5)
plot_embedding(
p_embedding_predefined_type <-embedding = embedding_predefined[, c("x_umap", "y_umap")],
color_values = embedding_predefined$type %>% as.factor(),
label = paste0(EMBEDDING_TITLE_PREFIX, "; Type"),
label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = GEOM_POINT_SIZE,
sort_values = FALSE,
rasterise = TRUE,
legend_size = 2
+
) scale_color_manual(
values = scales::hue_pal()(
$type %>% unique() %>% length()
embedding_predefined
)+
) theme_customized(legend_key_size = 2, legend_text_size = 5)
list(
p_embedding_predefined_cell_type,
p_embedding_predefined_region,
p_embedding_predefined_donor,
p_embedding_predefined_version,
p_embedding_predefined_source,
p_embedding_predefined_type%>%
) purrr::reduce(`+`) +
patchwork::plot_layout(ncol = 3) +
patchwork::plot_annotation(
theme = theme(plot.margin = margin())
)
$percent_mito %>% range() embedding_predefined
## [1] 0.0000000 0.1999672
plot_embedding(
p_embedding_predefined_MT <-embedding = embedding_predefined[, c("x_umap", "y_umap")],
color_values = embedding_predefined$percent_mito,
label = paste0(EMBEDDING_TITLE_PREFIX, "; Mitochondria %"),
label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = GEOM_POINT_SIZE,
geom_point_alpha = 1,
sort_values = TRUE,
shuffle_values = FALSE,
label_size = 2.5,
label_hjust = 0,
label_vjust = 0,
rasterise = TRUE,
dpi = 600,
legend_size = 2,
legend_ncol = 1
+
) theme_customized(
x = 0.035,
y = 0.995,
legend_key_size = 1.5,
legend_text_size = 4,
border_color = "#b3b3b3",
strip_color = "#b3b3b3"
)
0.15
MT_RATIO_THRESHOLD <- plot_embedding(
p_embedding_predefined_MT2 <-embedding = embedding_predefined[, c("x_umap", "y_umap")],
color_values = as.numeric(
$percent_mito >= MT_RATIO_THRESHOLD
embedding_predefined%>% as.factor(),
) label = paste(
"UMAP", MT_RATIO_THRESHOLD,
sum(embedding_predefined$percent_mito >= MT_RATIO_THRESHOLD),
sep = "; "
),label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = FALSE,
geom_point_size = GEOM_POINT_SIZE,
sort_values = TRUE,
rasterise = TRUE,
legend_size = 2
+
) scale_color_manual(
values = c("grey70", "salmon")
+
) theme_customized(legend_key_size = 2, legend_text_size = 5)
The mitochondria ratios are extracted from h5ad file download from the HCA portal. There are 0 cells with mitochondria ratio higher than 0.2.
list(p_embedding_predefined_MT, p_embedding_predefined_MT2) %>%
purrr::reduce(`+`) +
patchwork::plot_layout(ncol = 2) +
patchwork::plot_annotation(
theme = theme(plot.margin = margin())
)
%>%
embedding_predefined dplyr::group_by(source) %>%
dplyr::summarise(
num_cells = n(),
median_mt_ratio_reported = median(percent_mito)
%>%
) gt::gt() %>%
gt::tab_options(table.font.size = "median")
source | num_cells | median_mt_ratio_reported |
---|---|---|
CD45+ | 80597 | 0.046094750 |
Cells | 45885 | 0.072591010 |
Nuclei | 359652 | 0.001283697 |
::map2(list("doublets", "NotAssigned"), c(0.15, 0.15), function(x, y) {
purrrplot_embedding(
embedding = embedding_predefined[, c("x_umap", "y_umap")],
color_values = as.numeric(embedding_predefined$cell_type == x) %>% as.factor(),
label = paste(
"UMAP", x, sum(embedding_predefined$cell_type == x),
sep = "; "
),label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = FALSE,
geom_point_size = y,
sort_values = TRUE,
rasterise = TRUE
+
) scale_color_manual(
values = c("grey70", "salmon")
+
) theme_customized()
%>%
}) purrr::reduce(`+`) +
patchwork::plot_layout(ncol = 2) +
patchwork::plot_annotation(
theme = theme(plot.margin = margin())
)
plot_embedding(
p_embedding_predefined_scrublet <-embedding = embedding_predefined[, c("x_umap", "y_umap")],
color_values = embedding_predefined$scrublet_score,
label = paste0(EMBEDDING_TITLE_PREFIX, "; Scrublet_score"),
label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = GEOM_POINT_SIZE,
geom_point_alpha = 1,
sort_values = TRUE,
shuffle_values = FALSE,
label_size = 2.5,
label_hjust = 0,
label_vjust = 0,
rasterise = TRUE,
dpi = 600,
legend_size = 3,
legend_ncol = 1
+
) theme_customized(
x = 0.035,
y = 0.995,
legend_key_size = 1.5,
legend_text_size = 4,
border_color = "#b3b3b3",
strip_color = "#b3b3b3"
)
0.3
SCRUBLET_SCORE_THRESHOLD <- plot_embedding(
p_embedding_predefined_scrublet2 <-embedding = embedding_predefined[, c("x_umap", "y_umap")],
color_values = as.numeric(
$scrublet_score >= SCRUBLET_SCORE_THRESHOLD
embedding_predefined%>% as.factor(),
) label = paste(
"UMAP", SCRUBLET_SCORE_THRESHOLD,
sum(embedding_predefined$scrublet_score >= SCRUBLET_SCORE_THRESHOLD),
sep = "; "
),label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = FALSE,
geom_point_size = GEOM_POINT_SIZE,
sort_values = TRUE,
rasterise = TRUE
+
) scale_color_manual(
values = c("grey70", "salmon")
+
) theme_customized()
The scrublet scores are extracted from h5ad file download from the HCA portal. There are 0 cells with scrublet scores higher than 0.3.
list(p_embedding_predefined_scrublet, p_embedding_predefined_scrublet2) %>%
purrr::reduce(`+`) +
patchwork::plot_layout(ncol = 2) +
patchwork::plot_annotation(
theme = theme(plot.margin = margin())
)
The distribution of scrublet scores for cells annotated as “doublets” and “NotAssigned” in the publication.
%>%
embedding_predefined dplyr::filter(cell_type %in% c("doublets", "NotAssigned")) %>%
dplyr::group_by(cell_type) %>%
dplyr::summarise(
num_cells = n(),
median_scrublet_score_reported = median(scrublet_score),
median_mt_ratio_reported = median(percent_mito)
%>%
) gt::gt() %>%
gt::tab_options(table.font.size = "median")
cell_type | num_cells | median_scrublet_score_reported | median_mt_ratio_reported |
---|---|---|---|
doublets | 623 | 0.1254753 | 0.007220217 |
NotAssigned | 33998 | 0.1471215 | 0.011605416 |
Cells not included after re-mapping.
%>%
embedding_predefined dplyr::filter(
is.na(num_umis)
%>%
) dplyr::summarise(
num_cells = n(),
median_umis_reported = median(n_counts),
median_features_reported = median(n_genes)
%>%
) gt::gt() %>%
gt::tab_options(table.font.size = "median")
num_cells | median_umis_reported | median_features_reported |
---|---|---|
4551 | 2680 | 1489 |
plot_embedding(
embedding = embedding_predefined[, c("x_umap", "y_umap")],
color_values = as.numeric(embedding_predefined$num_umis %>% is.na()) %>% as.factor(),
label = paste(
"UMAP", sum(embedding_predefined$num_umis %>% is.na()),
sep = "; "
),label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = FALSE,
geom_point_size = 0.3,
sort_values = TRUE,
rasterise = TRUE
+
) scale_color_manual(values = c("grey70", "salmon")) +
theme_customized()
c(
cells_selected_atrial <-"aCM1",
"aCM2",
"aCM3",
"aCM4",
"aCM5"
)
c(
cells_selected_ventricular <-"vCM1",
"vCM2",
"vCM3",
"vCM4",
"vCM5"
)
c(
cells_selected_vascular <-"EC1_cap",
"EC10_CMC-like",
"EC2_cap",
"EC3_cap",
"EC4_immune",
"EC5_art",
"EC6_ven",
"EC7_atria",
"EC8_ln",
"EC9_FB-like",
"Meso",
"PC1_vent",
"PC2_atria",
"PC3_str",
"PC4_CMC-like",
"SMC1_basic",
"SMC2_art"
)
c(
cells_selected_fibroblast <-"FB1",
"FB2",
"FB3",
"FB4",
"FB5",
"FB6",
"FB7"
)
c(
cells_selected_immune <-"B_cells",
"CD14+Mo",
"CD16+Mo",
"CD4+T_cytox",
"CD4+T_tem",
"CD8+T_cytox",
"CD8+T_tem",
"DC",
"DOCK4+MØ1",
"DOCK4+MØ2",
"doublets",
"IL17RA+Mo",
"LYVE1+MØ1",
"LYVE1+MØ2",
"LYVE1+MØ3",
"Mast",
"MØ_AgP",
"MØ_mod",
"Mo_pi",
"NK",
"NKT",
"NØ"
)
c(
cells_selected_adipocyte <-"Adip1",
"Adip2",
"Adip3",
"Adip4"
)
c(
cells_selected_neuronal <-"NC1",
"NC2",
"NC3",
"NC4",
"NC5",
"NC6"
)
list(
cells_selected <-atrial = cells_selected_atrial,
ventricular = cells_selected_ventricular,
vascular = cells_selected_vascular,
fibroblast = cells_selected_fibroblast,
immune = cells_selected_immune,
adipocyte = cells_selected_adipocyte,
neuronal = cells_selected_neuronal
)
0.1
GEOM_POINT_SIZE <-
::map2(names(cells_selected), c(TRUE, TRUE, FALSE, TRUE, FALSE, TRUE, TRUE), function(x, y) {
purrr cells_selected[[x]]
cells_selected_in_group <-
setNames(
color_palette_cell_state <-object = c("grey70", scales::hue_pal()(length(cells_selected_in_group))),
nm = c("Other", cells_selected_in_group)
)
get_middle_points(
cell_type_labels <-embedding = embedding_predefined[, c("x_umap", "y_umap", "cell_states")],
x = "x_umap",
y = "y_umap",
group = "cell_states"
%>%
) filter(cell_states %in% cells_selected_in_group)
plot_embedding(
embedding = embedding_predefined[, c("x_umap", "y_umap", "cell_states")],
color_values = embedding_predefined %>%
mutate(
cell_states = case_when(
%in% cells_selected_in_group ~ cell_states,
cell_states TRUE ~ "Other"
)%>%
) pull(cell_states) %>%
as.factor() %>%
forcats::fct_relevel("Other", after = Inf),
label = paste0(EMBEDDING_TITLE_PREFIX, "; ", x),
label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = y,
geom_point_size = GEOM_POINT_SIZE,
sort_values = FALSE,
rasterise = TRUE,
legend_ncol = 1
+
) scale_color_manual(
values = color_palette_cell_state
+
) # theme_customized() +
theme_customized(legend_key_size = 2, legend_text_size = 5) +
ggrepel::geom_text_repel(
data = cell_type_labels,
::aes(
ggplot2x = .data[["x_umap"]],
y = .data[["y_umap"]],
label = .data[["cell_states"]],
),color = "black",
size = 1.8,
family = "Arial",
#
box.padding = 0.4,
point.padding = 1e-06,
min.segment.length = 0,
arrow = ggplot2::arrow(length = unit(0.015, "npc")),
max.overlaps = Inf,
nudge_x = 0,
nudge_y = 0,
#
segment.color = "grey35",
# segment.size = 0.25,
segment.size = 0.1,
segment.alpha = 1,
# segment.inflect = TRUE,
seed = 20201121
)%>%
}) purrr::reduce(`+`) +
patchwork::plot_layout(ncol = 3) +
patchwork::plot_annotation(
theme = theme(plot.margin = margin())
)
%>%
embedding_predefined tidyr::drop_na() %>%
dplyr::group_by(cell_states) %>%
dplyr::summarize(
num_cells = n(),
median_umi = median(num_umis),
median_features = median(num_features),
median_mt_percentage = median(mt_percentage),
median_scrublet_score_reported = median(scrublet_score)
%>%
) gt::gt() %>%
gt::tab_options(table.font.size = "median")
cell_states | num_cells | median_umi | median_features | median_mt_percentage | median_scrublet_score_reported |
---|---|---|---|---|---|
aCM1 | 12511 | 2620.0 | 1278.0 | 0.0007818608 | 0.09822866 |
aCM2 | 4613 | 3105.0 | 1552.0 | 0.0007087172 | 0.10806175 |
aCM3 | 4018 | 3042.0 | 1358.5 | 0.0007296163 | 0.09822866 |
aCM4 | 1554 | 3136.5 | 1491.5 | 0.0008284325 | 0.11347518 |
aCM5 | 187 | 3396.0 | 1619.0 | 0.0008121003 | 0.16473318 |
Adip1 | 2235 | 2922.0 | 1379.0 | 0.0005921247 | 0.09822866 |
Adip2 | 972 | 8539.5 | 3630.5 | 0.0009412824 | 0.18575064 |
Adip3 | 269 | 4170.0 | 1788.0 | 0.0006259781 | 0.11347518 |
Adip4 | 227 | 2357.0 | 1348.0 | 0.0015748031 | 0.16473318 |
B_cells | 1162 | 1913.5 | 939.5 | 0.0228684060 | 0.13214990 |
CD14+Mo | 1876 | 3460.5 | 1311.5 | 0.0632523414 | 0.09822866 |
CD16+Mo | 3243 | 3874.0 | 1530.0 | 0.0424010847 | 0.13214990 |
CD4+T_cytox | 3055 | 927.0 | 565.0 | 0.0258379888 | 0.09822866 |
CD4+T_tem | 1028 | 2639.5 | 955.0 | 0.0310788449 | 0.10806175 |
CD8+T_cytox | 2824 | 2251.0 | 1107.0 | 0.0209109813 | 0.09822866 |
CD8+T_tem | 2870 | 1101.0 | 714.0 | 0.0077821012 | 0.08554572 |
DC | 805 | 2450.0 | 1396.0 | 0.0060975610 | 0.11926606 |
DOCK4+MØ1 | 3231 | 902.0 | 641.0 | 0.0033305579 | 0.08952959 |
DOCK4+MØ2 | 1495 | 1351.0 | 896.0 | 0.0015302219 | 0.07161804 |
doublets | 615 | 717.0 | 494.0 | 0.0069930070 | 0.12547529 |
EC1_cap | 27325 | 1379.0 | 815.0 | 0.0371859296 | 0.08554572 |
EC10_CMC-like | 2585 | 2464.0 | 1224.0 | 0.0381282496 | 0.09822866 |
EC2_cap | 13419 | 1586.0 | 898.0 | 0.0331683168 | 0.08952959 |
EC3_cap | 16843 | 2085.0 | 1093.0 | 0.0247015233 | 0.09822866 |
EC4_immune | 5612 | 1551.0 | 889.0 | 0.0492429450 | 0.09375000 |
EC5_art | 20218 | 2212.0 | 1185.0 | 0.0310671082 | 0.10299003 |
EC6_ven | 8332 | 2181.0 | 1148.0 | 0.0249139179 | 0.10299003 |
EC7_atria | 4478 | 1123.0 | 753.0 | 0.0020844195 | 0.13934426 |
EC8_ln | 734 | 1605.5 | 1029.5 | 0.0073016482 | 0.12547529 |
EC9_FB-like | 520 | 2345.0 | 1481.5 | 0.0035700141 | 0.16473318 |
FB1 | 26555 | 1110.0 | 701.0 | 0.0020181635 | 0.10299003 |
FB2 | 13484 | 1216.0 | 784.0 | 0.0013404826 | 0.11926606 |
FB3 | 7525 | 1253.0 | 779.0 | 0.0017391304 | 0.12547529 |
FB4 | 6057 | 1389.0 | 871.0 | 0.0024600246 | 0.11926606 |
FB5 | 2507 | 1298.0 | 822.0 | 0.0027422303 | 0.10806175 |
FB6 | 1593 | 2705.0 | 1621.0 | 0.0024742805 | 0.17475728 |
FB7 | 910 | 3101.0 | 1704.5 | 0.0034325998 | 0.17475728 |
IL17RA+Mo | 32 | 4715.5 | 2431.0 | 0.0012185808 | 0.10823261 |
LYVE1+MØ1 | 2955 | 2666.0 | 1307.0 | 0.0149476831 | 0.07821229 |
LYVE1+MØ2 | 2085 | 815.0 | 556.0 | 0.0058823529 | 0.09375000 |
LYVE1+MØ3 | 1924 | 1795.0 | 927.5 | 0.0075810110 | 0.08952959 |
Mast | 1524 | 965.5 | 690.5 | 0.0018691654 | 0.04661017 |
Meso | 718 | 2023.0 | 1082.0 | 0.0076335878 | 0.13934426 |
MØ_AgP | 1272 | 4160.5 | 1508.5 | 0.0510975988 | 0.13934426 |
MØ_mod | 1307 | 3069.0 | 1257.0 | 0.0530805687 | 0.08952959 |
Mo_pi | 1640 | 1121.0 | 625.0 | 0.0634648370 | 0.14712154 |
nan | 33767 | 2234.0 | 1259.0 | 0.0113879004 | 0.14712154 |
NC1 | 2977 | 889.0 | 632.0 | 0.0028901734 | 0.07482993 |
NC2 | 434 | 2599.5 | 1576.0 | 0.0029268404 | 0.11926606 |
NC3 | 145 | 2188.0 | 1207.0 | 0.0103848503 | 0.12547529 |
NC4 | 125 | 4677.0 | 2143.0 | 0.0016353230 | 0.13934426 |
NC5 | 84 | 3008.0 | 1762.5 | 0.0014192650 | 0.04095904 |
NC6 | 20 | 1627.0 | 1093.0 | 0.0022270115 | 0.14712154 |
NK | 3591 | 2037.0 | 984.0 | 0.0276782807 | 0.06565657 |
NKT | 1450 | 1138.5 | 678.0 | 0.0319841083 | 0.09375000 |
NØ | 121 | 1092.0 | 497.0 | 0.0654008439 | 0.13214990 |
PC1_vent | 49729 | 1231.0 | 746.0 | 0.0026455026 | 0.07482993 |
PC2_atria | 10700 | 1505.0 | 914.0 | 0.0017618559 | 0.07161804 |
PC3_str | 14217 | 1709.0 | 999.0 | 0.0190373563 | 0.11347518 |
PC4_CMC-like | 2197 | 2901.0 | 1553.0 | 0.0016515277 | 0.15555556 |
SMC1_basic | 12781 | 1651.0 | 938.0 | 0.0033112583 | 0.08177905 |
SMC2_art | 3012 | 3713.0 | 1552.5 | 0.0284008680 | 0.10299003 |
vCM1 | 71162 | 3593.0 | 1547.0 | 0.0006483332 | 0.10299003 |
vCM2 | 25658 | 4019.0 | 1734.0 | 0.0006184929 | 0.10806175 |
vCM3 | 20168 | 3514.0 | 1506.0 | 0.0005975203 | 0.10806175 |
vCM4 | 7651 | 4055.0 | 1657.0 | 0.0006600116 | 0.11347518 |
vCM5 | 650 | 3606.0 | 1683.5 | 0.0009720928 | 0.16473318 |
# start
c(
FEATURES_SELECTED_A <-"ENSG00000092054_MYH7",
"ENSG00000111245_MYL2",
"ENSG00000115641_FHL2",
"ENSG00000175206_NPPA",
"ENSG00000106631_MYL7",
"ENSG00000198336_MYL4",
"ENSG00000133392_MYH11",
"ENSG00000149591_TAGLN",
"ENSG00000107796_ACTA2"
)
c(
FEATURES_SELECTED_B <-"ENSG00000143248_RGS5",
"ENSG00000069431_ABCC9",
"ENSG00000121361_KCNJ8",
"ENSG00000119927_GPAM",
"ENSG00000169710_FASN",
"ENSG00000174697_LEP",
"ENSG00000011465_DCN",
"ENSG00000148180_GSN",
"ENSG00000134853_PDGFRA"
)
c(
FEATURES_SELECTED_C <-"ENSG00000110799_VWF",
"ENSG00000261371_PECAM1",
"ENSG00000179776_CDH5",
"ENSG00000123560_PLP1",
"ENSG00000179915_NRXN1",
"ENSG00000021645_NRXN3",
"ENSG00000170458_CD14",
"ENSG00000173372_C1QA",
"ENSG00000129226_CD68",
"ENSG00000153563_CD8A",
"ENSG00000168685_IL7R",
"ENSG00000102245_CD40LG",
"ENSG00000102854_MSLN",
"ENSG00000184937_WT1",
"ENSG00000169594_BNC1"
)
c(
FEATURES_SELECTED <-
FEATURES_SELECTED_A,
FEATURES_SELECTED_B,
FEATURES_SELECTED_C )
Grey: cells included in the publication but have low UMI counts after re-mapping.
0.15
GEOM_POINT_SIZE <-
::map(FEATURES_SELECTED, function(x) {
purrr x
SELECTED_FEATURE <-
plot_embedding(
embedding = embedding_predefined[, c("x_umap", "y_umap")],
color_values = log10(
calc_cpm_anndata(
anndata = adata,
k = SELECTED_FEATURE,
cells = embedding_predefined$cell
+ 1
)
),label = paste0(EMBEDDING_TITLE_PREFIX, "; ", SELECTED_FEATURE),
label_position = NULL,
show_color_value_labels = FALSE,
show_color_legend = TRUE,
geom_point_size = GEOM_POINT_SIZE,
geom_point_alpha = 1,
sort_values = TRUE,
shuffle_values = FALSE,
# label_size = 2.5,
label_hjust = 0,
label_vjust = 0,
rasterise = TRUE,
dpi = 600,
legend_size = 2,
legend_ncol = 1
+
) theme_customized(
x = 0.035,
y = 0.995,
legend_key_size = 1.5,
legend_text_size = 4,
border_color = "#b3b3b3",
strip_color = "#b3b3b3"
)%>%
}) purrr::reduce(`+`) +
patchwork::plot_layout(ncol = 3) +
patchwork::plot_annotation(
theme = theme(plot.margin = margin())
)
vCM
c(
FEATURES_SELECTED <-"ENSG00000115641_FHL2",
"ENSG00000092054_MYH7",
"ENSG00000111245_MYL2",
"ENSG00000169851_PCDH7",
"ENSG00000169760_NLGN1",
#
"ENSG00000140945_CDH13",
"ENSG00000186314_PRELID2",
"ENSG00000282917_AC107068.2",
"ENSG00000249797_LINC02147",
#
"ENSG00000162614_NEXN",
"ENSG00000148677_ANKRD1",
"ENSG00000022267_FHL1",
"ENSG00000163092_XIRP2",
"ENSG00000100345_MYH9",
"ENSG00000198842_DUSP27",
"ENSG00000168334_XIRP1",
"ENSG00000130176_CNN1",
#
"ENSG00000109846_CRYAB",
"ENSG00000101608_MYL12A",
"ENSG00000075624_ACTB",
"ENSG00000189043_NDUFA4",
"ENSG00000127184_COX7C",
"ENSG00000135940_COX5B",
"ENSG00000147123_NDUFB11",
#
"ENSG00000164741_DLC1",
"ENSG00000164330_EBF1",
"ENSG00000134532_SOX5",
"ENSG00000221818_EBF2",
"ENSG00000169282_KCNAB1"
)
c(
cells_states_selected <-"vCM1", "vCM2", "vCM3", "vCM4", "vCM5"
) purrr::map(cells_states_selected, function(x) {
cells_selected_lollipop <-%>%
embedding_predefined filter(cell_states == x) %>%
pull(cell)
})names(cells_selected_lollipop) <- cells_states_selected
purrr::map(FEATURES_SELECTED, function(x) {
matrix_cpm_subset <- calc_cpm_anndata(
v <-anndata = adata,
k = x,
cells = embedding_predefined$cell
)is.na(v)] <- 0
v[
return(v)
%>%
}) purrr::reduce(rbind)
rownames(matrix_cpm_subset) <- FEATURES_SELECTED
Extended Data Fig. 3a
plot_lollipop(
cells = cells_selected_lollipop,
features = FEATURES_SELECTED,
matrix_cpm = matrix_cpm_subset,
color_range_limits = NULL
)
aCM
# grep(pattern = "gsn", x = rownames(adata$var), ignore.case = TRUE, value = TRUE)
c(
FEATURES_SELECTED <-"ENSG00000197616_MYH6",
"ENSG00000175206_NPPA",
"ENSG00000198336_MYL4",
"ENSG00000181072_CHRM2",
"ENSG00000117114_ADGRL2",
#
"ENSG00000115641_FHL2",
"ENSG00000184347_SLIT3",
"ENSG00000105697_HAMP",
"ENSG00000128918_ALDH1A2",
"ENSG00000204928_GRXCR2",
"ENSG00000162670_BRINP3",
#
"ENSG00000138347_MYPN",
"ENSG00000211455_STK38L",
"ENSG00000154553_PDLIM3",
"ENSG00000198842_DUSP27",
"ENSG00000100345_MYH9",
"ENSG00000130176_CNN1",
#
"ENSG00000104879_CKM",
"ENSG00000189043_NDUFA4",
"ENSG00000131143_COX4I1",
"ENSG00000121769_FABP3",
#
"ENSG00000164741_DLC1",
"ENSG00000127472_PLA2G5",
"ENSG00000184384_MAML2",
"ENSG00000249669_CARMN",
"ENSG00000148180_GSN"
)
c(
cells_states_selected <-"aCM1", "aCM2", "aCM3", "aCM4", "aCM5"
) purrr::map(cells_states_selected, function(x) {
cells_selected_lollipop <-%>%
embedding_predefined filter(cell_states == x) %>%
pull(cell)
})names(cells_selected_lollipop) <- cells_states_selected
purrr::map(FEATURES_SELECTED, function(x) {
matrix_cpm_subset <- calc_cpm_anndata(
v <-anndata = adata,
k = x,
cells = embedding_predefined$cell
)is.na(v)] <- 0
v[
return(v)
%>%
}) purrr::reduce(rbind)
rownames(matrix_cpm_subset) <- FEATURES_SELECTED
Extended Data Fig. 3b
plot_lollipop(
cells = cells_selected_lollipop,
features = FEATURES_SELECTED,
matrix_cpm = matrix_cpm_subset,
color_range_limits = NULL
)
prepare_cluster_composition(
embedding = embedding_predefined,
x = region,
group = cell_type
%>%
) plot_barplot(
x = region,
y = percentage,
z = cell_type,
legend_ncol = 2
+
) theme_bw(base_size = 6) +
theme(
legend.key.size = grid::unit(3, "mm")
)
::session_info()$platform devtools
## setting value
## version R version 4.0.4 (2021-02-15)
## os macOS Big Sur 10.16
## system x86_64, darwin20.3.0
## ui unknown
## language (EN)
## collate en_US.UTF-8
## ctype en_US.UTF-8
## tz America/Chicago
## date 2021-03-12
::session_info()$pack %>%
devtools as_tibble() %>%
dplyr::select(
package,
loadedversion,
date,`source`
%>%
) # print(n = nrow(.))
gt::gt() %>%
gt::tab_options(table.font.size = "median")
package | loadedversion | date | source |
---|---|---|---|
assertthat | 0.2.1 | 2019-03-21 | CRAN (R 4.0.0) |
backports | 1.2.1 | 2020-12-09 | CRAN (R 4.0.3) |
beeswarm | 0.3.1 | 2021-03-07 | CRAN (R 4.0.4) |
broom | 0.7.5.9000 | 2021-03-08 | Github (tidymodels/broom@1d68975) |
bslib | 0.2.4.9002 | 2021-02-25 | Github (rstudio/bslib@aa5a842) |
cachem | 1.0.4.9000 | 2021-02-25 | Github (r-lib/cachem@5964320) |
callr | 3.5.1.9000 | 2021-02-12 | Github (r-lib/callr@0ca92e1) |
cellranger | 1.1.0 | 2016-07-27 | CRAN (R 4.0.0) |
checkmate | 2.0.0 | 2020-02-06 | CRAN (R 4.0.0) |
cli | 2.3.1 | 2021-02-23 | CRAN (R 4.0.4) |
colorspace | 2.0-0 | 2020-11-10 | R-Forge (R 4.0.3) |
crayon | 1.4.1 | 2021-02-08 | CRAN (R 4.0.3) |
DBI | 1.1.1 | 2021-01-15 | CRAN (R 4.0.3) |
dbplyr | 2.1.0 | 2021-02-03 | CRAN (R 4.0.3) |
debugme | 1.1.0.9001 | 2021-02-27 | Github (r-lib/debugme@e7df798) |
desc | 1.3.0 | 2021-03-05 | CRAN (R 4.0.4) |
devtools | 2.3.2.9000 | 2021-02-23 | Github (r-lib/devtools@4a55464) |
digest | 0.6.27 | 2020-10-24 | CRAN (R 4.0.3) |
dplyr | 1.0.5.9000 | 2021-03-10 | Github (tidyverse/dplyr@17fb462) |
ellipsis | 0.3.1 | 2020-05-15 | CRAN (R 4.0.3) |
evaluate | 0.14 | 2019-05-28 | CRAN (R 4.0.0) |
extrafont | 0.17 | 2014-12-08 | CRAN (R 4.0.3) |
extrafontdb | 1.0 | 2012-06-11 | CRAN (R 4.0.0) |
fansi | 0.4.2 | 2021-01-15 | CRAN (R 4.0.3) |
farver | 2.1.0 | 2021-02-28 | CRAN (R 4.0.4) |
fastmap | 1.1.0 | 2021-01-25 | CRAN (R 4.0.3) |
forcats | 0.5.1.9000 | 2021-02-17 | Github (tidyverse/forcats@b5fce89) |
fs | 1.5.0 | 2020-07-31 | CRAN (R 4.0.3) |
generics | 0.1.0 | 2020-10-31 | CRAN (R 4.0.3) |
ggbeeswarm | 0.6.0 | 2017-08-07 | CRAN (R 4.0.3) |
ggplot2 | 3.3.3.9000 | 2021-03-05 | Github (tidyverse/ggplot2@4555055) |
ggrastr | 0.2.3 | 2021-03-01 | Github (VPetukhov/ggrastr@1ef0ff5) |
glue | 1.4.1.9000 | 2021-02-19 | Github (tidyverse/glue@f0a7b2a) |
gt | 0.2.2 | 2021-03-08 | Github (rstudio/gt@e619ecb) |
gtable | 0.3.0 | 2019-03-25 | CRAN (R 4.0.0) |
haven | 2.3.1 | 2020-06-01 | CRAN (R 4.0.0) |
highr | 0.8 | 2019-03-20 | CRAN (R 4.0.0) |
hms | 1.0.0 | 2021-01-13 | CRAN (R 4.0.3) |
htmltools | 0.5.1.9000 | 2021-02-25 | Github (rstudio/htmltools@ac43afe) |
httr | 1.4.2 | 2020-07-20 | CRAN (R 4.0.2) |
jquerylib | 0.1.3 | 2021-02-10 | Github (rstudio/jquerylib@94b1a3b) |
jsonlite | 1.7.2 | 2020-12-09 | CRAN (R 4.0.3) |
knitr | 1.31.5 | 2021-02-12 | Github (yihui/knitr@ca09938) |
labeling | 0.4.2 | 2020-10-20 | CRAN (R 4.0.3) |
lattice | 0.20-41 | 2020-04-02 | CRAN (R 4.0.4) |
lifecycle | 1.0.0 | 2021-02-15 | CRAN (R 4.0.3) |
lubridate | 1.7.10 | 2021-03-02 | Github (tidyverse/lubridate@ba6d598) |
magrittr | 2.0.1.9000 | 2020-12-14 | Github (tidyverse/magrittr@bb1c86a) |
Matrix | 1.3-2 | 2021-01-06 | CRAN (R 4.0.3) |
memoise | 2.0.0 | 2021-01-26 | CRAN (R 4.0.3) |
modelr | 0.1.8.9000 | 2021-02-17 | Github (tidyverse/modelr@16168e0) |
munsell | 0.5.0 | 2018-06-12 | CRAN (R 4.0.0) |
patchwork | 1.1.1 | 2020-12-17 | CRAN (R 4.0.3) |
pillar | 1.5.1 | 2021-03-05 | CRAN (R 4.0.4) |
pkgbuild | 1.2.0 | 2020-12-15 | CRAN (R 4.0.3) |
pkgconfig | 2.0.3 | 2019-09-22 | CRAN (R 4.0.0) |
pkgload | 1.2.0 | 2021-02-23 | CRAN (R 4.0.4) |
png | 0.1-7 | 2013-12-03 | CRAN (R 4.0.0) |
prettyunits | 1.1.1.9000 | 2020-11-23 | Github (r-lib/prettyunits@b1cdad8) |
processx | 3.4.5 | 2020-11-30 | CRAN (R 4.0.3) |
ps | 1.6.0 | 2021-02-28 | CRAN (R 4.0.4) |
purrr | 0.3.4.9000 | 2021-02-04 | Github (tidyverse/purrr@af06d45) |
R6 | 2.5.0 | 2021-02-04 | Github (r-lib/R6@6cf7d4e) |
ragg | 1.1.1.9000 | 2021-03-05 | Github (r-lib/ragg@2e70155) |
Rcpp | 1.0.6 | 2021-01-15 | CRAN (R 4.0.3) |
readr | 1.4.0.9000 | 2021-03-05 | Github (tidyverse/readr@9fd1160) |
readxl | 1.3.1.9000 | 2021-02-17 | Github (tidyverse/readxl@9f85fa5) |
remotes | 2.2.0.9000 | 2021-02-09 | Github (r-lib/remotes@69a8bd1) |
reprex | 1.0.0 | 2021-01-27 | CRAN (R 4.0.3) |
reticulate | 1.18 | 2020-10-25 | CRAN (R 4.0.3) |
rlang | 0.4.10.9000 | 2021-03-08 | Github (r-lib/rlang@e0a0761) |
rmarkdown | 2.7.3 | 2021-03-05 | Github (rstudio/rmarkdown@61db7a9) |
rprojroot | 2.0.2 | 2020-11-15 | CRAN (R 4.0.3) |
rstudioapi | 0.13.0-9000 | 2021-02-25 | Github (rstudio/rstudioapi@8ed4d50) |
Rttf2pt1 | 1.3.8 | 2020-01-10 | CRAN (R 4.0.0) |
rvest | 1.0.0 | 2021-03-09 | CRAN (R 4.0.4) |
sass | 0.3.1 | 2021-01-24 | CRAN (R 4.0.3) |
scales | 1.1.1 | 2020-05-11 | CRAN (R 4.0.3) |
sessioninfo | 1.1.1 | 2018-11-05 | CRAN (R 4.0.3) |
stringi | 1.5.3 | 2020-09-09 | CRAN (R 4.0.3) |
stringr | 1.4.0.9000 | 2021-02-17 | Github (tidyverse/stringr@1f03eb0) |
styler | 1.3.2.9000 | 2021-03-05 | Github (r-lib/styler@30b3c0a) |
systemfonts | 1.0.1.9000 | 2021-02-09 | Github (r-lib/systemfonts@bc0b76a) |
testthat | 3.0.2.9000 | 2021-02-15 | Github (r-lib/testthat@4793514) |
textshaping | 0.3.2.9000 | 2021-03-10 | Github (r-lib/textshaping@a5b5e4c) |
tibble | 3.1.0.9000 | 2021-02-25 | Github (tidyverse/tibble@01280ac) |
tidyr | 1.1.3.9000 | 2021-03-05 | Github (tidyverse/tidyr@2fd80d5) |
tidyselect | 1.1.0 | 2020-05-11 | CRAN (R 4.0.3) |
tidyverse | 1.3.0.9000 | 2021-03-10 | Github (tidyverse/tidyverse@8a0bb99) |
usethis | 2.0.1.9000 | 2021-03-05 | Github (r-lib/usethis@4819d19) |
utf8 | 1.1.4 | 2018-05-24 | CRAN (R 4.0.0) |
vctrs | 0.3.6 | 2020-12-17 | CRAN (R 4.0.3) |
vipor | 0.4.5 | 2017-03-22 | CRAN (R 4.0.0) |
viridisLite | 0.3.0 | 2018-02-01 | CRAN (R 4.0.0) |
withr | 2.4.1 | 2021-01-26 | CRAN (R 4.0.3) |
xfun | 0.21 | 2021-02-10 | CRAN (R 4.0.3) |
xml2 | 1.3.2 | 2020-04-23 | CRAN (R 4.0.0) |
yaml | 2.2.1 | 2020-02-01 | CRAN (R 4.0.0) |