# 06. 유전자가 함께 만드는 작업 흐름

> pathway를 신호 입력부터 세포 반응까지 이어지는 작업 흐름으로 이해하고, 유전자 집합·pathway 활성도·분석 결과의 한계를 구분한다.

Pathway는 **여러 분자가 차례로 상호작용해 하나의 세포 작업을 수행하는 흐름**입니다. 유전자 하나가 함수 하나라면, pathway는 여러 함수가 연결된 요청 처리 흐름에 가깝습니다.

> **이 수업의 질문**: 유전자 여러 개가 어떻게 연결되어 하나의 세포 반응을 만드는가?

먼저 코드로 모양만 잡아 봅시다. 아래는 실제 세포를 실행하는 코드가 아니라, 인슐린 신호의 입력과 출력 관계를 옮긴 의사코드입니다.

```python
def respond_to_insulin(insulin, cell_state):
    signal = insulin_receptor.detect(insulin)
    relayed = signaling_network.propagate(signal, cell_state)
    return glucose_transport.adjust(relayed)
```

`insulin`이 입력이고 포도당 흡수 변화가 출력입니다. 수용체와 여러 신호 단백질이 중간 처리 단계를 이룹니다. 이처럼 **입력, 연결된 처리, 세포 반응**을 하나의 기능 단위로 묶어 설명한 것이 pathway입니다.

## 인슐린 신호가 들어온 장면

식사 뒤 혈당이 오르면 인슐린이 세포 표면의 수용체에 붙습니다. 수용체는 세포 안의 단백질에 신호를 넘기고, 신호를 받은 단백질은 다시 다음 단백질을 작동시킵니다. 마지막에는 세포가 포도당을 받아들이는 반응이 일어납니다.

이때 수용체 하나만으로는 결과를 만들 수 없습니다. 입력을 받는 분자, 신호를 전달하는 분자, 실제 반응을 수행하는 분자가 함께 움직여야 합니다. 이 연결 전체를 **인슐린 신호 pathway**라고 부릅니다.

> **인슐린 입력 → 수용체가 감지 → 세포 안에서 신호 전달 → 포도당 흡수 증가**

## 코드의 호출 흐름과 닮은 점

웹 요청이 라우터, 서비스, 데이터베이스를 거쳐 응답으로 돌아온다고 생각해 봅시다. 중간 함수 하나가 고장 나면 최종 응답이 달라집니다. 함수 하나가 지나치게 많이 호출돼도 시스템 동작이 달라질 수 있습니다.

세포에서도 유전자 변이로 단백질 하나가 작동하지 않거나, 특정 단백질이 지나치게 많이 만들어지면 pathway의 최종 반응이 바뀔 수 있습니다. 암에서는 세포 분열 신호가 계속 켜지거나, 손상된 세포를 제거하는 흐름이 멈추는 식으로 나타납니다.

여기서 **유전자 자체가 실행 함수인 것은 아닙니다.** 유전자는 단백질을 만드는 정보이고, 실제 신호를 감지하거나 전달하는 주체는 주로 그 결과물인 단백질입니다. `유전자 = 함수` 비유는 구성 요소 하나의 변화가 전체 흐름을 바꿀 수 있다는 구조만 빌립니다.

코드의 호출 순서는 대개 명시적이지만, 실제 pathway는 갈라지고 합쳐지며 다른 pathway와 같은 분자를 공유합니다. 여러 반응이 동시에 일어나고 농도와 위치에 따라 결과도 달라집니다. pathway 그림은 고정된 실행 로그가 아니라, 지금까지 알려진 상호작용을 정리한 지도입니다.

## pathway는 꼭 직선이 아니다

pathway에는 대표적으로 세 가지 모양이 있습니다.

- **대사 pathway**: 분자 A를 효소가 B로 바꾸고, 다른 효소가 B를 C로 바꿉니다. 해당과정처럼 물질이 단계적으로 변합니다.
- **신호 pathway**: 세포 밖 신호를 수용체가 감지하고 세포 안으로 전달합니다. 인슐린 신호가 여기에 해당합니다.
- **조절 pathway**: 전사인자와 조절 단백질이 여러 유전자를 켜거나 끕니다. 세포 분열과 세포 사멸 같은 프로그램을 조절합니다.

실제로는 한 pathway가 세 모양을 함께 포함할 수 있습니다. 따라서 이름보다 먼저 “무엇이 입력되고, 어떤 분자들이 연결되며, 최종 반응이 무엇인가”를 확인하는 편이 안전합니다.

