作者,Evil Genius
我们在学习了CNV和miloR之后,就要将两者进行联合分析了。
参考文章
分析结果
其核心就在于结合CNV + miloR的分析内容。
分析方法
首先是CNV分析
其次是CNA neighbourhood analysis
我们来实现一下,们从CNV矩阵开始。
libarary(Seurat)
library(miloR)
library(SingleCellExperiment)
library(scater)
library(scran)
library(dplyr)
library(patchwork)
expression_matrix <- read.csv("cnv_matrix.csv", row.names =1)
seurat_object <-CreateSeuratObject(counts = expression_matrix)
seurat_object <-NormalizeData(seurat_object)
####这个地方看文献是均一化之后直接进行PCA分析
seurat_object <-RunPCA(seurat_object, features =rownames(seurat_object))
####获取PCA矩阵
pca_matrix = seurat_object@reductions$pca@cell.embeddings
pca_matrix
进行miloR分析
sce <-SingleCellExperiment(assays=list(counts=seurat_object@assays$RNA@counts, logcounts=seurat_object@assays$RNA@data),reducedDims=SimpleList(PCA=seurat_object@reductions$pca@cell.embeddings))
milo <-Milo(sce)
###Construct KNN graph
milo <- buildGraph(sce, k =30, d =30, reduced.dim ="PCA")
milo <- makeNhoods(milo)
####Defining representative neighbourhoods on the KNN graph
milo <- makeNhoods(milo, prop =0.1, k =30, d=30, refined =TRUE, reduced_dims ="PCA")
####Computing neighbourhood connectivity
milo <- calcNhoodDistance(milo, d=30, reduced.dim ="PCA")
####testing
#####注释信息
design <- data.frame(colData(embryo_milo))[,c("sample","disease","celltype")]
milo <- buildNhoodGraph(milo)
da_results <- testNhoods(milo, design =~ sample + disease, design.df = design)
plotNhoodGroups(embryo_milo, da_results, layout="umap")
生活很好,有你更好。
网友评论