Load the library and the data
library(SpaGene)
load("MerFish/merfish_raw.rds")
Find spatially variable genes and patterns
merfish_sv<-SpaGene(count,location,knn=24)
#sort by adjp
merfish_sv_reorder<-merfish_sv$spagene_res[order(merfish_sv$spagene_res$adjp),]
# the most signifiant spatially variable genes
head(merfish_sv_reorder)
## score zval pval adjp
## Aqp4 33.67343 -40.46635 0 0
## Cd24a 29.66372 -66.91184 0 0
## Ermn 32.69815 -46.89872 0 0
## Gda 31.65402 -53.78514 0 0
## Mlc1 33.73963 -40.02976 0 0
## Prlr 33.98323 -38.42312 0 0
# the rank of Blank genes(negative controls)
grep("Blank",rownames(merfish_sv_reorder))
## [1] 150 152 153 160 161
pattern<-FindPattern(merfish_sv)
PlotPattern(pattern,location,pt.size = 0.3,max.cutoff = 1)

Top five genes falling into each pattern
top5<-apply(pattern$genepattern,2,function(x){names(x)[order(x,decreasing=T)][1:5]})
library(pheatmap)
pheatmap(pattern$genepattern[rownames(pattern$genepattern)%in%top5,])
