方法更新----单细胞CNV分析与CNA neighbourhood analysis

作者,Evil Genius
今天我们需要实现的目标

看看方法部分

其实就是CNV分数矩阵做均一化,PCA降维,然后采用miloR进行聚类分析,分析CNV事件的相互联系。
其实这种分析在python版本的inferCNVpy已经实现过了,链接在Infer CNV on lung cancer dataset — infercnvpy

我们来根据文献的内容实现一下,inferCNV大家自己做一下,我们从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") 

生活很好,有你更好
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值