Notice
Recent Posts
Recent Comments
Link
관리 메뉴

데이터 과학

UPGMA 본문

생명정보학 & 화학정보학/계통학

UPGMA

티에스윤 2025. 10. 30. 17:30

계통수를 거리 기반으로 추정하는 접근은 먼저 여러 개체(종, 표본, 서열)의 정렬된 염기서열로부터 쌍별 거리행렬을 계산하는 단계에서 출발합니다. 단순히 서로 다른 자리의 비율만을 세는 p-distance는 계산이 쉽지만 한 자리에서 여러 번 치환이 일어났을 가능성을 고려하지 못하기 때문에, 다중치환을 보정하는 JC69, K2P(김우라), HKY, GTR, Γ, I 등의 치환모형을 사용하는 것이 일반적입니다. 이렇게 얻은 대칭 거리행렬 D=(dij)이 준비되면, 그 다음 단계는 이 행렬을 가장 잘 설명하는 트리의 위상(누가 누구와 가까운가)과 가지 길이(얼마나 다른가)를 재구성하는 문제로 이어집니다.

 

이때 가장 오래되고 직관적인 방법이 UPGMA입니다.

UPGMA는 계통수 추정보다는 연쇄적 군집화(agglomerative clustering)에 가까운 방법입니다. 가장 가까운 두 군집을 묶은 뒤, 새로 생성된 군집과 다른 군집 사이의 거리를 표본수로 가중한 산술평균으로 갱신하는 과정을 군집이 하나만 남을 때까지 반복합니다. 그 결과로 만들어지는 트리는 울트라메트릭(ultrametric) 구조를 가지며, 이는 루트에서 말단까지의 높이가 모두 같은 형태입니다. 이러한 특징은 모든 가지가 동일한 평균 진화율로 변이한다는 분자시계 가정을 전제로 하기 때문에, 실제로 자료가 분자시계를 잘 따를 때는 UPGMA가 빠르고 해석이 단순하며, 가지의 높이를 시간축으로 읽을 수 있다는 장점을 가집니다.

그러나 서로 다른 계통에서 진화 속도가 크게 다르거나 긴 가지가 존재하는 비울트라메트릭 데이터에서는 가지 길이와 위상이 왜곡되기 쉽습니다.

 

이 한계를 보완하기 위해 널리 사용되는 방법이 Neighbor-Joining(NJ)입니다. NJ는 분자시계를 가정하지 않으며, 주어진 거리행렬로부터 전체 분지길이 합을 최소화하는 이웃 쌍을 반복적으로 찾아 내부 노드를 형성하는 탐욕적(그리디) 절차를 따릅니다. 각 표본의 전체 거리합 ri를 구하고, Q(i,j) = (n−2)d(i,j) − ri − rj라는 함수를 계산하여 Q 값이 가장 작은 쌍 (i, j)을 선택합니다. 그 두 노드가 연결될 때 내부 노드까지의 가지 길이는 d(i,j)와 ri, rj, 그리고 현재 노드 수 n으로부터 계산됩니다. 이후 두 노드를 하나의 새로운 내부 노드로 합치고, 갱신된 거리행렬로 이 과정을 반복합니다.

 

데이터가 이상적으로 가법적(additive)인 경우 NJ는 원래의 위상을 정확하게 복원할 수 있으며, 실제로 수백에서 수천 개의 OTU를 가진 데이터에서도 O(n³)의 계산 시간 안에 충분히 실용적으로 작동합니다. NJ는 UPGMA보다 진화 속도의 불균등에 강건하며, 대규모 데이터의 초안 트리를 얻거나 최대우도(ML)나 베이지안 탐색의 초기 트리로 사용하기에 적합합니다. 현재는 BioNJ, FastME 등의 개선된 알고리즘과 함께 거리 기반 계통수 추정의 표준적인 접근법으로 자리 잡고 있습니다.

UPGMA와 NJ 모두 거리행렬의 품질에 따라 트리의 신뢰도가 달라집니다.

