# ENA: 공개 시퀀싱 데이터 아카이브

> 공개 RNA-seq·DNA 시퀀싱 데이터를 찾아 내려받는 곳. ENA가 무엇이고, SRA·DDBJ와 어떻게 미러링되며, accession 구조와 실제 다운로드 방법까지.

**ENA**(European Nucleotide Archive)는 유럽 EMBL-EBI가 운영하는 **공개 시퀀싱 데이터 저장소**입니다. 전 세계 연구자가 시퀀서가 읽은 원본 서열(raw read), 조립 서열과 실험 설명(metadata)을 등록합니다. raw read는 흔히 FASTQ 파일로 제공되며, 이용자는 공개된 `.fastq.gz` 파일을 URL로 바로 내려받을 수 있습니다.

직접 분석을 연습하거나 레퍼런스 데이터를 구할 때 ENA에서 무엇을 찾고 어떻게 내려받는지 정리합니다.

- 웹 브라우저: [www.ebi.ac.uk/ena/browser](https://www.ebi.ac.uk/ena/browser/)
- 운영: EMBL-EBI (European Bioinformatics Institute, 영국)

## 왜 SRA가 아니라 ENA에서 받나

같은 데이터가 세 아카이브에 다 있지만, **다운로드 편의**가 다릅니다.

| 아카이브 | 운영 | raw read 받는 법 |
| --- | --- | --- |
| **ENA** (유럽) | EMBL-EBI | **`.fastq.gz` URL을 그대로 `curl`/`wget`**: 가장 간단 |
| SRA (미국) | NCBI | 전용 툴(`prefetch` → `fasterq-dump`)로 `.sra`를 풀어야 함 |
| DDBJ (일본) | 국립유전학연구소 | DRA. 역시 ENA로 미러됨 |

## 셋은 미러링될까?: INSDC 협약

ENA·SRA·DDBJ(raw read 부문은 DRA)는 **INSDC**(International Nucleotide Sequence Database Collaboration)라는 30년 넘은 국제 협약으로 묶여 있습니다. 원칙은:

> 어느 한 곳에 제출된 공개 데이터는 매일 세 기관이 교환해서, 셋 모두에서 조회·다운로드 가능하게 한다.

그래서 "같은 데이터를 보유하나?"의 답은 **실질적으로 예**입니다. 두 층위로 나눠 보면:

| 층위 | 미러링 정도 |
| --- | --- |
| **메타데이터**(accession, study/sample 정보) | **완전 동기화.** DDBJ에 올라간 데이터를 유럽 ENA에서 그대로 검색·조회할 수 있는 이유 |
| **raw read 실제 데이터** | 세 기관이 교환 → 어디서든 받을 수 있음. 단, 저장·제공 *형식*은 다름 |

### "같은 데이터, 다른 포장"

내용(read 서열)은 동일하지만 파일 형태·접근 방식이 기관마다 다릅니다.

- **SRA(NCBI)**: 자체 `.sra` 포맷 저장 → 전용 툴로 FASTQ 변환 필요
- **ENA(EBI)**: FASTQ를 미리 만들어 URL로 직접 제공 (그래서 `curl`로 바로 받음)
- **DDBJ**: DRA로 미러

ENA가 만든 FASTQ와 SRA가 변환한 FASTQ가 헤더 표기 등에서 미세하게 다를 수 있고, 새로 제출된 데이터가 세 곳에 다 뜨기까지 며칠 시차가 날 수 있습니다.

## accession(식별자) 구조

데이터는 계층적 ID로 관리됩니다. 접두어 세 번째 글자로 종류를, 첫 글자로 아카이브를 알 수 있습니다(E=ENA, S=SRA, D=DDBJ).

| 계층 | 예 | 의미 |
| --- | --- | --- |
| **Study / Project** | `PRJEB…` `PRJNA…` `PRJDB…` | 하나의 연구 프로젝트 |
| **Sample** | `SAMEA…` `SAMN…` `SAMD…` | 생물학적 시료 |
| **Experiment** | `ERX…` `SRX…` `DRX…` | 라이브러리·시퀀싱 조건 |
| **Run** | `ERR…` `SRR…` `DRR…` | 실제 read 파일 ← **다운로드 단위** |

**Run**은 "시퀀싱 장비를 한 번 돌려(run) 나온 read 묶음"이라는 뜻으로, raw read를 내려받을 때 사용하는 단위입니다. 한 Experiment(같은 설정)를 여러 번 돌리면 Run이 여러 개 생길 수 있습니다.

## 데이터 찾기: Portal API

브라우저로 accession을 URL에 넣어도 되지만(`.../ena/browser/view/<accession>`), 조건 검색이나 자동화에는 REST API가 편합니다.

### 조건에 맞는 run 찾기: `search`

예: 사람·RNA-seq·Illumina·paired-end run 목록.

```bash
curl -s -G 'https://www.ebi.ac.uk/ena/portal/api/search' \
  --data-urlencode 'result=read_run' \
  --data-urlencode 'query=tax_eq(9606) AND library_strategy="RNA-Seq" AND instrument_platform="ILLUMINA" AND library_layout="PAIRED"' \
  --data-urlencode 'fields=run_accession,fastq_bytes,read_count,fastq_ftp,fastq_md5' \
  --data-urlencode 'format=tsv'
```

- `tax_eq(9606)` = 사람(NCBI taxonomy ID)
- 유용한 필드: `read_count`, `fastq_bytes`(크기), `fastq_ftp`(URL), `fastq_md5`(무결성)
- 전체 필드 목록: [returnFields?result=read_run](https://www.ebi.ac.uk/ena/portal/api/returnFields?result=read_run)

### 특정 accession의 파일 정보: `filereport`

```bash
curl -s -G 'https://www.ebi.ac.uk/ena/portal/api/filereport' \
  --data-urlencode 'accession=DRR024878' \
  --data-urlencode 'result=read_run' \
  --data-urlencode 'fields=fastq_ftp,fastq_md5,fastq_bytes' \
  --data-urlencode 'format=tsv'
```

### curl 직접 만들어 보기

위 두 API의 옵션을 GUI로 골라 보며 `curl` 명령을 조립해 보세요. 탭으로 **조건 검색(search)** ↔ **파일 정보(filereport)** 를 오가고, 필터·필드·포맷을 바꾸면 아래 명령이 실시간으로 갱신됩니다. **복사** 버튼으로 그대로 터미널에 붙여 넣을 수 있습니다.



## 데이터 받기

### URL 구조

`fastq_ftp`가 주는 값 예:

```text
ftp.sra.ebi.ac.uk/vol1/fastq/DRR024/DRR024878/DRR024878_1.fastq.gz
```

- 프로토콜 접두어가 없으니 `https://`를 붙여 씁니다.
- 경로에 accession 자릿수에 따라 `001/` 같은 0-패딩 하위 디렉토리가 끼기도 합니다. **직접 조립하지 말고 `fastq_ftp` 값을 그대로 쓰세요.**

### paired-end = 파일 2개

`_1.fastq.gz`(정방향), `_2.fastq.gz`(역방향)가 한 쌍입니다. paired 라이브러리는 정렬에 둘 다 필요하므로 같이 받습니다.

```bash
curl -sS -O https://ftp.sra.ebi.ac.uk/vol1/fastq/DRR024/DRR024878/DRR024878_1.fastq.gz
curl -sS -O https://ftp.sra.ebi.ac.uk/vol1/fastq/DRR024/DRR024878/DRR024878_2.fastq.gz
```

- `-O` = URL의 파일명 그대로 저장, `-sS` = 진행바 숨기되 에러는 표시
- 이어받기: `curl -C - -O <url>`
- macOS 기본엔 `wget`이 없습니다(`curl`은 있음).

### 대용량은 Aspera

수십~수백 GB는 `curl`보다 빠른 **Aspera(fasp)** 를 ENA가 제공합니다(`era-fasp@fasp.sra.ebi.ac.uk:...`). 소형 데이터엔 굳이 필요 없습니다.

### 필수: 무결성 검증(md5)

받은 파일이 온전한지 `fastq_md5` 값과 대조합니다.

```bash
md5 DRR024878_1.fastq.gz     # macOS  (Linux: md5sum)
```

## 접근 제한: 통제 데이터

이 모든 미러링·공개 다운로드는 **공개 데이터에만** 해당합니다. 동의 제한이 걸린 사람 데이터(환자 유전체 등)는 INSDC 공개 아카이브가 아니라 **EGA(유럽)·dbGaP(미국)** 의 통제 접근으로 가며, 서로 미러링되지 않습니다.

따라서 통제 접근 연구에서는 raw read를 바로 내려받지 못하고, 연구가 별도로 공개한 비식별 요약 자료나 발현량 행렬만 이용할 수 있는 경우가 있습니다.

## 요약 치트시트

```text
찾기:  filereport API → fastq_ftp, fastq_md5 확보
받기:  curl -O <https://…fastq.gz>   (paired면 _1, _2 둘 다)
검증:  md5 대조
```

관련 형식은 [데이터 형식 레퍼런스](/reference/data-formats/)를 참고하세요.