bioinfo:참조_서열에_대한_매핑_reference_mapping_및_시각화
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
bioinfo:참조_서열에_대한_매핑_reference_mapping_및_시각화 [2023/06/21 14:47] – [SAM/BAM에서 unmapped read 추출하기] hyjeong | bioinfo:참조_서열에_대한_매핑_reference_mapping_및_시각화 [2024/07/05 10:04] (current) – [Mapping의 실제] hyjeong | ||
---|---|---|---|
Line 6: | Line 6: | ||
===== Mapping의 실제 ===== | ===== Mapping의 실제 ===== | ||
- | 샘플로 사용할 Illumina sequencing read는 [[https:// | + | 샘플로 사용할 Illumina sequencing read는 |
# 실습용 raw data의 설명은 https:// | # 실습용 raw data의 설명은 https:// | ||
Line 26: | Line 26: | ||
$ samtools view -b -S -o BL21.bam BL21.sam | $ samtools view -b -S -o BL21.bam BL21.sam | ||
| | ||
- | SAM 파일의 대부분을 구성하는 read alignment 필드에서 두 번째 필드(flag, | + | SAM 파일의 대부분을 구성하는 read alignment 필드에서 두 번째 필드(flag, |
$ samtools flagstat BL21.bam | $ samtools flagstat BL21.bam | ||
Line 126: | Line 126: | ||
자료에 따라서는 -f 12 -F 256으로 설정하기도 한다. 256(0x100)은 not primary alignment라는 뜻이므로 -F 256은 이를 부정하여 primary alignment가 된다. 그러나 unmapped read에게는 이것이 의미가 없고, 실제로 테스트한 결과 –f 12 단독으로 실행하거나 –f 12 –F 256 복합으로 실행한 경우에 차이는 없었다. | 자료에 따라서는 -f 12 -F 256으로 설정하기도 한다. 256(0x100)은 not primary alignment라는 뜻이므로 -F 256은 이를 부정하여 primary alignment가 된다. 그러나 unmapped read에게는 이것이 의미가 없고, 실제로 테스트한 결과 –f 12 단독으로 실행하거나 –f 12 –F 256 복합으로 실행한 경우에 차이는 없었다. | ||
===== SAM/ | ===== SAM/ | ||
+ | Read unmapped에 대한 SAM flag이 4(samtools view -f 0x04)이므로 이 조건에 반대되는 모든 read(-F 0x04)가 mapped read에 해당한다. 그러나 properly mapped reads, 즉 mapping된 mate의 거리와 간격이 라이브러리의 크기의 평균적 분포를 만족하는 것을 고르려면 -f 0x03(0x01 for read paired; 0x02 for read mapped in proper pair; paired read의 경우 두 flag는 동시에 쓰여야 함)을 적용해야 한다. 후속 분석 작업의 목적에 따라서는 mate 중 어느 하나만 mapping이 되었어도 read pair를 전부 추출하고 싶은 경우도 있을 것이다. SAM 및 BAM 필터링의 사례에 대해서는 [[https:// | ||
+ | |||
+ | ^ **SAM flag** | ||
+ | | [1] -f 0x04 | Unmapped | ||
+ | | [2] -F 0x04 | Mapped | ||
+ | | [3] -F 12 | Read and mate mapped | ||
+ | | [4] -f 0x03 | Properly mapped \\ (-f 99/147 및 -f 83/ | ||
+ | | [5] -f 0x04 -F 0x08 | Reads that did not map, but whose mates mapped \\ (-f 4 -F 264로 표현한 자료도 있음) | ||
+ | | [6] -f 0x08 -F 0x04 | Reads that map, but whose mates not mapped \\ (-f 8 -F 260으로 표현한 자료도 있음) | ||
+ | |||
+ | 여러 조건을 이용하여 복수의 BAM 파일을 추출하였다면 samtools merge 명령을 이용하여 하나로 합친 뒤 samtools bam2fq 명령을 이용하여 fastq 파일로 추출하면 된다. 위의 표에서 보인 사례에서 [5]와 [6]는 paired read까지 만들어 놓으면 같은 결과가 되므로 어떤 flag을 쓰든 관계가 없다. 다음의 사례는 BAM 파일을 탐색하여 mate 중 어느 한쪽만 mapping이 되었더라도 read pair를 추출하여 한 쌍의 fastq 파일로 출력하는 방법을 보이고 있다. | ||
+ | |||
+ | $ samtools view -b -F 12 BL21.bam > mapped_paired.bam | ||
+ | $ samtools view -b -f 4 -F 8 BL21.bam > unmap_map.bam | ||
+ | $ samtools view -b -f 8 -F 4 BL21.bam > map_unmap.bam | ||
+ | $ samtools merge at_least_one_mapped.bam mapped_paired.bam unmap_map.bam map_unmap.bam mapped_paired.bam | ||
+ | # Read name을 기준으로 정렬을 해야(-n) 나중에 read pair를 별도의 파일로 잘 분리해 낼 수 있다. | ||
+ | $ samtools sort -n at_least_one_mapped.bam -o at_least_one_mapped_sorted.bam | ||
+ | # -N 옵션은 read name에 /1 또는 /2를 추가한다. | ||
+ | $ samtools bam2fq –N -1 paired_1.fq -2 paired_2.fq at_least_one_mapped_sorted.bam | ||
+ | | ||
+ | 추출할 read의 목록을 먼저 만든 다음에 원본 fastq 파일로부터 추출해 내는 방법도 가능하다. 이때에는 seqtk가 필요하다. | ||
+ | |||
+ | $ samtools view -F 12 BL21.bam | cut -f1 | sort | uniq > list_both | ||
+ | # 다음 명령어에서는 -f 4 -F 8로 실행해도 무방하다. | ||
+ | $ samtools view -f 8 -F 4 BL21.bam | cut -f1 | sort | uniq > list_single | ||
+ | $ cat list_both list_single > list_all | ||
+ | $ cp list_all list_1 | ||
+ | $ cp list_all list_2 | ||
+ | $ sed -i ' | ||
+ | $ seqtk subseq reads_1.fq list_1 > pairedNew_1.fq | ||
+ | $ sed -i ' | ||
+ | $ seqtk subseq reads_2.fq list_2 > pairedNew_2.fq | ||
===== SRA data를 다운로드하는 방법(상세) ===== | ===== SRA data를 다운로드하는 방법(상세) ===== | ||
+ | 본 장의 시작 부분에서 fastq-dump를 이용한 SRA data 다운로드 방법을 간략하게 설명하였다. 만약 SRA와 연계된 메타데이터 파일이 필요하거나 웹브라우저 환경의 Run Selector를 이용해야 하는 경우, 또는 아마존 웹 서비스(Amazon Web Service, AWS)를 통한 다운로드가 필요하다면 NCBI의 공식 문서인 [[https:// | ||
+ | |||
+ | Single run에 대한 데이터를 열람하여 다운로드하려면 우선 [[https:// | ||
+ | |||
+ | 복수의 SRA Experiment(예: | ||
+ | |||
+ | $ PATH=/ | ||
+ | $ parallel -j 1 prefetch {} ::: $(cat SRR_Acc_List.txt) | ||
+ | $ parallel -j 1 fastq-dump --skip-technical -F --split-files -O fastq {} ::: $(cat SRR_Acc_List.txt) | ||
+ | |||
+ | SRA의 Run Browser에서 Data access 탭을 선택한 다음 URL을 클릭하여 직접 다운로드를 할 수도 있다. 아래 그림처럼 NCBI Location 오른쪽의 [[https:// | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 이를 ~/ | ||
+ | |||
+ | $ fastq-dump --split-files SRR8981517 | ||
+ | Read 1431064 spots for SRR8981517 | ||
+ | Written 1431064 spots for SRR8981517 | ||
+ | |||
+ | 사실은 앞서 설명했듯이 ‘fastq-dump %%--%%split-files SRR8981517’라고만 입력하여 실행을 해도 .sra 파일 다운로드와 fastq 추출 작업이 자동으로 연이어서 진행된다. | ||
+ | |||
===== 참고 자료 ===== | ===== 참고 자료 ===== |
bioinfo/참조_서열에_대한_매핑_reference_mapping_및_시각화.1687326461.txt.gz · Last modified: by hyjeong