Gene Ontology
Gene Ontology (GO)
Gene Ontology (GO)는 유전자와 단백질의 기능을 설명하기 위해 생물종에 관계없이 공통적으로 사용할 수 있도록 표준화된 어휘 체계(Controlled Vocabulary)이자 유향 비순환 그래프(DAG) 기반의 지식 베이스이다.
1. 개요
현대 생물학에서는 유전체 분석 기술의 발달로 수많은 유전자가 발견되었으나, 각 연구자가 서로 다른 용어로 기능을 기술함에 따라 데이터 통합과 비교 분석에 어려움이 발생했다. 예를 들어, 어떤 연구자는 'cell death'라고 표현하고 다른 연구자는 'apoptosis'라고 표현할 때, 이를 컴퓨터가 동일한 개념으로 인식하게 하는 표준이 필요했다.
Gene Ontology는 이러한 문제를 해결하기 위해 유전자의 기능을 생물학적 과정(Biological Process), 분자 기능(Molecular Function), 세포 성분(Cellular Component)이라는 세 가지 독립적인 GO Term(GO 용어) 범주로 나누어 정의하며, 이를 통해 서로 다른 종 간의 기능적 상동성(Functional Homology)을 체계적으로 분석할 수 있게 한다.
2. GO의 세 가지 주요 범주 (Three Domains)
GO는 유전자의 기능을 다각도로 분석하기 위해 다음과 같은 세 가지 상호 보완적인 도메인을 제공한다.
| 범주 | 영문 명칭 | 정의 및 설명 | 대표 예시 |
|---|---|---|---|
| 생물학적 과정 | Biological Process (BP) | 유전자가 기여하는 더 큰 생물학적 목표나 경로 | DNA 복제, 세포 사멸, 포도당 대사 |
| 분자 기능 | Molecular Function (MF) | 단백질이나 RNA가 수행하는 구체적인 화학적/물리적 활동 | ATP 결합, 키나아제 활성, 수용체 결합 |
| 세포 성분 | Cellular Component (CC) | 유전자 산물이 위치하거나 기능을 수행하는 세포 내 장소 | 미토콘드리아, 핵막, 리보솜 |
3. 계층 구조와 관계 (Hierarchy and Relationships)
GO는 단순한 목록이 아니라 유향 비순환 그래프(Directed Acyclic Graph, DAG) 구조를 가진다. 이는 하나의 하위 GO Term이 하나 이상의 상위 GO Term을 가질 수 있음을 의미하며, 순환 구조(Cycle)가 없는 계층적 트리 형태를 띤다.
3.1 DAG 구조 시각화 (Conceptual Diagram)
graph TD
A[Cellular Component] --> B[Organelle]
A --> C[Cell Membrane]
B --> D[Mitochondrion]
B --> E[Nucleus]
D --> F[Mitochondrial Matrix]
D --> G[Mitochondrial Inner Membrane]
F --> H[TCA Cycle Protein Complex]
G --> H
3.2 주요 관계 유형
- is-a: 하위 GO Term이 상위 GO Term의 특수한 형태임을 나타낸다. (예: 'apoptosis' $\xrightarrow{is-a}$ 'programmed cell death')
- part-of: 하위 GO Term이 상위 GO Term의 물리적/구성적 요소임을 나타낸다. (예: 'mitochondrial matrix' $\xrightarrow{part-of}$ 'mitochondrion')
- regulates: 한 과정이 다른 과정의 빈도, 속도 또는 효율을 조절함을 나타낸다.
- 기타 관계: 이 외에도
controls(제어),has part(부분을 가짐) 등의 관계가 정의되어 있어 GO Term 간의 복잡한 생물학적 상호작용을 정밀하게 묘사한다.
3.3 상속 원리 (True Path Rule)
특정 유전자가 하위 GO Term(Child term)으로 어노테이션되었다면, 해당 유전자는 자동으로 그 상위의 모든 GO Term(Parent terms)에 대해서도 기능을 가진 것으로 간주한다. 이를 통해 분석자는 분석 수준(Granularity)을 조절하여 광범위한 기능부터 매우 구체적인 기능까지 탐색할 수 있다.
4. GO 용어의 명명 규칙 및 표기법
GO는 기계적인 처리와 인간의 가독성을 동시에 확보하기 위해 엄격한 명명 규칙과 ID 체계를 사용한다.
4.1 명명 규칙
- 표준 용어 사용: 임의의 형용사나 모호한 표현을 배제하고, 생물학적으로 합의된 표준 명칭을 사용한다.
- 계층적 명명: 하위 GO Term으로 갈수록 더 구체적인 수식어가 붙는 경향이 있다. (예:
metabolic process$\rightarrow$lipid metabolic process$\rightarrow$cholesterol metabolic process)
4.2 GO ID 표기법
모든 GO Term은 고유한 식별자인 GO ID를 가진다. ID는 GO: 접두사와 7~9자리의 숫자로 구성된다.
* 형식: GO:XXXXXXX
* 예시:
* GO:0008150: biological_process (최상위 BP 용어)
* GO:0003674: molecular_function (최상위 MF 용어)
* GO:0005575: cellular_component (최상위 CC 용어)
* GO:0006915: apoptosis (구체적인 BP 용어)
5. GO 어노테이션 과정 (GO Annotation)
어노테이션이란 특정 유전자나 단백질에 적절한 GO Term을 할당하는 과정을 말한다.
5.1 할당 방법
- 수동 큐레이션 (Manual Curation): 전문가가 기존의 문헌(Literature)을 검토하여 직접 할당하는 방식이다. 정확도가 매우 높으나 시간이 많이 소요된다.
- 자동 예측 (Electronic Annotation): 서열 유사성(Sequence Similarity)이나 단백질 도메인 분석을 통해 알고리즘이 자동으로 할당하는 방식이다. 대량의 데이터를 빠르게 처리할 수 있으나 오탐(False Positive)의 가능성이 있다.
5.2 증거 코드 (Evidence Codes)
어노테이션의 신뢰도를 평가하기 위해 각 할당에는 증거 코드가 부여된다.
- 수동 큐레이션 코드 (Manual Assertions): 전문가의 검토를 거친 고신뢰도 코드
- EXP: 실험적으로 입증됨 (Experimental evidence)
- IDA: 저자가 직접 분석하여 결론 내림 (Inferred from Direct Assay)
- 전자적 추론 코드 (Electronic Assertions): 알고리즘에 의해 자동 할당된 코드
- IEA: 전자적 분석으로 추론됨 (Inferred from Electronic Annotation)
- TPA: 서열 유사성을 통해 추론됨 (Traceable Path)
- 기타:
- NAS: 근거가 불분명하거나 할당되지 않음 (No Assertion)
6. 데이터 분석 및 활용 (Analysis and Applications)
가장 대표적인 활용 사례는 GO 풍부도 분석(GO Enrichment Analysis)이다. 이는 RNA-seq 등으로 얻은 차등 발현 유전자(DEG) 목록에서 특정 GO Term이 통계적으로 유의미하게 많이 나타나는지를 분석하여, 실험 조건에서 어떤 생물학적 기능이 활성화되었는지 파악하는 방법이다.
6.1 분석 원리 및 통계적 보정
전체 유전자 집합(Background) 대비 분석 대상 유전자 집합(Query set)에서 특정 GO Term에 속하는 유전자의 비율을 초기하분포(Hypergeometric distribution) 또는 피셔의 정확 검정(Fisher's Exact Test)을 통해 계산하여 $p$-value를 산출한다.
이때, 수천 개의 GO Term을 동시에 검정하게 되므로 다중 검정 문제(Multiple Testing Problem)가 발생한다. 이를 해결하기 위해 Benjamini-Hochberg FDR(False Discovery Rate)과 같은 다중 비교 보정(Multiple Testing Correction) 과정을 거쳐 Adjusted $p$-value(보정된 $p$값)를 산출하며, 일반적으로 이 값이 0.05 미만인 경우 통계적으로 유의미하다고 판단한다.
6.2 분석 워크플로우 예시 (Python/gseapy)
import gseapy as gp
# 1. 분석 대상 유전자 리스트 (예: DEG 리스트)
gene_list = ['GAPDH', 'TP53', 'EGFR', 'MYC', 'VEGFA']
# 2. GO Enrichment 분석 수행
enr = gp.enrichr(gene_list=gene_list,
gene_sets='GO_Biological_Process_2023',
organism='Human',
outdir=None)
# 3. 결과 확인 (Adjusted P-value 기준 정렬)
print(enr.results[['Term', 'Overlap', 'P-value', 'Adjusted P-value']].head())
7. 관련 도구 및 데이터베이스
GO 데이터는 오픈 소스로 제공되며 다양한 웹 도구를 통해 접근 가능하다.
- 공식 브라우저 및 인터페이스:
- AmiGO: GO의 공식 브라우저로, GO Term 간의 계층 구조 시각화 및 검색 기능을 제공한다.
- QuickGO: EBI(European Bioinformatics Institute)에서 제공하는 인터페이스로, 빠른 검색과 API 접근이 가능하다.
- 분석 도구:
- PANTHER: GO 기반의 기능 분류 및 풍부도 분석을 제공하며, 단백질 패밀리 정보와 연동된다.
- DAVID: 유전자 목록을 입력하면 GO Term을 포함한 다양한 기능적 주석(Functional Annotation)을 클러스터링하여 제공한다.
- 연동 데이터베이스:
- UniProt: 단백질 서열 정보와 함께 GO 어노테이션을 제공하는 가장 핵심적인 DB이다.
- NCBI Gene: 유전자 정보와 연동된 GO 기능을 제공한다.
8. 업데이트 및 유지보수
Gene Ontology는 생물학적 지식의 확장에 따라 지속적으로 업데이트된다. * 업데이트 주기: GO 콘소시엄은 매일 또는 매주 단위로 새로운 GO Term을 추가하거나 기존 관계를 수정하는 점진적 업데이트(Incremental Update)를 수행한다. * 버전 관리: 대규모 구조 변경이 있을 경우 버전 번호를 부여하며, 연구자는 분석의 재현성을 위해 사용한 GO 데이터의 릴리스 날짜(Release date)를 명시해야 한다.
이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.
주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.