我有一个这种形式的数据集:
chrX posX labelX
其中chrX是指染色体数,posX是指位置,labelX是一个具有 3 个标签的分类变量。例如:
chr1 3223 1
chr1 3200 2
chr1 3100 1
chr1 1000 2
chr2 1000 1
chr1 3210 3
我想用某些约束对这些数据进行聚类(因此,这不再是通常的“聚类”),这样,对于每个染色体,其中的位点,比如说位置在一起,约束是它们应该具有唯一的标签。
例如,预期的输出将是:
chr1 : 3223(1) 3200(2) 3210(3)请注意站点之类chr1 3100 1的不是“集群”的一部分。
一种方法是简单地计算所有此类站点之间的成对差异,并在处理唯一标签的情况下扩展集群。
有没有更优雅的方法来解决这些问题?