单细胞imputation | MAGIC
quick code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | library (Rmagic) bmmsc <- t (GBM.pair@assays$RNA@counts) bmmsc <- library.size.normalize (bmmsc) bmmsc <- sqrt (bmmsc) # bmmsc[1:5,1:5] # # run MAGIC # bmmsc_MAGIC <- magic(bmmsc, genes=c("Jarid2","Sox9","Krt20")) # genes="all_genes" # run MAGIC bmmsc_MAGIC <- magic (bmmsc, genes= "all_genes" ) # genes="all_genes" GBM.pair$JARID2_imputation <- bmmsc_MAGIC$result[ colnames (GBM.pair), "JARID2" ] options (repr.plot.width=10, repr.plot.height=5) VlnPlot (GBM.pair, features = c ( "JARID2_imputation" ), group.by = "sampleID" ) + stat_summary (fun.y = median.stat, geom= 'point' , size = 5, colour = "black" , shape = 21) |
2023年08月21日
这会处理了已经发表的Sox9单细胞数据,发现同样的Lgr5 mouse model,Jarid2和Sox9的表达比很低, 询问后确定了,这批细胞的sequencing depth很低,这导致基因的捕获率很低,而且28 day已经是mice生存的极限了,后面就会生病致死。
表达比过低,导致表达差异显著性分析无法进行,所以必须做imputation,这次的分析再次确定了MAGIC很好用。
重新下载安装:https://github.com/KrishnaswamyLab/MAGIC
Installation from GitHub 【R和Python版本必须同时安装】
1 2 3 4 5 | git clone git: //github .com /KrishnaswamyLab/MAGIC .git cd MAGIC /python python setup.py install --user cd .. /Rmagic R CMD INSTALL . |
如果R代码报错,AttributeError: module 'magic' has no attribute 'MAGIC'
那就重启kernel,或者进入命令行测试。无非就是版本的问题,版本太多,有点混乱。
最新代码实例:http://localhost:17435/notebooks/data_center/2023_SOX9_Sci_Adv_PB/SOX9_Sci_Adv.ipynb
特殊情况下,需要对UMI的单细胞数据做imputation,补全缺失的数据。
工具很多,这篇paper已经帮你评估好了,直接用其推荐的工具即可。
A systematic evaluation of single-cell RNA-sequencing imputation methods
排名第一的单细胞imputation工具:
https://github.com/KrishnaswamyLab/MAGIC
教程:Rmagic Bone Marrow Tutorial
UMI的一般都是大数据,跑起来还是比较耗时的。
安装
1 2 3 4 5 6 7 8 9 | library (Rmagic) library (ggplot2) library (readr) library (viridis) library (phateR) # check # don't "source activate py38", otherwise the python package cannot be loaded pymagic_is_available () |
测试数据
1 2 | # # load data # bmmsc <- read_csv("https://github.com/KrishnaswamyLab/PHATE/raw/master/data/BMMC_myeloid.csv.gz") |
实际数据
1 2 | bmmsc <- t (integrated.org@assays$RNA@counts) bmmsc[1:5,1:5] |
QC
1 2 3 4 5 6 7 | # keep genes expressed in at least 10 cells keep_cols <- colSums (bmmsc > 0) > 10 bmmsc <- bmmsc[,keep_cols] # look at the distribution of library sizes ggplot () + geom_histogram ( aes (x= rowSums (bmmsc)), bins=50) + geom_vline (xintercept = 1000, color= 'red' ) |
1 2 3 | # keep cells with at least 1000 UMIs keep_rows <- rowSums (bmmsc) > 1000 bmmsc <- bmmsc[keep_rows,] |
1 2 | bmmsc <- library.size.normalize (bmmsc) bmmsc <- sqrt (bmmsc) |
测试部分基因
1 2 3 | # run MAGIC # bmmsc_MAGIC <- magic(bmmsc, genes=c("Mpo", "Klf1", "Ifitm1")) bmmsc_MAGIC <- magic (bmmsc, genes= c ( "NEUROG2" , "NEAT1" , "TFAP2A" )) |
获取全部基因
1 | bmmsc_MAGIC_all <- magic (bmmsc, genes= "all_genes" , t=4, init=bmmsc_MAGIC) |
可视化
1 2 3 | ggplot ( as.data.frame (bmmsc[, c ( "NEUROG2" , "NEAT1" , "TFAP2A" )])) + geom_point ( aes (NEUROG2, NEAT1, color=TFAP2A)) + scale_color_viridis (option= "B" ) |
1 2 3 | ggplot ( as.data.frame (bmmsc_MAGIC$result[, c ( "NEUROG2" , "NEAT1" , "TFAP2A" )])) + geom_point ( aes (NEUROG2, NEAT1, color=TFAP2A)) + scale_color_viridis (option= "B" ) |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)