若想要从sam或bam文件中提取指定区域内的reads,可以使用samtools和bedtools来实现。 首先准备一个区域信息文件。region.bed #第一列为染色体ID,第二三列分别为起始终止位置
若想要从sam或bam文件中提取指定区域内的reads,可以使用samtools或bedtools来实现。
使用samtools
samtools view -hb -@ 8 -b wgs.sort.bam chr:start-end > target.region.bam
有时候会报错
[[main_samview] region "chr2:20,100,000-20,200,000" specifies an unknown reference name. Continue anyway.]
搜索了一堆资料后,直到遇见了这个问题,里面有一句话是这么说的:there is no such chromosome "chr2" in the bam. try "2". 瞬间开悟,于是将命令行的chr2修改为2,见如下命令:
samtools view aln.sorted.bam 2:20,100,000-20,200,000
成功解决了
根据bed文件来提取
samtools view -hb -L target.bed wgs.sort.bam > target.region.bam
**使用bedtools**
bedtools intersect -a reads.bam -b region.bed > target_reads.bam
**target.bed**
5 1253262 1295184 TERT
13 32889611 32973805 BRCA2
10 89622870 89731687 PTEN
17 41196312 41277500 BRCA1
17 7565097 7590856 TP53