利用 dbscan 检测UMAP图中的Outliers

# 使用DBSCAN算法检测离群点,,离群点通常位于低密度区域。
umap_data <- FetchData(signac_obj_integ_flt,vars = c('umap_1','umap_2','cytpe'))
lapply(unique(umap_data $cytpe), function(x){
    data <- umap_data %>% filter(cytpe== x)
    ### 关键参数: eps[检测范围];minPts[当前范围内最少应包含的细胞数量]
    dbscanResult <- dbscan::dbscan(as.matrix(data[,1:2]), eps= 0.3, minPts= 60)$cluster
    return({
        rownames(data)[dbscanResult > 0]
    })
}) %>% unlist -> inlier_Cells

options(repr.plot.width = 12, repr.plot.height = 9)
umap_data[inlier_Cells,] %>% ggplot(aes(x = umap_1, y = umap_2, color = cytpe)) + geom_point(size = 0.1)
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容