RNA-seq 발현량 정규화 지표
RNA-seq 발현량 정규화는 read 또는 fragment의 개수를 유전자 길이나 샘플의 전체 규모로 나누어 비교 목적에 맞는 값으로 바꾸는 계산입니다. 입력은 유전자별 count와 길이이고, 출력은 CPM·RPK·RPKM·FPKM·TPM 같은 실수형 발현량 벡터입니다.
예를 들어 다음 집계 결과가 있다고 합시다.
| gene | raw count | length (kb) |
|---|---|---|
| A | 600 | 2 |
| B | 300 | 1 |
A는 count가 B의 두 배지만 길이도 두 배입니다. 길이로 나누면 둘의 RPK는 모두 300이 됩니다. 어떤 값으로 나누는지에 따라 숫자가 답하는 질문이 달라집니다.
입력과 기호
섹션 제목: “입력과 기호”- : 유전자 에 매핑된 raw read count
- : 유전자 의 길이, kb 단위
- : 샘플의 전체 매핑 read 수
코드의 집계와 정규화로 옮기면 다음 구조입니다.
raw_count = alignments.groupby("gene_id").size()rpk = raw_count / gene_length_kbtpm = rpk / rpk.sum() * 1_000_000raw count
섹션 제목: “raw count”raw count는 정렬된 read를 유전자별로 센 정수 입니다. 유전자 길이와 시퀀싱 깊이를 보정하지 않은 관측값입니다.
DESeq2와 edgeR 같은 차등발현 도구는 count의 분산과 샘플별 크기를 자체 모델로 처리하므로 raw count를 입력받습니다. TPM으로 바꾼 값을 대신 넣지 않습니다.
RPK: 길이로 나눈 값
섹션 제목: “RPK: 길이로 나눈 값”RPK(reads per kilobase)는 count를 유전자 길이로 나눕니다.
긴 유전자에서 더 많은 fragment가 만들어지는 영향을 줄입니다. 샘플의 전체 시퀀싱 깊이는 보정하지 않으며, TPM을 계산하는 중간값으로 주로 사용합니다.
CPM: 전체 count로 나눈 값
섹션 제목: “CPM: 전체 count로 나눈 값”CPM(counts per million)은 count를 샘플의 전체 count로 나누고 을 곱합니다.
샘플마다 읽은 전체 양의 차이는 줄이지만 유전자 길이는 보정하지 않습니다. 따라서 같은 유전자를 샘플 사이에서 대략 비교할 수는 있어도, 길이가 다른 유전자끼리 값을 직접 비교하는 용도에는 맞지 않습니다.
RPKM과 FPKM: 길이와 전체 read 수로 나눈 값
섹션 제목: “RPKM과 FPKM: 길이와 전체 read 수로 나눈 값”RPKM(reads per kilobase per million)은 count를 유전자 길이와 전체 read 수로 나눕니다.
FPKM(fragments per kilobase per million)은 paired-end read 두 개를 fragment 하나로 세는 점이 다릅니다. 길이와 시퀀싱 깊이를 모두 보정하지만, RPKM·FPKM 값의 합은 샘플마다 달라질 수 있습니다.
TPM: RPK 합으로 나눈 값
섹션 제목: “TPM: RPK 합으로 나눈 값”TPM(transcripts per million)은 먼저 RPK를 구하고, 샘플 안의 RPK 합으로 다시 나눈 뒤 을 곱합니다.
마지막에 자기 합으로 나누므로 모든 샘플에서 다음 관계가 성립합니다.
RPKM을 이미 가지고 있다면 그 합으로 다시 정규화해 TPM으로 바꿀 수도 있습니다.
TPM은 샘플 안의 상대적 구성비입니다. 한 유전자의 실제 분자 수가 그대로여도 다른 유전자가 크게 증가하면 그 유전자의 TPM은 내려갈 수 있습니다. 이를 조성 효과(compositional effect) 라고 합니다.
용도별 비교
섹션 제목: “용도별 비교”| 지표 | 길이 보정 | 샘플 규모 보정 | 주 쓰임 |
|---|---|---|---|
| raw count | ✗ | ✗ | DESeq2·edgeR 입력 |
| CPM | ✗ | ✓ | 같은 유전자의 대략적인 샘플 간 비교 |
| RPK | ✓ | ✗ | TPM 계산의 중간값 |
| RPKM/FPKM | ✓ | ✓ | 과거에 사용된 발현량 비교 지표 |
| TPM | ✓ | ✓ | 발현량 시각화와 레퍼런스 대조 |
정규화 지표의 계산을 직접 움직여 보려면 raw count를 비교 가능한 값으로 바꾸기의 위젯을 사용하세요. 반복 샘플의 조건 차이를 검정하려면 여러 샘플의 차등발현 검정을 참고하세요.
- Wagner et al., Measurement of mRNA abundance using RNA-seq data: RPKM measure is inconsistent among samples, Theory in Biosciences 2012: DOI
- Lior Pachter, Models for transcript quantification from RNA-Seq: arXiv:1104.3889
- DESeq2 공식 문서