## pathway와 gene set은 다르다

실험 데이터에는 pathway 자체가 들어 있지 않습니다. RNA-seq로 직접 얻는 것은 **유전자별 발현량**입니다. 분석 도구는 알려진 pathway에 관련된 유전자 이름을 목록으로 모아 둔 **gene set**과 발현량을 대조합니다.

예를 들어 어떤 pathway의 gene set에 유전자 30개가 들어 있다고 합시다. 환자 샘플에서 그중 여러 유전자가 함께 높게 발현되면, 분석 도구는 “이 pathway와 관련된 신호가 강하다”고 점수를 줄 수 있습니다.

> **생물학적 상호작용 지도 = pathway**  
> **분석에 사용할 관련 유전자 목록 = gene set**

그래프 데이터베이스와 검색용 태그 목록의 차이로 생각할 수 있습니다. pathway는 `A가 B를 활성화하고 B가 C를 억제한다`는 **edge와 방향**을 포함할 수 있지만, gene set은 `{A, B, C}`라는 멤버 목록만 남깁니다. 집합만으로는 실행 순서, 활성화·억제 방향, 분자의 위치를 복원할 수 없습니다.

데이터베이스마다 pathway의 경계와 gene set 구성이 다를 수 있습니다. 같은 이름의 pathway라도 포함된 유전자가 완전히 같다고 가정하면 안 됩니다.

[GSE251845 GO·GSEA 실습](/practice/colorectal-go-gsea-gse251845/#5-ora와-gsea를-함께-읽기)에서는 같은 DEG 결과를 GO·Reactome gene set과 대조하고, 서로 겹치는 term을 하나의 생물학적 신호로 묶어 읽습니다.

## “pathway가 활성화됐다”의 정확한 뜻

RNA-seq에서 pathway 점수가 높다는 말은 보통 **관련 유전자들이 함께 많이 발현됐거나 발현 순위 위쪽에 모였다**는 뜻입니다. pathway의 모든 단백질이 실제로 작동했다는 직접 증거는 아닙니다.

따라서 pathway 점수는 실행 중인 서비스의 trace가 아니라, 관련 모듈의 설정과 로그가 평소보다 많이 관측됐다는 간접 신호에 가깝습니다. RNA-seq에는 함수 호출 시각이나 반환값에 해당하는 정보가 없습니다.

단백질은 만들어진 뒤에도 인산화 같은 조절을 받아야 작동할 수 있습니다. 그래서 RNA 발현만으로 효소 활성, 신호 전달 속도, 원인과 결과를 모두 확정할 수는 없습니다. 필요하면 단백질체, 인산화 단백질체, 기능 실험으로 확인합니다.

분석 결과를 읽을 때는 다음 순서가 유용합니다.

1. 어떤 생물학적 작업을 나타내는 pathway인가?
2. 결과를 만든 gene set에는 어떤 유전자가 들어 있는가?
3. 소수의 매우 높은 유전자가 점수를 끌어올렸는가, 여러 유전자가 함께 움직였는가?
4. RNA 발현 외의 데이터로 실제 작동을 확인했는가?

## 자주 만나는 pathway 데이터베이스

- [Reactome](/reference/reactome/): 사람이 검토한 반응과 신호 흐름을 단계별로 제공합니다.
- [KEGG Pathway](https://www.genome.jp/kegg/pathway.html): 대사, 신호, 질환 관련 pathway 지도를 제공합니다.
- [MSigDB](https://www.gsea-msigdb.org/gsea/msigdb/): GSEA와 ssGSEA에 바로 사용할 수 있는 gene set 모음입니다.
- [Gene Ontology](/reference/gene-ontology/): pathway 지도라기보다 생물학적 과정, 분자 기능, 세포 내 위치를 계층적으로 분류합니다.

## 정리

Pathway는 유전자 하나의 기능 설명이 아니라, 여러 분자가 연결되어 세포 반응을 만드는 작업 흐름입니다. RNA-seq 분석은 이 흐름을 직접 관찰하지 않고 관련 유전자 집합의 발현을 이용해 간접적으로 추정합니다.

따라서 pathway 결과는 **어떤 생물학적 프로그램을 더 조사할지 정하는 지도**로 사용하고, 곧바로 원인이나 실제 활성의 증명으로 해석하지 않습니다.