-1

如何用 DNA 字母替换数字基因型代码?我有一个修改后的 vcf 文件,如下所示:

POS REF ALT A2.bam C10.bam 448 T C 0/0:0,255,255 0/0:0,255,255 2402 C T 1/1:209,23,0 xxx:255,0,255 n...

我想用 ref 字母替换 0/0,用 alt 字母替换 1/1 并删除它后面的所有字符串。它应该是这样的:

POS REF ALT A2.bam C10.bam 448 T C T T 2402 C G G xxx n...

一直在尝试用 sed 来做,但它不起作用不知道如何处理它

4

1 回答 1

1

请你试试:

awk '{
    if (NR > 1) {
        for (i=4; i<=5; i++) {
            split($i, a, ":")
            $i = a[1]
            if ($i == "0/0") $i = $2
            if ($i == "1/1") $i = $3
        }
    }
    print
}' file.txt

输出:

POS  REF ALT     A2.bam C10.bam
448 T C T T
2402 C T T xxx
n...    
  • for循环处理第 4 列和第 5 列 (A2.bamC10.bam)。
  • 首先它在“:”之后切断子字符串。
  • 如果剩余值等于“0/0”,则将其替换为第 2 列 ( REF)。
  • 如果是“1/1”,请使用第 3 列 ( ALT)。

希望这可以帮助。

于 2019-11-20T04:09:45.337 回答