This lesson is only available in Korean for now.
Lesson 12 of 20

BWA-MEM 과 minimap2 — 언제 무엇을

코드랩 3단계 · <code>ALIGNER</code> 분기가 하는 일

BWA-MEM 과 minimap2 — 언제 무엇을
둘 다 씁니다. 고르는 기준은 리드의 길이입니다.

워크숍 노트북 0단계에 이런 줄이 있습니다.

for n in ("bwa", "minimap2", "samtools", "bcftools"):
    p = shutil.which(n)

그리고 3단계에서 ALIGNER 가 "bwa" 인지 아닌지로 갈라집니다. 왜 둘을 다 챙겨 두었을까요.

답은 단순합니다 — 설치가 되는 쪽을 씁니다. Colab 에서는 apt 로 둘 다 되지만, 관리자 권한이 없는 서버에서는 하나만 있을 수 있습니다. 그리고 둘의 결과가 거의 같기 때문에 이런 분기가 가능합니다.

둘의 차이

BWA-MEMminimap2
나온 해20132018
만든 사람둘 다 Heng Li — 같은 사람입니다
노리는 리드짧은 리드 (70 bp ~ 1 kb)긴 리드 (ONT · PacBio) 와 짧은 리드 둘 다
씨앗 방식FM-index 로 정확한 최대 일치minimizer — 해시로 성긴 씨앗
속도 (짧은 리드)기준비슷하거나 조금 빠르다
스플라이스 인식없다-x splice 로 RNA 도 붙인다
DNA 짧은 리드 표준사실상 표준. 대부분의 논문이 이것쓸 수 있지만 관행이 아니다

같은 사람이 만들었고, 나중 것이 앞의 것을 대체하려고 만든 것이 아닙니다. 다른 문제를 풀려고 만든 것입니다.

이 성김이 속도의 전부입니다. 그리고 같은 것이 뽑힌다는 성질이 정확도를 지킵니다.
Python Runs in your browser
리드 길이와 오류율을 바꿔 보세요. 어느 정렬기가 유리한 구간이 갈립니다.
Loading…

실제로 부르는 명령 — 노트북 3단계

BWA 쪽
bwa index kit_locus.fa
bwa mem -t 4 -R '@RG\tID:tumor\tSM:tumor\tPL:ILLUMINA' kit_locus.fa tumor_R1.fastq.gz tumor_R2.fastq.gz

minimap2 쪽
minimap2 -ax sr -t 4 -R '@RG\tID:tumor\tSM:tumor\tPL:ILLUMINA' kit_locus.fa tumor_R1.fastq.gz tumor_R2.fastq.gz
토막뜻
-ax srminimap2 에게 짧은 리드(short read) 라고 알려 주는 프리셋. -a 는 SAM 으로 출력
-t 4실 4개. 정렬은 리드마다 독립이라 코어 수만큼 거의 그대로 빨라진다
-R '@RG…'읽기 그룹. 이 리드들이 어느 시료에서 왔는지 BAM 에 새긴다
출력의 칸 사이는 진짜 탭입니다. 셸에서는 -R '@RG\tID:…' 처럼 역슬래시-t 두 글자로 적고, bwa 가 그것을 탭으로 바꿔 넣습니다.
Python Runs in your browser
🤔 Check yourself
BWA-MEM 과 minimap2 의 관계로 옳은 것은?
🤔 Check yourself
minimizer 방식이 씨앗을 크게 줄이고도 민감도를 지키는 이유는?
🤔 Check yourself
정렬할 때 -R '@RG\tID:…\tSM:tumor…' 를 빠뜨리면?