问题定义:
宏基因组测序得到的序列之中包含多个物种的序列,并且这些序列都很短。我们希望通过计算的方法,将这些序列进行分离。已有的方法包括比对,有参考的机器学习,先提取特征值再进行比对的加速方法。可是经过处理之后依然有些序列是剩下来无法处理的,此时我们希望通过计算的手法推测这些序列之中包含多少个物种,并且将每个物种的序列放到一起。
目前已有的算法包括基于k-means的MetaCluster算法和基于EM算法的TOSS。其中MetaCluster只处理长序列>500,但效果较好,并且可以取得不错的聚类效率。TOSS可以处理短序列但处理包含多个物种的序列的时候并不能取得好结果,而且它计算速度慢。
针对宏基因组测序的短串(70~100bps)中包含多个物种的DNA序列,需要将每个物种的序列分开的聚类问题,设计了分两步的聚类算法。第一步,首先针对测序序列的包含一定的重复性,将DNA串中相邻32位ATCG编码为整数,并建立倒排索引,即可快速计算任意两个串之间的相似度(使用这两个串包含的相同位编码整数确定)。第一步之后,DNA序列初步被分类为了多个group,但是相同的物种的串也许依然没有聚集到一起。在第二部中,将每个group中相邻4位ATCG编码,然后使用affinity propagation再进行最终的聚类的到最终的聚类结果。
AP算法:
我们的算法的结果比TOSS快10倍以上,并且可以处理短序列,并且聚类准确率和MetaCluster接近。
具体的设计和讲解,待续。
欧几里得距离:欧氏距离是最常见的距离度量,衡量的是多维空间中各个点之间的绝对距离。
明可夫斯基距离:明氏距离是欧氏距离的推广,是对多个距离度量公式的概括性的表述。公式如下:
曼哈顿距离:
切比雪夫距离:
马拉诺比斯距离:欧几里得距离每个维度归一化后得到的距离。
余弦距离:
皮尔逊相关系数:
Jaccard相似性系数:
调整余弦相似性:
spearman距离:(这个不就是曼哈顿距离么)
距离度量:http://www.cnblogs.com/heaad/archive/2011/03/08/1977733.html