单细胞测序面临的一个不可忽视的技术问题,就是dropout事件(表达大量的0值,表达矩阵比较稀疏),如何克服这些噪声,研究者开发了一些方法,用以填补这些0值,克服技术噪声。2020年有一篇发表在GB上的方法评测,系统性地评测了18种目前已经发表的单细胞imputation工作,这些方法可以大致分为三类,第一类是基于统计学模型的方法。第二类是基于图的方法。第三类是基于深度学习的方法。在18种方法种,基于统计学模型的SAVER和基于图的MAGIC,KNN-smoothing在评测上优于其他的方法。其中包括与bulk RNA的表达相关性,聚类,基因复现性,拟时序分析等等。
这里介绍KNN-smoothing的方法原理和代码:
KNN-smoothing采取的是k最近邻的方法计算每个细胞k个邻居,在这之前先进行了表达矩阵的标准化,然后将每个细胞的原始count表达量更新为k个邻居细胞的平均表达量。
knn-smoothing github代码
命令行格式:
python3 knn_smooth.py -k 15 -f expression.tsv -o expression_smoothed.tsv
-k: 设置邻居k,这里个数应该是log2(k+1)
-f:输入文件
-o:输出文件