- 65.《Bioinformatics Data Skills》之
- 28.《Bioinformatics-Data-Skills》之
- 18.《Bioinformatics-Data-Skills》之
- 19.《Bioinformatics-Data-Skills》之
- 【shell笔记>生信|专项】生信数据处理技能手札(3):
- Bioinformatics Data Skills
- 17.《Bioinformatics-Data-Skills》之
- 25.《Bioinformatics-Data-Skills》之
- 25.《Bioinformatics-Data-Skills》之
- 23.《Bioinformatics-Data-Skills》之
上节我们已经知道samtools view
命令可以用于转换sam与bam文件类型,其实samtools view
还可以用于提取与过滤比对结果,下面让我们了解一下。
数据地址
提取比对结果
以NA12891_CEU_sample.bam
文件为例,我们首先建立该文件的索引:
$ samtools index NA12891_CEU_sample.bam
接着提取特定区域(例如1:200000000-250000000)的比对结果:
$ samtools view NA12891_CEU_sample.bam 1:200000000-250000000 | head -n3 |
cut -f1-9
SRR005672.8895 99 1 215622850 60 51M = 215623041 227
SRR010927.10846964 163 1 215622860 60 35M16S = 215622892 83
SRR005674.4317449 99 1 215622863 37 51M = 215622987 175
提取的区域结果后可以生成bam文件存放:
$ samtools view -b NA12891_CEU_sample.bam 1:200000000-250000000 > test.bam
此外,我们也可以通过存储区域信息的BED文件来指定需要提取的区域:
$ samtools view -L USH2A_exons.bed NA12891_CEU_sample.bam | head -n3 | cut -f1-9
SRR003214.11652876 163 1 215796180 60 76M = 215796224 92
SRR010927.6484300 163 1 215796188 60 51M = 215796213 76
SRR005667.2049283 163 1 215796190 60 51M = 215796340 201
过滤比对结果
通过对bam文件进行过滤可以保留我们需要的信息,这里用到之前学习的bitwise flag,例如unmap的bitwise flag值为:
$ samtools flags unmap
0x4 4 UNMAP
通过-f
参数指定bitwise flag值就可以提取unmap的比对信息:
$ samtools view -f 4 NA12891_CEU_sample.bam | head -n3 | cut -f1-9
SRR003208.1496374 69 1 215623168 0 35M16S = 215623168 0
SRR002141.16953736 181 1 215623191 0 40M11S = 215623191 0
SRR002143.2512308 181 1 215623216 0 * = 215623216 0
上面结果的第二列为bitwise flag信息,虽然数字不同,但是每个数字都应该包含了unmap,例如69代表:
$ samtools flags 69
0x45 69 PAIRED,UNMAP,READ1
通过-F
参数可以给出相反的结果,例如保留已经mapped的read:
$ samtools view -F 4 NA12891_CEU_sample.bam | head -n3 | cut -f1-9
SRR005672.8895 99 1 215622850 60 51M = 215623041 227
SRR010927.10846964 163 1 215622860 60 35M16S = 215622892 83
SRR005674.4317449 99 1 215622863 37 51M = 215622987 175
此外,我们可以通过多个信息来过滤read,例如paired,read1,proper_pair对应的bitwise flag为:
$ samtools flags paired,read1,proper_pair
0x43 67 PAIRED,PROPER_PAIR,READ1
满足此信息的read结果为:
$ samtools view -f 67 NA12891_CEU_sample.bam | head -n3 | cut -f1-9
SRR005672.8895 99 1 215622850 60 51M = 215623041 227
SRR005674.4317449 99 1 215622863 37 51M = 215622987 175
SRR010927.10846964 83 1 215622892 60 51M = 215622860 -83
注意:使用组合信息的时候要谨慎,例如非proper_pair的read实际上也会包含unmap与unpair的read,需要仔细了解这些信息的含义。
网友评论