# 03. 세포와 RNA 분자에 주소 붙이기

> 미세 방울로 세포를 나누고 각 RNA 사본에 세포 출처와 원래 RNA 분자를 나타내는 표지를 붙여, 실험 중 늘어난 복제본을 구분하는 원리.

RNA를 복사해 만든 DNA인 cDNA를 수천 세포에서 한 용기에 합치기 전에 각 분자에 두 개의 주소를 붙입니다. **cell barcode**는 어느 세포에서 왔는지, **UMI**(unique molecular identifier, 고유 분자 식별자)는 그 세포 안의 어느 원래 RNA 분자에서 왔는지 기록합니다. 시퀀서가 읽어 낸 짧은 서열 조각 하나를 **read**라고 합니다.

> **이 수업의 질문**: 모든 세포의 cDNA를 섞은 뒤에도 read의 세포 출처와 원래 분자 수를 어떻게 복원하는가?

## 한 방울을 작은 작업 공간으로 쓴다

10x Chromium 같은 **droplet 방식**은 세포 현탁액과 barcode가 붙은 gel bead를 미세한 방울로 나눕니다. 목표는 방울 하나에 세포 하나와 bead 하나가 들어가는 것입니다. 적은 cDNA를 분석할 수 있을 만큼 늘리는 중합효소연쇄반응(polymerase chain reaction, PCR)을 위해 bead에는 공통 서열도 들어 있습니다.

Bead 표면에는 짧은 DNA 사슬인 oligo가 많이 붙어 있습니다. oligo 하나에는 네 역할을 하는 구간이 이어져 있습니다.

| 부분 | 하는 일 |
| --- | --- |
| PCR handle | 나중에 cDNA를 복제해 늘리고 시퀀싱할 때 쓰는 공통 서열 |
| cell barcode | 같은 방울에서 나온 cDNA에 공통으로 붙는 세포 주소 |
| UMI | 원래 RNA 분자마다 달라지는 짧은 무작위 식별자 |
| poly(dT) | mRNA 끝의 연속된 A 서열인 poly(A) tail에 결합해 RNA를 cDNA로 복사하기 시작 |

세포막이 방울 안에서 열리면 mRNA가 bead의 poly(dT)에 붙습니다. RNA를 cDNA로 복사하는 역전사가 일어나며 cell barcode와 UMI도 cDNA에 붙습니다. 이 표지가 붙은 뒤에는 여러 방울의 cDNA를 한 용기에 모아도 출처를 다시 나눌 수 있습니다.

## 세 종류의 barcode를 구분한다

시퀀서가 읽은 서열과 품질 점수를 저장하는 **FASTQ 파일**에서 `barcode`라는 말은 서로 다른 주소를 가리킬 수 있습니다. 시퀀싱할 분자 묶음인 library를 여러 개 함께 읽을 때는 **sample index**가 각 library의 출처를 구분합니다.

| 이름 | 구분하는 대상 | 같은 값이 붙는 범위 |
| --- | --- | --- |
| sample index | 시퀀싱 run 안의 라이브러리 | 같은 샘플 라이브러리의 모든 분자 |
| cell barcode | 한 라이브러리 안의 방울 | 같은 방울에서 포획된 모든 cDNA |
| UMI | 한 세포 안의 원래 RNA 분자 | 그 분자에서 증폭된 read 묶음 |

sample index만 있으면 샘플 A와 B는 나눌 수 있지만 샘플 A 안의 세포끼리는 나눌 수 없습니다. cell barcode가 세포를 나누고, UMI가 한 세포 안의 분자를 나눕니다.



## read 수 대신 UMI 수를 세는 이유

세포 하나의 RNA 양은 매우 적어서 시퀀싱 전에 cDNA를 PCR로 증폭해야 합니다. 그런데 어떤 분자는 열 번 복제되고 다른 분자는 두 번만 복제될 수 있습니다. read 수를 그대로 발현량으로 쓰면 잘 증폭된 분자가 실제보다 많아 보입니다.

그래서 같은 `cell barcode + gene + UMI` 조합의 read를 한 묶음으로 접습니다. 이 묶음 하나가 count matrix의 값 1에 기여합니다.

```text
CB=C1  gene=CD3D  UMI=A7  read 1
CB=C1  gene=CD3D  UMI=A7  read 2  -> 같은 분자의 PCR 복제
CB=C1  gene=CD3D  UMI=K2  read 3  -> 별도 원래 분자

결과: cell C1의 CD3D count = 2
```

UMI는 완벽한 일련번호가 아닙니다. 서로 다른 분자가 우연히 같은 UMI를 받을 수 있고, UMI 서열 자체에 시퀀싱 오류가 생길 수 있습니다. 분석 도구는 같은 유전자 안에서 한 염기만 다른 UMI와 read 지지도를 비교해 오류 가능성이 높은 UMI를 보정합니다.

## 3′ count는 전사체 전체를 읽는 방식이 아니다

10x 3′ 방식은 mRNA의 poly(A) tail 가까운 부분을 포획해 **유전자별 분자 수**를 효율적으로 셉니다. 수천 세포를 처리하는 대신 전사체 전체 길이를 고르게 읽지는 않습니다.

따라서 이 데이터는 유전자 수준 발현과 세포 유형 구분에 잘 맞지만, 같은 유전자에서 만들어진 서로 다른 전사체인 isoform이나 엑손 조합이 달라지는 alternative splicing을 정밀하게 비교하는 입력으로는 제한적입니다. 전사체 전체가 필요한 질문에는 Smart-seq2 같은 full-length 방식이 더 맞을 수 있습니다.

## 정리

cell barcode는 RNA의 세포 출처를, UMI는 증폭 전 원래 RNA 분자를 표시합니다. 같은 세포·유전자·UMI의 PCR read를 하나로 합쳐야 증폭 편향을 줄인 count를 얻을 수 있습니다.

다음 [FASTQ에서 세포×유전자 행렬까지](/lessons/single-cell-fastq-to-matrix/)에서는 이 주소를 읽어 barcode를 검증하고, cDNA read를 유전자에 배정해 희소 행렬을 만드는 과정을 따라갑니다.

---

### 출처

- 10x droplet barcoding 원리: [Zheng et al., *Nature Communications* (2017)](https://www.nature.com/articles/ncomms14049)
- UMI를 이용한 단일세포 RNA 분자 정량: [Islam et al., *Nature Methods* (2014)](https://www.nature.com/articles/nmeth.2772)
- Cell Ranger의 barcode·UMI 처리: [10x Genomics Cell Ranger gene expression algorithm](https://www.10xgenomics.com/support/software/cell-ranger/latest/algorithms-overview/cr-gex-algorithm)
- full-length Smart-seq2: [Picelli et al., *Nature Protocols* (2014)](https://www.nature.com/articles/nprot.2014.006)