library(Seurat)
library(princurve)
library(Matrix)
library(dplyr)
library(RColorBrewer)
library(fungible)
library(ggplot2)
library(ggExtra)
library(cowplot)
library(wesanderson)
#Set ggplot theme as classic
theme_set(theme_classic())WT <- readRDS("../QC.filtered.clustered.cells.RDS")
KO <- readRDS("./GmncKO.cells.RDS")#We exclude meninges and immune cells from the KO dataset since we had also excluded theme from the WT
KO <- subset(KO, idents = c(6:9), invert = T)
WT <- subset(WT, subset = orig.ident == "Hem1")p1 <- DimPlot(object = WT,
group.by = "Cell_ident",
reduction = "spring",
cols = c("#ebcb2e", #"CR"
"#e7823a", #"ChP"
"#4cabdc", # Chp_prog
"#68b041", #"Dorso-Medial_pallium"
"#e46b6b", #"Hem"
"#e3c148", #"Medial_pallium"
"#046c9a", # Pallial
"#4990c9"#"Thalamic_eminence"
)
) & NoAxes()
p2 <- DimPlot(KO,
group.by = "Cell.ident",
reduction = "spring",
cols = c("#ebcb2e", #"CR"
"#e7823a", #"ChP"
"#4cabdc", # Chp_prog
"#68b041", #"Dorso-Medial_pallium"
"#e46b6b", #"Hem"
"#e3c148", #"Medial_pallium"
"#046c9a", # Pallial
"#4990c9"#"Thalamic_eminence"
)
) & NoAxes()
p1 + p2WT <- NormalizeData(WT, normalization.method = "LogNormalize", scale.factor = 10000, assay = "RNA")
KO <- NormalizeData(KO, normalization.method = "LogNormalize", scale.factor = 10000, assay = "RNA")WT <- FindVariableFeatures(WT, selection.method = "vst", nfeatures = 3000)
KO <- FindVariableFeatures(KO, selection.method = "vst", nfeatures = 3000)WT.KO <- list(WT = WT, KO = KO)
rm(list= ls()[!ls() %in% c("WT.KO")])
gc()## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 4197456 224.2 7804930 416.9 7804930 416.9
## Vcells 847525831 6466.2 1217970762 9292.4 1201674340 9168.1
features <- SelectIntegrationFeatures(object.list = WT.KO)
WT.KO.integrated <- FindIntegrationAnchors(object.list = WT.KO,
anchor.features = features,
dims = 1:30)WT.KO.integrated <- IntegrateData(anchorset = WT.KO.integrated,
dims = 1:20)
DefaultAssay(WT.KO.integrated) <- "integrated"
WT.KO.integrated <- ScaleData(WT.KO.integrated, verbose = FALSE)dir.create("SpringCoordinates_integrated")#Export raw expression matrix and gene list to regenerate a spring plot
exprData <- Matrix(as.matrix(WT.KO.integrated@assays$RNA@counts), sparse = TRUE)
writeMM(exprData, "./SpringCoordinates_integrated/ExprData.mtx")## NULL
# Export gene list
Genelist <- row.names(WT.KO.integrated@assays$RNA@counts)
write.table(Genelist, "./SpringCoordinates_integrated/Genelist.csv", sep="\t", col.names = F, row.names = F, quote = F)#Export metadata
WT_Cell_ident <- c("WT_Cell_ident", WT.KO.integrated$Cell_ident)
WT_Cell_ident <- paste(WT_Cell_ident, sep=",", collapse=",")
KO_Cell_ident <- c("KO_Cell_ident", as.character(WT.KO.integrated$Cell.ident))
KO_Cell_ident <- paste(KO_Cell_ident, sep=",", collapse=",")
Genotype <- c("Genotype", WT.KO.integrated$orig.ident)
Genotype <- paste(Genotype, sep=",", collapse=",")
Cellgrouping <- rbind(WT_Cell_ident, KO_Cell_ident, Genotype)
write.table(Cellgrouping, "./SpringCoordinates_integrated/Cellgrouping.csv", quote =F, row.names = F, col.names = F)spring.coor <- read.table("SpringCoordinates_integrated/coordinates.txt", sep = ",", header = F, row.names = 1)
colnames(spring.coor) <- c("Spring_1", "Spring_2")Spring.Sym <- function(x){
x = abs(max(spring.coor$Spring_2)-x)
}
spring.coor$Spring_2 <- sapply(spring.coor$Spring_2, function(x) Spring.Sym(x))WT.KO.integrated$Integrated_Spring_1 <- spring.coor$Spring_1
WT.KO.integrated$Integrated_Spring_2 <- spring.coor$Spring_2spring <- as.matrix(WT.KO.integrated@meta.data %>% select("Integrated_Spring_1", "Integrated_Spring_2"))
WT.KO.integrated[["integrated_spring"]] <- CreateDimReducObject(embeddings = spring, key = "Spring_", assay = DefaultAssay(WT.KO.integrated))WT.KO$WT$Lineage <- sapply(WT.KO$WT$Cell_ident,
FUN = function(x) {
if (x %in% c("Cajal-Retzius_neurons", "Hem")) {
x = "Cajal-Retzius_neurons"
} else if (x %in% c("Pallial_neurons", "Medial_pallium")) {
x = "Pallial_neurons"
} else if(x %in% c("ChP", "ChP_progenitors")) {
x = "Choroid_Plexus"
} else {
x = "other"
}
})DimPlot(WT.KO$WT,
reduction = "spring",
group.by = "Lineage",
pt.size = 1,
cols = c("#cc391b","#e7823a","#969696","#026c9a")
) + NoAxes()WT.KO$KO$Lineage <- sapply(WT.KO$KO$Cell.ident,
FUN = function(x) {
if (x %in% c("Neuron_prob.2", "Hem")) {
x = "Cajal-Retzius_neurons"
} else if (x %in% c("Neuron_prob.3", "Medial_pallium")) {
x = "Pallial_neurons"
} else if (x %in% c("ChP", "ChP_progenitors")) {
x = "Choroid_Plexus"
} else {
x = "other"
}
})DimPlot(WT.KO$KO,
reduction = "spring",
group.by = "Lineage",
pt.size = 1,
cols = c("#cc391b","#e7823a","#969696","#026c9a")
) + NoAxes()WT.KO.integrated$Lineage <- c(WT.KO$WT$Lineage, WT.KO$KO$Lineage)DimPlot(WT.KO.integrated,
reduction = "integrated_spring",
group.by = "Lineage",
pt.size = 1,
cols = c("#cc391b","#e7823a","#969696","#026c9a")
) + NoAxes()WT.KO.integrated <- NormalizeData(WT.KO.integrated,
normalization.method = "LogNormalize",
scale.factor = 10000,
assay = "RNA")
WT.KO.integrated <- ScaleData(WT.KO.integrated,
assay = "RNA",
verbose = FALSE)AP
APgenes <- c("Rgcc", "Sparc", "Hes5","Hes1", "Slc1a3",
"Ddah1", "Ldha", "Hmga2","Sfrp1", "Id4",
"Creb5", "Ptn", "Lpar1", "Rcn1","Zfp36l1",
"Sox9", "Sox2", "Nr2e1", "Ttyh1", "Trip6")
WT.KO.integrated <- AddModuleScore(WT.KO.integrated,
features = list(APgenes),
name = "AP_signature",
assay = "RNA")BP
BPgenes <- c("Eomes", "Igsf8", "Insm1", "Elavl2", "Elavl4",
"Hes6","Gadd45g", "Neurog2", "Btg2", "Neurog1")
WT.KO.integrated <- AddModuleScore(WT.KO.integrated,
features = list(BPgenes),
name = "BP_signature",
assay = "RNA")EN
ENgenes <- c("Mfap4", "Nhlh2", "Nhlh1", "Ppp1r14a", "Nav1",
"Neurod1", "Sorl1", "Svip", "Cxcl12", "Tenm4",
"Dll3", "Rgmb", "Cntn2", "Vat1")
WT.KO.integrated <- AddModuleScore(WT.KO.integrated,
features = list(ENgenes),
name = "EN_signature",
assay = "RNA")LN
LNgenes <- c("Snhg11", "Pcsk1n", "Mapt", "Ina", "Stmn4",
"Gap43", "Tubb2a", "Ly6h","Ptprd", "Mef2c")
WT.KO.integrated <- AddModuleScore(WT.KO.integrated,
features = list(LNgenes),
name = "LN_signature",
assay = "RNA")WT.KO.integrated$AP_signature <- WT.KO.integrated$AP_signature1
WT.KO.integrated$BP_signature <- WT.KO.integrated$BP_signature1
WT.KO.integrated$EN_signature <- WT.KO.integrated$EN_signature1
WT.KO.integrated$LN_signature <- WT.KO.integrated$LN_signature1FeaturePlot(object = WT.KO.integrated,
features = c("AP_signature", "BP_signature",
"EN_signature", "LN_signature"),
pt.size = 0.75,
cols = rev(brewer.pal(10,"Spectral")),
reduction = "integrated_spring",
order = T) & NoAxes() & NoLegend()WT.KO.integrated@meta.data <- WT.KO.integrated@meta.data %>% dplyr::mutate(Cell.ident.WT = tidyr::replace_na(Cell_ident, "KO"))
WT.KO.integrated@meta.data <- WT.KO.integrated@meta.data %>% dplyr::mutate(Cell.ident.KO = tidyr::replace_na(Cell.ident, "WT"))
WT.KO.integrated@meta.data <- WT.KO.integrated@meta.data[,c("orig.ident", "nCount_RNA", "nFeature_RNA",
"Barcodes", "percent.mito", "percent.ribo",
"Spring_1", "Spring_2", "Cell.ident.WT", "Cell.ident.KO",
"Integrated_Spring_1", "Integrated_Spring_2",
"Lineage", "AP_signature", "BP_signature",
"EN_signature", "LN_signature")]p1 <- DimPlot(object = WT.KO.integrated,
group.by = "Cell.ident.WT",
pt.size = 0.7,
reduction = "integrated_spring",
split.by = "orig.ident",
cols = c("#ebcb2e", #"CR"
"#e7823a", #"ChP"
"#4cabdc", # Chp_prog
"#68b041", #"Dorso-Medial_pallium"
"#e46b6b", #"Hem"
"grey40",
"#e3c148", #"Medial_pallium"
"#046c9a", # Pallial
"#4990c9"#"Thalamic_eminence"
)
) & NoAxes()
p2 <- DimPlot(object = WT.KO.integrated,
group.by = "Cell.ident.KO",
pt.size = 0.7,
reduction = "integrated_spring",
split.by = "orig.ident",
cols = c( "#4cabdc", # Chp_prog
"#68b041", #"Dorso-Medial_pallium"
"#e46b6b", #"Hem"
"#e3c148", #"Medial_pallium"
"#a9961b",
"#ebcb2e",
"#046c9a", # Pallial
"#4990c9",#"Thalamic_eminence"
"grey40")
) & NoAxes()
p1 / p2saveRDS(WT.KO.integrated, "./WT_KO.integrated.RDS")rm(list = ls()[!ls() %in% c("WT.KO.integrated")])
gc()## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 4278171 228.5 7804930 416.9 7804930 416.9
## Vcells 957793535 7307.4 2644848216 20178.6 2635913545 20110.5
WT_KO_trajectories <- subset(WT.KO.integrated, subset = Lineage %in% c("Cajal-Retzius_neurons", "Pallial_neurons"))DimPlot(WT_KO_trajectories,
reduction = "integrated_spring",
group.by = "Lineage",
split.by = "orig.ident",
pt.size = 1,
cols = c("#cc391b", "#026c9a")
) + NoAxes()
## Pseudotime WT CR bins
nbreaks = 7WT.CR <- WT_KO_trajectories@meta.data %>%
select("orig.ident", "Barcodes", "Cell.ident.WT","Spring_1", "Spring_2", "Lineage") %>%
filter(orig.ident == "Hem1" & Cell.ident.WT == "Cajal-Retzius_neurons")fit <- principal_curve(as.matrix(WT.CR[,c("Spring_1", "Spring_2")]),
smoother='lowess',
trace=F,
f = 0.7,
stretch=0)
WT.CR$Pseudotime <- fit$lambda/max(fit$lambda)
if (cor(WT.CR$Pseudotime, WT_KO_trajectories@assays$RNA@data['Hmga2', WT.CR$Barcodes]) > 0) {
WT.CR$Pseudotime <- -(WT.CR$Pseudotime - max(WT.CR$Pseudotime))
}
WT.CR$Pseudotime.bins<- cut(WT.CR$Pseudotime, breaks = nbreaks , labels = 1:nbreaks)WT.Pal <- WT_KO_trajectories@meta.data %>%
select("orig.ident", "Barcodes", "Cell.ident.WT","Spring_1", "Spring_2", "Lineage") %>%
filter(orig.ident == "Hem1" & Cell.ident.WT == "Pallial_neurons")fit <- principal_curve(as.matrix(WT.Pal [,c("Spring_1", "Spring_2")]),
smoother='lowess',
trace=F,
f = 0.7,
stretch=0)
WT.Pal$Pseudotime <- fit$lambda/max(fit$lambda)
if (cor(WT.Pal$Pseudotime, WT_KO_trajectories@assays$RNA@data['Hmga2', WT.Pal$Barcodes]) > 0) {
WT.Pal$Pseudotime <- -(WT.Pal$Pseudotime - max(WT.Pal$Pseudotime))
}
WT.Pal$Pseudotime.bins<- cut(WT.Pal$Pseudotime, breaks = nbreaks , labels = 1:nbreaks)KO.CR <- WT_KO_trajectories@meta.data %>%
select("orig.ident", "Barcodes", "Cell.ident.KO","Spring_1", "Spring_2", "Lineage") %>%
filter(orig.ident == "Gmnc_KO" & Cell.ident.KO == "Neuron_prob.2")fit <- principal_curve(as.matrix(KO.CR[,c("Spring_1", "Spring_2")]),
smoother='lowess',
trace=F,
f = 0.7,
stretch=0)
KO.CR$Pseudotime <- fit$lambda/max(fit$lambda)
if (cor(KO.CR$Pseudotime, WT_KO_trajectories@assays$RNA@data['Hmga2', KO.CR$Barcodes]) > 0) {
KO.CR$Pseudotime <- -(KO.CR$Pseudotime - max(KO.CR$Pseudotime))
}
KO.CR$Pseudotime.bins<- cut(KO.CR$Pseudotime, breaks = nbreaks , labels = 1:nbreaks)KO.Pal <- WT_KO_trajectories@meta.data %>%
select("orig.ident", "Barcodes", "Cell.ident.KO","Spring_1", "Spring_2", "Lineage") %>%
filter(orig.ident == "Gmnc_KO" & Cell.ident.KO == "Neuron_prob.3")fit <- principal_curve(as.matrix(KO.Pal [,c("Spring_1", "Spring_2")]),
smoother='lowess',
trace=F,
f = 0.7,
stretch=0)
KO.Pal$Pseudotime <- fit$lambda/max(fit$lambda)
if (cor(KO.Pal$Pseudotime, WT_KO_trajectories@assays$RNA@data['Hmga2', KO.Pal$Barcodes]) > 0) {
KO.Pal$Pseudotime <- -(KO.Pal$Pseudotime - max(KO.Pal$Pseudotime))
}
KO.Pal$Pseudotime.bins<- cut(KO.Pal$Pseudotime, breaks = nbreaks , labels = 1:nbreaks)p1 <- ggplot(WT.CR, aes(Spring_1, Spring_2)) +
geom_point(aes(color=Pseudotime), size=2, shape=16) +
scale_color_gradientn(colours=rev(colorRampPalette(brewer.pal(n =11, name = "Spectral"))(100)), name='Speudotime score')
p2 <- ggplot(WT.Pal, aes(Spring_1, Spring_2)) +
geom_point(aes(color=Pseudotime), size=2, shape=16) +
scale_color_gradientn(colours=rev(colorRampPalette(brewer.pal(n =11, name = "Spectral"))(100)), name='Speudotime score')
p3 <- ggplot(KO.CR, aes(Spring_1, Spring_2)) +
geom_point(aes(color=Pseudotime), size=2, shape=16) +
scale_color_gradientn(colours=rev(colorRampPalette(brewer.pal(n =11, name = "Spectral"))(100)), name='Speudotime score')
p4 <- ggplot(KO.Pal, aes(Spring_1, Spring_2)) +
geom_point(aes(color=Pseudotime), size=2, shape=16) +
scale_color_gradientn(colours=rev(colorRampPalette(brewer.pal(n =11, name = "Spectral"))(100)), name='Speudotime score')
p1 + p2 + p3 + p4p1 <- ggplot(WT.CR, aes(Spring_1, Spring_2)) +
geom_point(aes(color=Pseudotime.bins), size=2, shape=16)
p2 <- ggplot(WT.Pal, aes(Spring_1, Spring_2)) +
geom_point(aes(color=Pseudotime.bins), size=2, shape=16)
p3 <- ggplot(KO.CR, aes(Spring_1, Spring_2)) +
geom_point(aes(color=Pseudotime.bins), size=2, shape=16)
p4 <- ggplot(KO.Pal, aes(Spring_1, Spring_2)) +
geom_point(aes(color=Pseudotime.bins), size=2, shape=16)
p1 + p2 + p3 + p4traj.data <- rbind(WT.CR[,c("Barcodes", "Pseudotime.bins")], WT.Pal[,c("Barcodes", "Pseudotime.bins")],
KO.CR[,c("Barcodes", "Pseudotime.bins")], KO.Pal[,c("Barcodes", "Pseudotime.bins")])
rownames(traj.data) <- traj.data$Barcodes
WT_KO_trajectories$Pseudotime.bins <- sapply(WT_KO_trajectories$Barcodes,
FUN = function(x) {
if (x %in% traj.data$Barcodes) {
x = traj.data[x,"Pseudotime.bins"]
} else {
x = 1
}
})DimPlot(WT_KO_trajectories,
reduction = "integrated_spring",
group.by = "Pseudotime.bins",
pt.size = 1,
#cols = c("#cc391b", "#026c9a")
) + NoAxes()# WT Cajal-Retzius
WT_CR <- subset(WT_KO_trajectories, subset = orig.ident == "Hem1" & Lineage == "Cajal-Retzius_neurons")
WT_CR.averages <- AverageExpression(WT_CR,
group.by = "Pseudotime.bins",
assays = "integrated",
slot = "scale.data")
# KO Cajal-Retzius
KO_CR <- subset(WT_KO_trajectories, subset = orig.ident == "Gmnc_KO" & Lineage == "Cajal-Retzius_neurons")
KO_CR.averages <- AverageExpression(KO_CR,
group.by = "Pseudotime.bins",
assays = "integrated",
slot = "scale.data")
# WT Pallial neurons
WT_Pal <- subset(WT_KO_trajectories, subset = orig.ident == "Hem1" & Lineage == "Pallial_neurons")
WT_Pal.averages <- AverageExpression(WT_Pal,
group.by = "Pseudotime.bins",
assays = "integrated",
slot = "scale.data")
# KO Pallial neurons
KO_Pal <- subset(WT_KO_trajectories, subset = orig.ident == "Gmnc_KO" & Lineage == "Pallial_neurons")
KO_Pal.averages <- AverageExpression(KO_Pal,
group.by = "Pseudotime.bins",
assays = "integrated",
slot = "scale.data")# WT CR
Smoothed.point.cor <- pdist::pdist(X= t(WT_CR.averages$integrated),
Y= t(WT_Pal.averages$integrated))
WT.CR_WT.Pal.dist <- diag(as.matrix(Smoothed.point.cor))
Smoothed.point.cor <- pdist::pdist(X= t(WT_CR.averages$integrated),
Y= t(KO_Pal.averages$integrated))
WT.CR_KO.Pal.dist <- diag(as.matrix(Smoothed.point.cor))
Smoothed.point.cor <- pdist::pdist(X= t(WT_CR.averages$integrated),
Y= t(KO_CR.averages$integrated))
WT.CR_KO.CR.dist <- diag(as.matrix(Smoothed.point.cor))
Smoothed.point.cor <- pdist::pdist(X= t(KO_CR.averages$integrated),
Y= t(WT_Pal.averages$integrated))
KO.CR_WT.Pal.dist <- diag(as.matrix(Smoothed.point.cor))
Smoothed.point.cor <- pdist::pdist(X= t(KO_CR.averages$integrated),
Y= t(KO_Pal.averages$integrated))
KO.CR_KO.Pal.dist <- diag(as.matrix(Smoothed.point.cor))
Smoothed.point.cor <- pdist::pdist(X= t(WT_Pal.averages$integrated),
Y= t(KO_Pal.averages$integrated))
WT.Pal_KO.Pal.dist <- diag(as.matrix(Smoothed.point.cor))data <- data.frame(Distance = c(WT.CR_WT.Pal.dist, WT.CR_KO.Pal.dist, WT.CR_KO.CR.dist,
KO.CR_WT.Pal.dist, KO.CR_KO.Pal.dist, WT.Pal_KO.Pal.dist),
Trajectory = rep(c("WT.CR_WT.Pal.dist", "WT.CR_KO.Pal.dist", "WT.CR_KO.CR.dist",
"KO.CR_WT.Pal.dist", "KO.CR_KO.Pal.dist", "WT.Pal_KO.Pal.dist"), each=nbreaks),
Pseudotime.bin = factor(rep(paste0("Bin_",1:nbreaks), 3),levels = paste0("Bin_",1:nbreaks)))
p1 <- DimPlot(WT_KO_trajectories,
reduction = "integrated_spring",
group.by = "Pseudotime.bins",
pt.size = 1,
#cols = c("#cc391b", "#026c9a")
) + NoAxes()
p2 <- ggplot(data, aes(x= Pseudotime.bin, y= Distance, color= Trajectory, group = Trajectory)) +
geom_line() +
geom_point()
p1 + p2WT_KO_LN <- subset(WT_KO_trajectories, subset = Pseudotime.bins %in% c(6,7))DefaultAssay(WT_KO_LN) <- "RNA"
p1 <- DimPlot(WT_KO_LN,
reduction = "integrated_spring",
group.by = "Lineage",
pt.size = 1,
cols = c("#cc391b", "#026c9a")
) + NoAxes()
p2 <- DimPlot(WT_KO_LN,
reduction = "integrated_spring",
group.by = "orig.ident",
pt.size = 1,
cols = c("#cc391b", "#026c9a")
) + NoAxes()
p3 <- FeaturePlot(object = WT_KO_LN,
features = c("Foxg1", "Zfpm2","Prdm8",
"Reln", "Zic5", "Zfp503"),
pt.size = 1,
cols = c("grey90", brewer.pal(9,"YlGnBu")),
reduction = "integrated_spring",
slot = "data",
order = T) & NoAxes() & NoLegend()
(p1 + p2) + (p3)#date
format(Sys.time(), "%d %B, %Y, %H,%M")## [1] "14 June, 2022, 10,59"
#Packages used
sessionInfo()## R version 4.1.1 (2021-08-10)
## Platform: x86_64-conda-linux-gnu (64-bit)
## Running under: CentOS Linux 7 (Core)
##
## Matrix products: default
## BLAS/LAPACK: /shared/ifbstor1/software/miniconda/envs/r-4.1.1/lib/libopenblasp-r0.3.18.so
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats graphics grDevices utils datasets methods base
##
## other attached packages:
## [1] wesanderson_0.3.6 cowplot_1.1.1 ggExtra_0.9 ggplot2_3.3.6
## [5] fungible_2.2 RColorBrewer_1.1-3 dplyr_1.0.9 Matrix_1.3-4
## [9] princurve_2.1.6 sp_1.4-7 SeuratObject_4.1.0 Seurat_4.0.5
##
## loaded via a namespace (and not attached):
## [1] plyr_1.8.7 igraph_1.2.9 GPArotation_2022.4-1
## [4] lazyeval_0.2.2 splines_4.1.1 gmp_0.6-2.1
## [7] listenv_0.8.0 scattermore_0.8 digest_0.6.29
## [10] htmltools_0.5.2 fansi_1.0.3 magrittr_2.0.3
## [13] tensor_1.5 cluster_2.1.2 ROCR_1.0-11
## [16] globals_0.14.0 matrixStats_0.62.0 spatstat.sparse_2.1-1
## [19] pdist_1.2 colorspace_2.0-3 ggrepel_0.9.1
## [22] xfun_0.31 rgdal_1.5-23 crayon_1.5.1
## [25] jsonlite_1.8.0 progressr_0.10.0 spatstat.data_2.2-0
## [28] survival_3.2-13 zoo_1.8-10 glue_1.5.1
## [31] polyclip_1.10-0 gtable_0.3.0 leiden_0.3.10
## [34] future.apply_1.9.0 Rmpfr_0.8-7 abind_1.4-5
## [37] scales_1.2.0 mvtnorm_1.1-3 DBI_1.1.2
## [40] spatstat.random_2.1-0 miniUI_0.1.1.1 Rcpp_1.0.8.3
## [43] viridisLite_0.4.0 xtable_1.8-4 clue_0.3-60
## [46] reticulate_1.24 spatstat.core_2.4-2 bit_4.0.4
## [49] CVXR_1.0-10 htmlwidgets_1.5.4 httr_1.4.2
## [52] ellipsis_0.3.2 ica_1.0-2 pkgconfig_2.0.3
## [55] farver_2.1.0 sass_0.4.1 uwot_0.1.11
## [58] deldir_1.0-6 utf8_1.2.2 tidyselect_1.1.2
## [61] labeling_0.4.2 rlang_1.0.2 reshape2_1.4.4
## [64] later_1.3.0 munsell_0.5.0 tools_4.1.1
## [67] cli_3.3.0 generics_0.1.2 ggridges_0.5.3
## [70] evaluate_0.14 stringr_1.4.0 fastmap_1.1.0
## [73] yaml_2.3.5 goftest_1.2-3 knitr_1.37
## [76] bit64_4.0.5 fitdistrplus_1.1-8 purrr_0.3.4
## [79] RANN_2.6.1 pbapply_1.5-0 future_1.25.0
## [82] nlme_3.1-153 mime_0.12 DEoptim_2.2-6
## [85] compiler_4.1.1 rstudioapi_0.13 plotly_4.10.0
## [88] png_0.1-7 spatstat.utils_2.3-0 tibble_3.1.6
## [91] bslib_0.3.1 stringi_1.7.6 highr_0.9
## [94] rgeos_0.5-9 lattice_0.20-45 vctrs_0.4.1
## [97] pillar_1.7.0 lifecycle_1.0.1 spatstat.geom_2.4-0
## [100] lmtest_0.9-40 jquerylib_0.1.4 RcppAnnoy_0.0.19
## [103] data.table_1.14.2 irlba_2.3.5 httpuv_1.6.5
## [106] patchwork_1.1.1 R6_2.5.1 promises_1.2.0.1
## [109] KernSmooth_2.23-20 gridExtra_2.3 parallelly_1.31.1
## [112] nleqslv_3.3.2 codetools_0.2-18 MASS_7.3-54
## [115] assertthat_0.2.1 withr_2.4.3 sctransform_0.3.3
## [118] mgcv_1.8-38 parallel_4.1.1 grid_4.1.1
## [121] rpart_4.1-15 tidyr_1.2.0 Rcsdp_0.1.57.2
## [124] rmarkdown_2.11 Rtsne_0.16 shiny_1.7.1
Institute of Psychiatry and Neuroscience of Paris, INSERM U1266, 75014, Paris, France, matthieu.moreau@inserm.fr↩︎