Post

[10X CellRanger] Demultiplexing with barcode sequence: bcl2fastq

한국에선 보통 업체에 시퀀싱을 맡기면 fastq 형식으로 데이터를 전달해주는게 일반적이었는데, 미국은 다른가? 랩에서 직접 시퀀싱해서 그런가?

미국에서 첫번째로 전달받은 시퀀싱데이터가 raw .bcl 형식으로 왔다.

10X genomics kit를 사용해서 prep한 데이터라.. CellRanger를 사용해서 from the scratch, 오랜만에 demultiplexing 부터 데이터 처리를 해보고 안까먹으려고 정리해본다.


CellRanger에서 demultiplexing은 mkfastq 로 진행하는데, cellranger 이외에도 bcl2fastq2라는 illumina에서 제공하는 프로그램을 따로 설치해줘야 한다.

bcl2fastq2 설치 포스트
👉 여기 설치하고 path 설정해주는거 잊지말기!

Prerequisite

CellRanger mkfastq 코드의 기본 구성 및 input은 다음과 같다.

1
2
3
cellranger mkfastq --id=projectId \
  --run=/where/raw/files/are/located \
  --csv=/sample_sheet.csv
  • id : 나중에 결과물이 이 이름의 폴더 아래에 생성됨
  • run : 전달받은 .bcl file 모여있는 폴더 위치 (구성은 아래 참조)
  • csv : sample sheet 위치, sample ID와 barcode 정보를 포함한 csv 파일

input 01: –run 시퀀싱 결과로 얻은 raw(.bcl) files

시퀀싱 결과라고 전달받은 폴더의 구성을 보면..

첫번째 폴더아래 크게 Config, Data, InterOp 이런 폴더들이 있고, RunInfo.xml, runParameters.xml 같은 시퀀싱 런 정보도 함께 저장돼있다. 간혹 Logs, Recipe, Thumbnail_Images 이런 폴더들도 함께 올 수도 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
cellranger-tiny-bcl-1.2.0
├── Config
│   ├── h35kcbcxy_Oct-20-16\ 15-51-48_Effective.cfg
│   ├── HiSeqControlSoftware.Options.cfg
│   ├── RTAStart.bat
│   └── Variability_HiSeq_C.bin
├── Data
│   └── Intensities
├── InterOp
│   ├── ControlMetricsOut.bin
│   ├── CorrectedIntMetricsOut.bin
│   ├── ErrorMetricsOut.bin
│   ├── ExtractionMetricsOut.bin
│   ├── ImageMetricsOut.bin
│   ├── QMetricsOut.bin
│   └── TileMetricsOut.bin
├── RTAComplete.txt
├── RunInfo.xml
└── runParameters.xml

input 02: –csv sample sheet

DesktopView

이건 따로 작성해줘야하는 파일로, 각 샘플의 이름과 사용한 index solution의 정보 또는 barcode sequence 정보가 필요하다. 위 그림으로는 SI-GA-A1 ‘SI-GA-A2 또는 이에 해당하는 서열. e.g. SI-TT-A1 -> GTAACATGCG,AGGTAACACT

10X genomics사에서 제공하는 index 정보 dual index kit sample index reference files

👉 Download link

나는 실험하신 분께 샘플별로 사용한 barcode 서열 정보를 받아서 진행함. 위 정보를 바탕으로 sample sheet를 csv 형식으로 만들어준다.

Sample_ID, index 로 시작하는 첫줄 아래 만들고자하는 sample들 정보를 나열해주면 됨.

내 경우는 dual index를 사용했기 때문에 index, index2까지 작성. single index로 만든 샘플이라면 하나면 적어주면 된다.

Dual index vs. Single index 차이
👉 관련 포스트

1
2
3
4
5
6
7
8
9
10
11
12
13
Sample_ID,index,index2
S1_PBMC_PIC_GEX,GTAACATGCG,AGGTAACACT
S1_PBMC_PIC_SP,AGTATCTGCA,TCGCTAGCGA
S1_PBMC_PIC_TCell,TGCAATGTTC,TTCGACAAGC
S1_PBMC_PIC_BCell,TGTAGTCATT,TACGATCAAG
S2_PBMC_GEX,ACAGTAACTA,AACGAACTGT
S2_PBMC_SP,CATAGCATGA,CAGGCAGGTC
S2_PBMC_TCell,TTATTCGAGG,AGCAGGACAG
S2_PBMC_BCell,ACAATGTGAA,TAACGGTACG
S3_PBMC_MDCK_GEX,TGCGCGGTTT,TTTATCCTTG
S3_PBMC_MDCK_SP,AAGGGTTTAC,CGCGTGAGTA
S3_PBMC_MDCK_TCell,AAGATTGGAT,AAATCCCGCT
S3_PBMC_MDCK_BCell,GTGGATCAAA,CAGGGTTGGC

Run CellRanger mkfastq

지금까지 만들고 모은 input 잘 넣어서 돌려주면 끝!

1
2
3
cellranger mkfastq --id=ProjectXX \
    --run=/project/cellranger-tiny-bcl-1.2.0 \
    --sample=sample_sheet.csv

Result

모든 프로세스가 완벽하게 끝났다면 지정해준 id이름으로된 폴더아래..

1
2
3
4
5
6
7
8
9
10
11
> tree ./ProjectXX/outs/fastq_path
ProjectXX/outs/fastq_path
    S1_PBMC_PIC_BCell_S4_L001_I1_001.fastq.gz
    S1_PBMC_PIC_BCell_S4_L001_I2_001.fastq.gz
    S1_PBMC_PIC_BCell_S4_L001_R1_001.fastq.gz
    S1_PBMC_PIC_BCell_S4_L001_R2_001.fastq.gz
    S1_PBMC_PIC_BCell_S4_L002_I1_001.fastq.gz
    S1_PBMC_PIC_BCell_S4_L002_I2_001.fastq.gz
    S1_PBMC_PIC_BCell_S4_L002_R1_001.fastq.gz
    S1_PBMC_PIC_BCell_S4_L002_R2_001.fastq.gz
...

fastq file들이 생성된걸 볼 수 있다.

Reference

This post is licensed under CC BY 4.0 by the author.

© Subin Cho. Some rights reserved.

Using the Chirpy theme for Jekyll.