계통수 생성을 위한 상향 클러스터링 방법
생물정보학에서 인접접합은 1987년 [1]나루야 사이토우 마사토시·네이씨가 개발한 계통수 생성용 상향(응집형) 군집법이다.보통 DNA 또는 단백질 배열 데이터에 기반한 나무에 사용되는 이 알고리즘은 [2]트리를 형성하기 위해 각 분류군 쌍(예: 종 또는 배열) 사이의 거리에 대한 지식이 필요하다.
알고리즘
스타트리(A)에서 시작하여 Q행렬을 계산하여 결합할 노드 쌍(이 경우 f와 g)을 선택하기 위해 사용한다.이들은 (B)에 나타나듯이 새로 생성된 노드 u에 결합됩니다.실선으로 표시된 트리의 부분은 이제 고정되어 있으며 이후 결합 단계에서 변경되지 않습니다.노드 u에서 노드 a~e까지의 거리는 식 (3)에서 계산된다.그런 다음 노드 간 거리 a, b, c, d, e, u의 매트릭스와 그것으로부터 파생된Q 매트릭스를 사용하여 이 프로세스를 반복합니다.이 경우 u와 e는 (C)와 같이 새로 생성된 v에 결합됩니다.트리가 완전히 해결되면 두 번의 반복이 먼저 (D)로 이어지며 알고리즘이 실행되는 (E)로 이어집니다. 네이버 결합은 각 분류군 쌍 간의 거리를 지정하는 거리 행렬을 입력으로 받아들입니다.이 알고리즘은 스타 네트워크의 토폴로지에 대응하는 완전히 해결되지 않은 트리에서 시작하여 트리가 완전히 해결되어 모든 브랜치 길이를 알 수 있을 때까지 다음 단계를 반복합니다.
- 현재 거리 행렬을 기반으로 Q 정의)를 계산합니다.
- Q의 값이 가장 낮은 고유 분류법 i와 j(의 쌍을 찾습니다.이러한 분류는 중앙 노드에 연결된 새로 생성된 노드에 결합됩니다.오른쪽 그림에서는 f와 g가 새로운 노드 u에 결합되어 있다.
- 쌍의 각 분류군으로부터 이 새로운 노드까지의 거리를 계산합니다.
- 이 쌍의 바깥쪽에 있는 각 분류군으로부터 새로운 노드까지의 거리를 계산합니다.
- 알고리즘을 재기동하여 가입된 네이버 쌍을 새 노드로 교체하고 이전 단계에서 계산된 거리를 사용합니다.
Q 매트릭스
\ \display Q\ Q \displaystyle Q\를 다음과 같이 합니다.
-
| | (1) |
서d (, j) { ( , j ) a 、i j\ j까지의 거리입니다.
페어 멤버에서 새 노드까지의 거리
결합되는 쌍의 각 분류군에 대해 다음 공식을 사용하여 새 노드까지의 거리를 계산합니다.
-
| | (2) |
또, 다음과 같이 합니다.
f {\ f와 g {\ g는 쌍으로 구성된 이고u {\u}는 새로 생성된 노드입니다.f f와u(\u와 g g와u(\\delta 와를 하는 은 점차 생성되는 트리의 일부입니다그 후의 네이버 설정 순서의 영향을 받습니다.
새 노드로부터의 다른 분류군 거리
이전 단계에서 고려되지 않은 각 분류군에 대해 새 노드까지의 거리를 다음과 같이 계산합니다.
-
| | (3) |
서u는 새로운 노드, k는 우리가 계산할 노드, f와 g는 방금 결합된 쌍의 멤버입니다.
복잡성
네이버가 style n 택시에 하려면 3개( 각 단계에서 Q Q 를 구축하고 검색해야 합니다.처음에 Q 매트릭스의 는n ×(\ n n입니다.다음 단계는( ) ×( -)\ ( ) \ ( )이것을 간단하게 실장하면 O 3 O[3]의 시간 복잡도를 가지는 알고리즘이 생깁니다.실장에서는,[4] 휴리스틱스를 사용해 평균보다 훨씬 뛰어난 성능을 발휘합니다.
예
5개의 택시가 있는 이웃이 가입하고 있습니다.이 경우 2개의 네이버 가입 스텝은 완전히 해결된 토폴로지를 가진 트리를 제공합니다.결과 트리의 가지에는 길이가 라벨로 표시됩니다.
5개의 분류군과 다음의 DD가 있다고 가정합니다.
| a | b | c | d | e |
a | 0 | 5 | 9 | 9 | 8 |
b | 5 | 0 | 10 | 10 | 9 |
c | 9 | 10 | 0 | 8 | 7 |
d | 9 | 10 | 8 | 0 | 3 |
e | 8 | 9 | 7 | 3 | 0 |
제1단계
첫 가입
값은 식 (1)에 의해 계산됩니다.예를 들어 다음과 같습니다.
1 에 대해 다음 값을 구합니다(매트릭스의 대각 요소는 사용되지 않으며 여기서는 생략됩니다).
| a | b | c | d | e |
a | | −50 | −38 | −34 | −34 |
b | −50 | | −38 | −34 | −34 |
c | −38 | −38 | | −40 | −40 |
d | −34 | −34 | −40 | | −48 |
e | −34 | −34 | −40 | −48 | |
위의 예에서는 1 ( ) - { b)=- 입니다.이 은의 최소값({1이므로 요소와를 결합합니다.
첫 번째 분기 길이 추정
u는 새로운 노드를 나타냅니다.위의 식 (2)에 따르면,와를 연결하는 branch의 과 같습니다
첫 번째 거리 매트릭스 업데이트
그런 다음 초기 거리 를 새로운 매트릭스 아래 참조)로 업데이트합니다. 이 행렬은bb를 a가 하는u\u에 결합되었기 때문에 크기가 1줄 1줄 축소됩니다.위 (3)에서는(\u)에서 a(\ a및 b 의 각 노드까지의 거리를 계산합니다.이 경우 다음과 같이 구합니다.
결과 거리 은 다음과 같습니다.
| u | c | d | e |
u | 0 | 7 | 7 | 6 |
c | 7 | 0 | 8 | 7 |
d | 7 | 8 | 0 | 3 |
e | 6 | 7 | 3 | 0 |
의 굵은 글씨 값은 새로 계산된 거리에 해당하지만 이탤릭체로 표시된 값은 첫 번째 분류에 포함되지 않은 요소 간의 거리에 해당하므로 매트릭스 업데이트의 영향을 받지 않습니다.
두 번째 단계
두 번째 가입
하는 매트릭스는 다음과 같습니다.
| u | c | d | e |
u | | −28 | −24 | −24 |
c | −28 | | −24 | −24 |
d | −24 | −24 | | −28 |
e | |