首先,看一下BAM文件的内容,BAM文件名为heart.bam
1 | > samtools view heart.bam | head |
下面,准备一个区域信息文件,即BED文件,命名为chr19.bed,查看一下内容
1 | > less chr19.bed |
使用bedtools intersect取交集,并查看生成的target.bam文件
1 | bedtools intersect -a heart.bam -b chr19.bed > target.bam |
在目标范围chr19:3079000-3080000之间,共有两个reads,即3079081-3079116和3079310-3079345,读长皆为36 bp,这是最简单的情形,容易理解,因为两段读长都完全位于目标范围之内。
假设,读长只有一部分位于目标区域之内,结果如何?修改chr19.bed为chr19b.bed,并更改目标范围,看看结果:
1 | chr19 3079081 3079310 # [1]第一段完全覆盖,第二段只覆盖第一个碱基 |
综上可见,对于一个read而言,只要其中一个碱基(最后一个例外)落入目的范围,则会被认为是与此目的区域有交集并保留。