따라서 정렬 품질을 높이고, 문제 구간을 마스킹하거나 갭을 적절히 처리하는 것이 중요합니다. 또한 모델 선택을 위해 AIC나 BIC 기준으로 JC69, K2P, HKY, GTR(+Γ, +I) 등의 모델을 비교해야 하며, 장가지 효과로 인한 왜곡(포화 또는 수렴진화)을 줄이기 위한 주의도 필요합니다. 트리의 불확실성을 정량화하기 위해 부트스트랩 분석이 표준적으로 사용됩니다. 이는 정렬된 염기서열의 열(column)을 재표집하여 동일한 과정으로 트리를 여러 번 구성한 뒤, 각 내부 분할(bipartition)이 몇 퍼센트의 반복에서 재현되는지를 지지도로 나타내는 방식입니다. 일반적으로 70% 정도의 지지도는 보통 신뢰 수준으로 해석되며, 90% 이상의 분지는 높은 신뢰도로 평가됩니다.

 

 

이렇게 생성된 트리를 서로 다른 프로그램이나 플랫폼 간에 교환하기 위해 사용되는 사실상의 표준 표현 방식이 뉴윅(Newick) 포맷입니다. 뉴윅 포맷은 괄호를 중첩하여 분기 구조를 나타내고, 콜론 뒤에 실수 형태로 가지 길이를, 마지막에는 세미콜론을 붙여 트리의 종료를 표시합니다.

예를 들어 (A:0.1,B:0.2,(C:0.3,D:0.4):0.5); 와 같은 표현은 A와 B가 하나의 갈래를 이루고, C와 D가 또 다른 갈래를 이루며, 이 두 갈래가 다시 상위에서 결합되는 구조를 의미합니다. 콜론 뒤의 숫자는 일반적으로 사이트당 기대 치환수를 뜻하지만, 뉴윅 포맷 자체는 루트의 개념을 강제하지 않습니다. 따라서 표기상 최상위 괄호가 루트를 나타내는 것처럼 보일 수 있지만, 동일한 비루트 트리는 자식의 순서만 바꿔 여러 방식으로 표현될 수 있습니다. 루팅이나 시간축(울트라메트릭) 해석은 트리를 만든 방법에 따라 달라지며, 뉴윅은 그 결과를 담는 형식적 그릇의 역할을 합니다.

 

라벨 표기 규칙에도 주의해야 합니다. 리프 이름이나 내부 노드 라벨에 공백, 괄호, 콤마, 콜론, 세미콜론 등의 문법 문자가 포함되면 반드시 작은따옴표로 감싸야 하며, 작은따옴표 자체를 포함해야 할 때는 두 번 연속 사용하여 이스케이프해야 합니다. 오래된 일부 프로그램은 언더스코어를 공백으로 변환하는 관행이 있으므로, 현대 도구에서는 해당 기능을 비활성화하는 것이 안전합니다. 내부 노드 라벨은 종종 부트스트랩 지지도를 담는 데 사용되지만, 모든 프로그램이 이를 지지도로 해석하는 것은 아니므로 뷰어 또는 후속 분석 도구의 규칙을 확인해야 합니다. 필요할 경우 Nexus나 NHX와 같은 확장 포맷을 이용해 메타데이터를 명시하는 것이 좋습니다. 뉴윅은 대괄호 주석이나 NHX 확장을 통해 노드 또는 가지의 추가 정보를 담을 수 있으나, 확장 방식마다 호환성에 차이가 있을 수 있습니다.

 

결론적으로 거리 기반 계통수 분석은 정렬, 거리모델 선택, 거리행렬 계산, 트리 추정(UPGMA/NJ), 부트스트랩을 통한 불확실성 평가의 단계로 이루어집니다. UPGMA는 분자시계 가정이 성립할 때 빠르고 해석이 단순하며, 시간적 해석이 가능한 장점을 가집니다. 반면 NJ는 분자시계를 가정하지 않으면서 일반적인 데이터에 더 강건하며, 대규모 데이터의 기본 트리 구성에 적합합니다. 두 방법 모두 결과를 뉴윅 포맷으로 내보내어 FigTree, iTOL, ETE 등과 같은 뷰어에서 가지 길이와 부트스트랩 값을 함께 시각화하여 해석할 수 있습니다.

마지막으로, 트리의 품질을 결정하는 가장 중요한 요소는 입력 데이터의 질이며, 신뢰할 수 있는 정렬, 적절한 모델 선택, 그리고 변이 왜곡을 최소화한 표본 설계가 계통수 해석의 정확도를 좌우한다는 점을 기억하는 것이 중요합니다.