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())
<- readRDS("../QC.filtered.clustered.cells.RDS")
WT <- readRDS("./GmncKO.cells.RDS") KO
#We exclude meninges and immune cells from the KO dataset since we had also excluded theme from the WT
<- subset(KO, idents = c(6:9), invert = T)
KO <- subset(WT, subset = orig.ident == "Hem1") WT
<- DimPlot(object = WT,
p1 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()
)
<- DimPlot(KO,
p2 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 p1
<- NormalizeData(WT, normalization.method = "LogNormalize", scale.factor = 10000, assay = "RNA")
WT <- NormalizeData(KO, normalization.method = "LogNormalize", scale.factor = 10000, assay = "RNA") KO
<- FindVariableFeatures(WT, selection.method = "vst", nfeatures = 3000)
WT <- FindVariableFeatures(KO, selection.method = "vst", nfeatures = 3000) KO
<- list(WT = WT, KO = KO)
WT.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
<- SelectIntegrationFeatures(object.list = WT.KO)
features
<- FindIntegrationAnchors(object.list = WT.KO,
WT.KO.integrated anchor.features = features,
dims = 1:30)
<- IntegrateData(anchorset = WT.KO.integrated,
WT.KO.integrated dims = 1:20)
DefaultAssay(WT.KO.integrated) <- "integrated"
<- ScaleData(WT.KO.integrated, verbose = FALSE) WT.KO.integrated
dir.create("SpringCoordinates_integrated")
#Export raw expression matrix and gene list to regenerate a spring plot
<- Matrix(as.matrix(WT.KO.integrated@assays$RNA@counts), sparse = TRUE)
exprData writeMM(exprData, "./SpringCoordinates_integrated/ExprData.mtx")
## NULL
# Export gene list
<- row.names(WT.KO.integrated@assays$RNA@counts)
Genelist write.table(Genelist, "./SpringCoordinates_integrated/Genelist.csv", sep="\t", col.names = F, row.names = F, quote = F)
#Export metadata
<- c("WT_Cell_ident", WT.KO.integrated$Cell_ident)
WT_Cell_ident <- paste(WT_Cell_ident, sep=",", collapse=",")
WT_Cell_ident
<- c("KO_Cell_ident", as.character(WT.KO.integrated$Cell.ident))
KO_Cell_ident <- paste(KO_Cell_ident, sep=",", collapse=",")
KO_Cell_ident
<- c("Genotype", WT.KO.integrated$orig.ident)
Genotype <- paste(Genotype, sep=",", collapse=",")
Genotype
<- rbind(WT_Cell_ident, KO_Cell_ident, Genotype)
Cellgrouping write.table(Cellgrouping, "./SpringCoordinates_integrated/Cellgrouping.csv", quote =F, row.names = F, col.names = F)
<- read.table("SpringCoordinates_integrated/coordinates.txt", sep = ",", header = F, row.names = 1)
spring.coor colnames(spring.coor) <- c("Spring_1", "Spring_2")
<- function(x){
Spring.Sym = abs(max(spring.coor$Spring_2)-x)
x
}
$Spring_2 <- sapply(spring.coor$Spring_2, function(x) Spring.Sym(x)) spring.coor
$Integrated_Spring_1 <- spring.coor$Spring_1
WT.KO.integrated$Integrated_Spring_2 <- spring.coor$Spring_2 WT.KO.integrated
<- as.matrix(WT.KO.integrated@meta.data %>% select("Integrated_Spring_1", "Integrated_Spring_2"))
spring
"integrated_spring"]] <- CreateDimReducObject(embeddings = spring, key = "Spring_", assay = DefaultAssay(WT.KO.integrated)) WT.KO.integrated[[
$WT$Lineage <- sapply(WT.KO$WT$Cell_ident,
WT.KOFUN = function(x) {
if (x %in% c("Cajal-Retzius_neurons", "Hem")) {
= "Cajal-Retzius_neurons"
x else if (x %in% c("Pallial_neurons", "Medial_pallium")) {
} = "Pallial_neurons"
x else if(x %in% c("ChP", "ChP_progenitors")) {
} = "Choroid_Plexus"
x else {
} = "other"
x
} })
DimPlot(WT.KO$WT,
reduction = "spring",
group.by = "Lineage",
pt.size = 1,
cols = c("#cc391b","#e7823a","#969696","#026c9a")
+ NoAxes() )
$KO$Lineage <- sapply(WT.KO$KO$Cell.ident,
WT.KOFUN = function(x) {
if (x %in% c("Neuron_prob.2", "Hem")) {
= "Cajal-Retzius_neurons"
x else if (x %in% c("Neuron_prob.3", "Medial_pallium")) {
} = "Pallial_neurons"
x else if (x %in% c("ChP", "ChP_progenitors")) {
} = "Choroid_Plexus"
x else {
} = "other"
x
} })
DimPlot(WT.KO$KO,
reduction = "spring",
group.by = "Lineage",
pt.size = 1,
cols = c("#cc391b","#e7823a","#969696","#026c9a")
+ NoAxes() )
$Lineage <- c(WT.KO$WT$Lineage, WT.KO$KO$Lineage) WT.KO.integrated
DimPlot(WT.KO.integrated,
reduction = "integrated_spring",
group.by = "Lineage",
pt.size = 1,
cols = c("#cc391b","#e7823a","#969696","#026c9a")
+ NoAxes() )
<- NormalizeData(WT.KO.integrated,
WT.KO.integrated normalization.method = "LogNormalize",
scale.factor = 10000,
assay = "RNA")
<- ScaleData(WT.KO.integrated,
WT.KO.integrated assay = "RNA",
verbose = FALSE)
AP
<- c("Rgcc", "Sparc", "Hes5","Hes1", "Slc1a3",
APgenes "Ddah1", "Ldha", "Hmga2","Sfrp1", "Id4",
"Creb5", "Ptn", "Lpar1", "Rcn1","Zfp36l1",
"Sox9", "Sox2", "Nr2e1", "Ttyh1", "Trip6")
<- AddModuleScore(WT.KO.integrated,
WT.KO.integrated features = list(APgenes),
name = "AP_signature",
assay = "RNA")
BP
<- c("Eomes", "Igsf8", "Insm1", "Elavl2", "Elavl4",
BPgenes "Hes6","Gadd45g", "Neurog2", "Btg2", "Neurog1")
<- AddModuleScore(WT.KO.integrated,
WT.KO.integrated features = list(BPgenes),
name = "BP_signature",
assay = "RNA")
EN
<- c("Mfap4", "Nhlh2", "Nhlh1", "Ppp1r14a", "Nav1",
ENgenes "Neurod1", "Sorl1", "Svip", "Cxcl12", "Tenm4",
"Dll3", "Rgmb", "Cntn2", "Vat1")
<- AddModuleScore(WT.KO.integrated,
WT.KO.integrated features = list(ENgenes),
name = "EN_signature",
assay = "RNA")
LN
<- c("Snhg11", "Pcsk1n", "Mapt", "Ina", "Stmn4",
LNgenes "Gap43", "Tubb2a", "Ly6h","Ptprd", "Mef2c")
<- AddModuleScore(WT.KO.integrated,
WT.KO.integrated features = list(LNgenes),
name = "LN_signature",
assay = "RNA")
$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_signature1 WT.KO.integrated
FeaturePlot(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()
@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",
WT.KO.integrated"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")]
<- DimPlot(object = WT.KO.integrated,
p1 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()
)
<- DimPlot(object = WT.KO.integrated,
p2 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()
)
/ p2 p1
saveRDS(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
<- subset(WT.KO.integrated, subset = Lineage %in% c("Cajal-Retzius_neurons", "Pallial_neurons")) WT_KO_trajectories
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
= 7 nbreaks
<- WT_KO_trajectories@meta.data %>%
WT.CR select("orig.ident", "Barcodes", "Cell.ident.WT","Spring_1", "Spring_2", "Lineage") %>%
filter(orig.ident == "Hem1" & Cell.ident.WT == "Cajal-Retzius_neurons")
<- principal_curve(as.matrix(WT.CR[,c("Spring_1", "Spring_2")]),
fit smoother='lowess',
trace=F,
f = 0.7,
stretch=0)
$Pseudotime <- fit$lambda/max(fit$lambda)
WT.CR
if (cor(WT.CR$Pseudotime, WT_KO_trajectories@assays$RNA@data['Hmga2', WT.CR$Barcodes]) > 0) {
$Pseudotime <- -(WT.CR$Pseudotime - max(WT.CR$Pseudotime))
WT.CR
}
$Pseudotime.bins<- cut(WT.CR$Pseudotime, breaks = nbreaks , labels = 1:nbreaks) WT.CR
<- WT_KO_trajectories@meta.data %>%
WT.Pal select("orig.ident", "Barcodes", "Cell.ident.WT","Spring_1", "Spring_2", "Lineage") %>%
filter(orig.ident == "Hem1" & Cell.ident.WT == "Pallial_neurons")
<- principal_curve(as.matrix(WT.Pal [,c("Spring_1", "Spring_2")]),
fit smoother='lowess',
trace=F,
f = 0.7,
stretch=0)
$Pseudotime <- fit$lambda/max(fit$lambda)
WT.Pal
if (cor(WT.Pal$Pseudotime, WT_KO_trajectories@assays$RNA@data['Hmga2', WT.Pal$Barcodes]) > 0) {
$Pseudotime <- -(WT.Pal$Pseudotime - max(WT.Pal$Pseudotime))
WT.Pal
}
$Pseudotime.bins<- cut(WT.Pal$Pseudotime, breaks = nbreaks , labels = 1:nbreaks) WT.Pal
<- WT_KO_trajectories@meta.data %>%
KO.CR select("orig.ident", "Barcodes", "Cell.ident.KO","Spring_1", "Spring_2", "Lineage") %>%
filter(orig.ident == "Gmnc_KO" & Cell.ident.KO == "Neuron_prob.2")
<- principal_curve(as.matrix(KO.CR[,c("Spring_1", "Spring_2")]),
fit smoother='lowess',
trace=F,
f = 0.7,
stretch=0)
$Pseudotime <- fit$lambda/max(fit$lambda)
KO.CR
if (cor(KO.CR$Pseudotime, WT_KO_trajectories@assays$RNA@data['Hmga2', KO.CR$Barcodes]) > 0) {
$Pseudotime <- -(KO.CR$Pseudotime - max(KO.CR$Pseudotime))
KO.CR
}
$Pseudotime.bins<- cut(KO.CR$Pseudotime, breaks = nbreaks , labels = 1:nbreaks) KO.CR
<- WT_KO_trajectories@meta.data %>%
KO.Pal select("orig.ident", "Barcodes", "Cell.ident.KO","Spring_1", "Spring_2", "Lineage") %>%
filter(orig.ident == "Gmnc_KO" & Cell.ident.KO == "Neuron_prob.3")
<- principal_curve(as.matrix(KO.Pal [,c("Spring_1", "Spring_2")]),
fit smoother='lowess',
trace=F,
f = 0.7,
stretch=0)
$Pseudotime <- fit$lambda/max(fit$lambda)
KO.Pal
if (cor(KO.Pal$Pseudotime, WT_KO_trajectories@assays$RNA@data['Hmga2', KO.Pal$Barcodes]) > 0) {
$Pseudotime <- -(KO.Pal$Pseudotime - max(KO.Pal$Pseudotime))
KO.Pal
}
$Pseudotime.bins<- cut(KO.Pal$Pseudotime, breaks = nbreaks , labels = 1:nbreaks) KO.Pal
<- ggplot(WT.CR, aes(Spring_1, Spring_2)) +
p1 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')
<- ggplot(WT.Pal, aes(Spring_1, Spring_2)) +
p2 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')
<- ggplot(KO.CR, aes(Spring_1, Spring_2)) +
p3 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')
<- ggplot(KO.Pal, aes(Spring_1, Spring_2)) +
p4 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 + p3 + p4 p1
<- ggplot(WT.CR, aes(Spring_1, Spring_2)) +
p1 geom_point(aes(color=Pseudotime.bins), size=2, shape=16)
<- ggplot(WT.Pal, aes(Spring_1, Spring_2)) +
p2 geom_point(aes(color=Pseudotime.bins), size=2, shape=16)
<- ggplot(KO.CR, aes(Spring_1, Spring_2)) +
p3 geom_point(aes(color=Pseudotime.bins), size=2, shape=16)
<- ggplot(KO.Pal, aes(Spring_1, Spring_2)) +
p4 geom_point(aes(color=Pseudotime.bins), size=2, shape=16)
+ p2 + p3 + p4 p1
<- rbind(WT.CR[,c("Barcodes", "Pseudotime.bins")], WT.Pal[,c("Barcodes", "Pseudotime.bins")],
traj.data c("Barcodes", "Pseudotime.bins")], KO.Pal[,c("Barcodes", "Pseudotime.bins")])
KO.CR[,
rownames(traj.data) <- traj.data$Barcodes
$Pseudotime.bins <- sapply(WT_KO_trajectories$Barcodes,
WT_KO_trajectoriesFUN = function(x) {
if (x %in% traj.data$Barcodes) {
= traj.data[x,"Pseudotime.bins"]
x else {
} = 1
x
} })
DimPlot(WT_KO_trajectories,
reduction = "integrated_spring",
group.by = "Pseudotime.bins",
pt.size = 1,
#cols = c("#cc391b", "#026c9a")
+ NoAxes() )
# WT Cajal-Retzius
<- subset(WT_KO_trajectories, subset = orig.ident == "Hem1" & Lineage == "Cajal-Retzius_neurons")
WT_CR
<- AverageExpression(WT_CR,
WT_CR.averages group.by = "Pseudotime.bins",
assays = "integrated",
slot = "scale.data")
# KO Cajal-Retzius
<- subset(WT_KO_trajectories, subset = orig.ident == "Gmnc_KO" & Lineage == "Cajal-Retzius_neurons")
KO_CR
<- AverageExpression(KO_CR,
KO_CR.averages group.by = "Pseudotime.bins",
assays = "integrated",
slot = "scale.data")
# WT Pallial neurons
<- subset(WT_KO_trajectories, subset = orig.ident == "Hem1" & Lineage == "Pallial_neurons")
WT_Pal
<- AverageExpression(WT_Pal,
WT_Pal.averages group.by = "Pseudotime.bins",
assays = "integrated",
slot = "scale.data")
# KO Pallial neurons
<- subset(WT_KO_trajectories, subset = orig.ident == "Gmnc_KO" & Lineage == "Pallial_neurons")
KO_Pal
<- AverageExpression(KO_Pal,
KO_Pal.averages group.by = "Pseudotime.bins",
assays = "integrated",
slot = "scale.data")
# WT CR
<- pdist::pdist(X= t(WT_CR.averages$integrated),
Smoothed.point.cor Y= t(WT_Pal.averages$integrated))
<- diag(as.matrix(Smoothed.point.cor))
WT.CR_WT.Pal.dist
<- pdist::pdist(X= t(WT_CR.averages$integrated),
Smoothed.point.cor Y= t(KO_Pal.averages$integrated))
<- diag(as.matrix(Smoothed.point.cor))
WT.CR_KO.Pal.dist
<- pdist::pdist(X= t(WT_CR.averages$integrated),
Smoothed.point.cor Y= t(KO_CR.averages$integrated))
<- diag(as.matrix(Smoothed.point.cor))
WT.CR_KO.CR.dist
<- pdist::pdist(X= t(KO_CR.averages$integrated),
Smoothed.point.cor Y= t(WT_Pal.averages$integrated))
<- diag(as.matrix(Smoothed.point.cor))
KO.CR_WT.Pal.dist
<- pdist::pdist(X= t(KO_CR.averages$integrated),
Smoothed.point.cor Y= t(KO_Pal.averages$integrated))
<- diag(as.matrix(Smoothed.point.cor))
KO.CR_KO.Pal.dist
<- pdist::pdist(X= t(WT_Pal.averages$integrated),
Smoothed.point.cor Y= t(KO_Pal.averages$integrated))
<- diag(as.matrix(Smoothed.point.cor)) WT.Pal_KO.Pal.dist
<- data.frame(Distance = c(WT.CR_WT.Pal.dist, WT.CR_KO.Pal.dist, WT.CR_KO.CR.dist,
data
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)))
<- DimPlot(WT_KO_trajectories,
p1 reduction = "integrated_spring",
group.by = "Pseudotime.bins",
pt.size = 1,
#cols = c("#cc391b", "#026c9a")
+ NoAxes()
)
<- ggplot(data, aes(x= Pseudotime.bin, y= Distance, color= Trajectory, group = Trajectory)) +
p2 geom_line() +
geom_point()
+ p2 p1
<- subset(WT_KO_trajectories, subset = Pseudotime.bins %in% c(6,7)) WT_KO_LN
DefaultAssay(WT_KO_LN) <- "RNA"
<- DimPlot(WT_KO_LN,
p1 reduction = "integrated_spring",
group.by = "Lineage",
pt.size = 1,
cols = c("#cc391b", "#026c9a")
+ NoAxes()
)
<- DimPlot(WT_KO_LN,
p2 reduction = "integrated_spring",
group.by = "orig.ident",
pt.size = 1,
cols = c("#cc391b", "#026c9a")
+ NoAxes()
)
<- FeaturePlot(object = WT_KO_LN,
p3 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()
+ p2) + (p3) (p1
#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↩︎