我有一个如下的 bam 文件(它只是一个子集),我想根据 chr (第三列中的 2)和起始位置(第四列中的 13107 到 14348)提取行。
输入:
D00823:135:HYNH5BCX2:2:2212:6147:34072 256 1 13039 1 51M * 0 0 GCACATTGCTAAGTGGAAGAAGACAGTCTGAGGAGGATACACACAGTGTGA DDDDDIIIHHIHIIIIIGIEHIIGHIIIGIIII?GHHGIIIIIIIIIIIII AS:i:0 ZS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:51 YT:Z:UU NH:i:10 RG:Z:I19-1116-18-56202EE2
D00510:603:HYNMJBCX2:1:2114:6725:52665 256 1 13039 1 51M * 0 0 GCACATTGCTAAGTGGAAGAAGACAGTCTGAGGAGGATACACACAGTGTGA DDDDDIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII AS:i:0 ZS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:51 YT:Z:UU NH:i:10 RG:Z:I19-1116-18-43662E24
D00510:603:HYNMJBCX2:2:1108:18476:88773 256 2 13107 1 51M * 0 0 CTGGAGAAGGCAAACTACACAGATGGGAAGCCATTGGCTCCATGGGGTGGG
DDBBDHIIIIIHHGIIIIHHCHHIHCHHHHIIIIGIHHHIIIIIIHFHIHI AS:i:0 ZS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:51 YT:Z:UU NH:i:10 RG:Z:I19-1116-18-526BA999
D00823:135:HYNH5BCX2:1:1216:2815:76028 256 2 14348 1 49M * 0 0 TGTTATTGAAGTGAAGCAGAATTGTTTTTACTAATCTGCTTATTACCCA
DDDDDHIHFHIIGHIHIIHIGIIIIIIIIIIHHHHIIIIIHHIIHHIII AS:i:0 ZS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:49 YT:Z:UU NH:i:10 RG:Z:I19-1116-18
D00823:135:HYNH5BCX2:1:2107:4561:30492 256 2 14348 1 49M * 0 0 TGTTATTGAAGTGAAGCAGAATTGTTTTTACTAATCTGCTTATTACCCA BDDDAHHHHHIHIIIIIIIIIIIIIIIIIIIIIHIIIHIIIHIIIIIII AS:i:0 ZS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:49 YT:Z:UU NH:i:10 RG:Z:I19-1116-18
D00510:603:HYNMJBCX2:1:2205:16091:50653 256 2 14350 1 49M * 0 0 TGTTATTGAAGTGAAGCAGAATTGTTTTTACTAATCTGCTTATTACCCA DDDDDIIIIIIIIHIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIHI AS:i:0 ZS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:49 YT:Z:UU NH:i:10 RG:Z:I19-1116-18-43662E24
输出:
D00510:603:HYNMJBCX2:2:1108:18476:88773 256 2 13107 1 51M * 0 0 CTGGAGAAGGCAAACTACACAGATGGGAAGCCATTGGCTCCATGGGGTGGG
DDBBDHIIIIIHHGIIIIHHCHHIHCHHHHIIIIGIHHHIIIIIIHFHIHI AS:i:0 ZS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:51 YT:Z:UU NH:i:10 RG:Z:I19-1116-18-526BA999
D00823:135:HYNH5BCX2:1:1216:2815:76028 256 2 14348 1 49M * 0 0 TGTTATTGAAGTGAAGCAGAATTGTTTTTACTAATCTGCTTATTACCCA
DDDDDHIHFHIIGHIHIIHIGIIIIIIIIIIHHHHIIIIIHHIIHHIII AS:i:0 ZS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:49 YT:Z:UU NH:i:10 RG:Z:I19-1116-18
D00823:135:HYNH5BCX2:1:2107:4561:30492 256 2 14348 1 49M * 0 0 TGTTATTGAAGTGAAGCAGAATTGTTTTTACTAATCTGCTTATTACCCA BDDDAHHHHHIHIIIIIIIIIIIIIIIIIIIIIHIIIHIIIHIIIIIII AS:i:0 ZS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:49 YT:Z:UU NH:i:10 RG:Z:I19-1116-18
答案1
我的解决方案:
awk '$3 == 2 && $4 >= 13107 && $4 <= 14348' input.txt
答案2
使用awk
和 if 条件:
awk '{ if ($3=2 && $4<14349 && $4>13106) print $0 }' input