Gene Ontology와 GO term
Gene Ontology(GO, 유전자 온톨로지)는 유전자와 유전자 산물의 기능을 구조화된 표준 용어로 표현하는 생물학 지식 체계입니다. GO는 기능 용어와 용어 사이의 관계를 정의하고, 단백질이나 기능성 RNA 같은 유전자 산물을 근거가 있는 기능 용어에 연결합니다.
GO 자체는 분석 프로그램이나 RNA-seq 결과가 아닙니다. 연구자와 데이터베이스가 함께 사용하는 기능 분류 체계이며, g:Profiler 같은 분석 도구가 유전자 목록의 공통 기능을 찾을 때 이 지식을 사용합니다.
같은 기능을 같은 이름으로 기록하기
섹션 제목: “같은 기능을 같은 이름으로 기록하기”연구마다 세포가 나뉨, 세포 분열, cell division처럼 다른 표현을 사용하면 컴퓨터가 같은 기능으로 묶기 어렵습니다. GO는 하나의 개념에 표준 이름과 고유한 ID를 부여합니다.
예를 들어 GO:0007049는 cell cycle이라는 개념을 가리킵니다. 이런 기능 항목 하나를 GO term이라고 합니다. GO term에는 최소한 다음 정보가 들어 있습니다.
| 항목 | 의미 | 예시 |
|---|---|---|
| GO ID | 변하지 않는 고유 식별자 | GO:0007049 |
| 이름 | 사람이 읽는 표준 이름 | cell cycle |
| 분류 | BP, MF, CC 중 어디에 속하는가 | BP |
| 정의 | 이 용어가 포함하고 제외하는 범위 | 세포 주기의 표준 정의 |
| 관계 | 더 넓거나 구체적인 term과의 연결 | is_a, part_of 등 |
소프트웨어 프로젝트에 비유하면 GO ID는 변경에 강한 내부 키이고, 이름과 정의는 사람이 읽는 문서입니다. 이름이 비슷하더라도 GO ID가 다르면 서로 다른 개념일 수 있습니다.
GO는 세 가지 질문으로 기능을 나눈다
섹션 제목: “GO는 세 가지 질문으로 기능을 나눈다”GO는 유전자 산물의 기능을 세 가지 관점으로 분류합니다.
| 분류 | 전체 이름 | 묻는 질문 | 예시 |
|---|---|---|---|
GO:BP | Biological Process | 더 큰 생물학적 과정에서 어떤 일에 참여하는가? | 세포 주기, DNA 복구 |
GO:MF | Molecular Function | 분자 자체가 수행하는 활동은 무엇인가? | DNA 결합, kinase 활성 |
GO:CC | Cellular Component | 기능을 수행할 때 세포의 어디에 있는가? | 핵, 세포막 |
하나의 단백질에는 세 관점의 term이 모두 붙을 수 있습니다. 예를 들어 어떤 단백질이 DNA에 결합하고, 핵에 있으며, 세포 주기에 참여한다면 MF, CC, BP annotation을 각각 가질 수 있습니다.
BP와 MF는 특히 혼동하기 쉽습니다. protein kinase activity는 단백질이 직접 수행하는 분자 활동이므로 MF입니다. regulation of cell cycle은 여러 분자의 활동이 함께 만드는 더 큰 과정이므로 BP입니다.
GO term은 폴더 목록이 아니라 관계 그래프다
섹션 제목: “GO term은 폴더 목록이 아니라 관계 그래프다”GO term은 넓은 개념에서 구체적인 개념으로 연결됩니다. cell cycle보다 mitotic cell cycle이 구체적이고, 그 아래에는 염색체 분리와 같은 더 세부적인 과정이 연결될 수 있습니다.
하지만 하나의 하위 term이 부모 하나만 갖는 단순한 폴더 트리는 아닙니다. GO는 term을 노드로, is_a, part_of, regulates 같은 관계를 연결선으로 갖는 그래프입니다. 하나의 term이 여러 상위 term과 연결될 수도 있습니다.
이 구조 때문에 enrichment 결과에 의미가 비슷한 term이 여러 줄 나타날 수 있습니다. cell cycle, mitotic cell cycle, chromosome segregation이 같은 유전자 일부를 공유한다면, 완전히 독립적인 발견 세 개라기보다 큰 범주와 세부 범주가 함께 잡힌 결과일 수 있습니다.
GO term과 GO annotation은 다르다
섹션 제목: “GO term과 GO annotation은 다르다”GO term은 기능 개념의 정의입니다. GO annotation은 특정 유전자 산물을 특정 GO term에 연결한 근거 있는 기록입니다.
다음은 annotation의 구조를 보여 주기 위한 가상 행입니다.
| gene product | GO term | 관계 | evidence | reference |
|---|---|---|---|---|
GENE_A 단백질 | GO:0007049 cell cycle | involved_in | 실험 근거 코드 | 논문 또는 데이터베이스 |
표준 GO annotation에는 최소한 유전자 산물, GO term, 근거 문헌과 evidence code가 포함됩니다. evidence code는 직접 실험, 서열 유사성, 계통 분석, 자동 추론 등 어떤 종류의 근거로 연결했는지 나타냅니다.
annotation이 없다고 그 기능이 없다는 뜻은 아닙니다. 아직 충분히 연구되지 않았거나 데이터베이스에 반영되지 않았을 수도 있습니다. 반대로 annotation이 있다고 모든 세포와 조건에서 항상 그 기능이 활성화된다는 뜻도 아닙니다.
유전자 목록을 GO와 대조하면
섹션 제목: “유전자 목록을 GO와 대조하면”GO enrichment에서 입력은 보통 선택한 유전자 목록입니다. 도구는 각 유전자에 연결된 GO annotation을 모은 뒤, 어떤 GO term이 우연히 기대되는 것보다 자주 등장하는지 검사합니다.
가상의 예를 들어보겠습니다.
- 분석 가능한 전체 유전자: 20,000개
cell cycle과 연결된 유전자: 500개- 선택한 후보 목록: 1,000개
- 후보 목록에서
cell cycle과 겹친 유전자: 120개
무작위로 1,000개를 골랐다면 약 25개가 겹칠 것으로 예상되는데 실제로 120개가 겹쳤다면, 후보 목록에 세포 주기 관련 유전자가 유난히 많이 모였다고 볼 근거가 생깁니다. Over-representation analysis(ORA)는 이 질문을 여러 term에 반복해서 적용합니다.
ORA 결과표의 자주 보는 열
섹션 제목: “ORA 결과표의 자주 보는 열”| 열 | 의미 |
|---|---|
name | GO term의 사람이 읽는 이름 |
native | GO ID와 같은 원래 데이터베이스 식별자 |
term_size | 배경 집합에서 해당 term과 연결된 유전자 수 |
intersection_size | 입력 목록과 해당 term이 실제로 공유한 유전자 수 |
intersections | 실제로 겹친 유전자 목록 |
intersection_symbols | 도구 결과의 ID를 사람이 읽는 gene symbol로 바꿔 추가한 열 |
p_value | 이 정도 이상의 겹침이 우연히 나타날 가능성, 보정 적용 여부는 도구 설명에서 확인 |
term_size가 큰 term은 무작위로도 많은 유전자와 겹치기 쉽습니다. 따라서 intersection_size만 보지 않고 입력 목록 크기, 배경 유전자 집합과 term 크기를 함께 고려한 p-value를 봅니다. 많은 term을 동시에 검사하므로 다중검정 보정도 필요합니다. g:Profiler처럼 결과 열 이름이 단순히 p_value여도 이미 보정된 값을 반환하는 도구가 있으므로, 사용한 도구의 정의를 확인해야 합니다.
막대그래프에서 -log10(p_value)가 크다는 것은 보정 p-value가 작다는 뜻입니다. 해당 과정이 몇 배 활성화됐다는 뜻은 아닙니다. GO ORA는 선택한 유전자 목록에 기능 태그가 많이 모였는지를 검사할 뿐, 단백질의 실제 활성이나 과정의 진행 속도를 직접 측정하지 않습니다.
GO와 pathway 데이터베이스는 같은 것이 아니다
섹션 제목: “GO와 pathway 데이터베이스는 같은 것이 아니다”GO:BP와 pathway는 겹치는 부분이 있지만 목적과 구조가 다릅니다.
| 자료 | 주로 표현하는 것 |
|---|---|
| GO:BP | 유전자 산물이 참여하는 생물학적 과정의 계층적 분류 |
| Reactome | 분자들이 이어서 수행하는 반응과 pathway |
| KEGG Pathway | 대사, 신호 전달과 질환 관련 pathway 지도 |
GO term은 반드시 반응의 순서나 분자 사이의 직접 연결을 보여 주지는 않습니다. 여러 유전자가 어떤 작업에 관련되는지 분류하는 데 강점이 있습니다. pathway와 gene set의 차이는 유전자가 함께 만드는 작업 흐름에서 이어서 설명합니다.
해석할 때 피할 결론
섹션 제목: “해석할 때 피할 결론”- 유의한 GO term이 나왔다고 해당 과정이 실제로 활성화됐다고 단정하지 않습니다.
- 가장 긴 막대가 가장 큰 발현 변화를 뜻한다고 해석하지 않습니다.
- 비슷한 상위·하위 term을 서로 독립적인 발견으로 세지 않습니다.
- 증가 유전자와 감소 유전자를 섞은 뒤 변화 방향까지 해석하지 않습니다.
- GO annotation이 없는 유전자를 기능이 없는 유전자라고 부르지 않습니다.
- 질환과 관련된 term이 나왔다고 원인 유전자가 확인됐다고 결론 내리지 않습니다.
결과는 입력 유전자 선택 기준과 배경 집합에 따라 달라집니다. RNA-seq ORA에서는 실험에서 실제로 검정할 수 있었던 유전자를 배경으로 쓰는 것이 일반적으로 더 적절합니다. 모든 인간 유전자를 무조건 배경으로 사용하면 측정되지 않은 유전자까지 비교 대상에 들어갈 수 있습니다.
재현성을 위해 기록할 것
섹션 제목: “재현성을 위해 기록할 것”GO ontology와 annotation은 계속 갱신됩니다. 같은 유전자 목록도 사용한 버전과 도구 설정에 따라 결과가 달라질 수 있으므로 다음을 기록합니다.
- 분석 날짜와 GO 또는 분석 서비스의 데이터 버전
- 대상 생물종
- 입력 ID 종류와 gene symbol 변환 방법
- 입력 목록을 고른 통계 기준과 변화 방향
- 배경 유전자 집합
- 사용한 분류, 예: GO:BP, GO:MF, GO:CC
- 다중검정 보정 방법과 기준
- term을 만든 실제
intersections유전자
공식 자료
섹션 제목: “공식 자료”- Gene Ontology overview: GO의 정체, 세 분류와 term 구성
- Introduction to GO annotations: annotation, 근거와 해석 범위
- Relations in the Gene Ontology: term 사이의 그래프 관계
- Download annotations: annotation 파일과 버전 기록 방법