| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
- AP Computer Science A
- CNN
- 자바
- RNN
- BLaST
- Java
- 결정트리
- 생물정보학
- 서열정렬
- MERS
- bioinformatics
- Kaggle
- HMM
- AP
- 이항분포
- 인공지능 수학
- 인공신경망
- 바이오파이썬
- 바이오인포매틱스
- COVID
- 파이썬
- 인공지능
- 캐글
- 오류역전파
- 딥러닝
- 시그모이드
- 블록체인
- SVM
- ncbi
- 생명정보학
- Today
- Total
데이터 과학
UPGMA 계통수 본문
UPGMA는 "Unweighted Pair Group Method with Arithmetic Mean"의 약자로, 계통 분석에서 사용되는 클러스터링 알고리즘입니다. UPGMA는 분자 생물학, 계통학, 유전학 등 다양한 분야에서 종간의 유사성을 분석하고 계통수를 구성하는 데에 활용됩니다.
UPGMA 알고리즘은 다음과 같은 절차로 계통수를 생성합니다:
1. 입력 데이터 준비: 유사성 행렬을 사용하여 종 또는 개체 간의 유사성을 표현합니다. 일반적으로 거리 행렬이 사용되며, 거리는 종 또는 개체 간의 유사성을 측정하는 방법에 따라 계산됩니다.
2. 초기 클러스터 생성: 각 종 또는 개체는 개별적인 클러스터로 간주됩니다.
3. 클러스터 간 거리 계산: 모든 클러스터 쌍 간의 거리를 계산합니다. 일반적으로 클러스터 간 거리는 유사성 행렬에서 얻은 종 또는 개체 간 거리의 평균으로 정의됩니다.
4. 가장 가까운 클러스터 병합: 가장 가까운 두 클러스터를 선택하고, 이를 하나의 클러스터로 병합합니다. 새로운 클러스터의 거리는 병합된 클러스터 간의 거리로 설정됩니다.
5. 클러스터 갱신: 클러스터 간 거리 행렬을 업데이트하여 새로운 클러스터를 포함하고, 이전 클러스터 간의 거리를 조정합니다.
6. 클러스터가 하나의 종 또는 개체로 축소될 때까지 3~5 단계를 반복합니다.
UPGMA 알고리즘은 클러스터 간 거리의 평균을 사용하기 때문에, 클러스터 크기가 커질수록 오차가 누적되는 경향이 있습니다. 따라서 UPGMA는 대체로 상대적으로 작은 데이터셋이나 균일한 변화율을 가지는 데이터셋에서 더 잘 작동합니다. 큰 규모의 데이터셋이나 불균형한 변화율을 가지는 데이터셋의 경우에는 다른 계통 추정 방법을 사용하는 것이 더 적절할 수 있습니다.
다음은 UPGMA 계통수를 생성하기 위한 간단한 바이오 파이썬 코드입니다. 이 코드는 거리 행렬과 관련된 작업에 대한 입력이 있다고 가정합니다. 거리 행렬은 NumPy 배열로 표현되며, 계통수는 트리 구조로 반환됩니다.
import numpy as np
from scipy.cluster import hierarchy
def upgma(dist_matrix):
# 거리 행렬을 복사하여 계산에 사용
dist_array = dist_matrix.copy()
# 계통수 계산
linkage_matrix = hierarchy.upgma(dist_array)
# linkage_matrix를 계통수로 변환하여 반환
tree = hierarchy.to_tree(linkage_matrix, rd=False)
return tree
이 코드에서 dist_matrix는 NumPy 배열로 표현된 거리 행렬입니다. 거리 행렬은 종 또는 개체 간의 거리를 나타내는 대칭 행렬이어야 합니다. hierarchy.upgma 함수는 UPGMA 알고리즘을 사용하여 linkage matrix를 생성합니다. 그리고 hierarchy.to_tree 함수는 linkage matrix를 계통수로 변환하여 반환합니다.
이 코드는 scipy 패키지의 cluster.hierarchy 모듈을 사용합니다. 따라서 해당 모듈이 설치되어 있어야 합니다. scipy 패키지가 설치되어 있지 않은 경우, pip install scipy 명령을 사용하여 설치할 수 있습니다.
이 코드를 사용하여 UPGMA 계통수를 생성할 때는 거리 행렬을 적절하게 준비해야 합니다. 거리 행렬을 만드는 방법은 데이터의 유사성을 측정하는 방법에 따라 다를 수 있습니다. 거리 행렬을 생성하는 방법은 분석하려는 데이터와 연구 목적에 따라 결정되어야 합니다.
이 코드는 간단한 예시를 위한 것이며, 더 복잡한 데이터나 다른 요구 사항에 따라 코드를 수정해야 할 수 있습니다.
'생명정보학 & 화학정보학 > 바이오파이썬' 카테고리의 다른 글
| Kaggle에서 서열 정렬과 계통수 (0) | 2022.11.01 |
|---|---|
| Kaggle에서 바이오파이썬 (1) | 2022.09.20 |
| KEGG (0) | 2022.08.10 |
| 바이오파이썬 서열정렬 예제 (0) | 2022.08.03 |
| phylip 계통수 (0) | 2022.04.29 |