著名的小鼠转录数据库。原理和实现参考:
单细胞转录组数据分析|| scanpy教程:预处理与聚类
有关dbscan的算法演示有个网站可视化地对参数距离和中心点个数演示:
Visualizing DBSCAN Clustering
文件夹中共包含5个以逗号分隔的文本文件,每个文本文件包含小鼠乳腺组织中一种特定类型的细胞的基因表达水平,以矩阵形式存储。简单来讲每行是一个特征,每列是一个样本,每个值表示表达情况,0.0表示没有表达,数据无负值。其中五份数据文件的样本表示一类。
具体要求:
简单就两个:
- 对2万个特征求方差,选出2000个特征,然后用pca得到前50维特征。然后对前两位最大特征的画图。效果如图,可见还是有很大关联的,个别因为维度太低已经分散了。
- 然后从pca后的50个维度特征进行聚类,求出标准化互信息(Normalized Mutual Information, NMI)。改变参数求出最好的划分,邻近距离是欧式距离,距离在10-15间效果最好,过大会把不同类聚到一起,过小会让本属于同一类的变成孤立点,因此孤立点就会更多,至于最小中心点请自行分析:
效果一般,能力有限都借助sklearn的库写的。
源码及五个文件如下链接。
由于我已经生成了五个文件合成的scrna.csv。所以注释掉了生成代码。第一次运行请去掉注释。
由于数据集较大不上传了。
代码见:github