フィールド4と5に、コロンで区切られた数字でエンコードされた文字を含む2つのフィールドを追加します。

フィールド4と5に、コロンで区切られた数字でエンコードされた文字を含む2つのフィールドを追加します。

8番目と9番目のフィールド/列を生成し、適切な文字を4列と5列の数字にエンコードしたいと思います。コロンで区切られた6つの数字は次のとおりです。A:T:C:G:N:del

注:列6と7の一部の行が空でした。 NAを挿入してこの問題を解決しました。

awk -F'[[:space:]]' '$5 && !$6{ $6="NA" }1' 
awk -F'[[:space:]]' '$6 && !$7{ $7="NA" }1'

次に、もう一度タブを使用してファイルを区切ります。sed -e 's/ /\t/g'

ファイル.tsv

    NW_006532398.1  302035  C   0:0:32:0:0:0    42:0:0:0:0:0    KCND2   intergenic_region
    NW_006532656.1  289636  C   0:0:28:0:0:0    0:28:0:0:0:0    CNTN1   intron_variant
    NW_006532762.1  6396    C   0:54:0:0:0:0    0:0:53:0:0:0    NA  intergenic_region
    NW_006532762.1  25741   C   0:0:62:0:0:0    0:43:0:0:0:0    NA  intergenic_region
    NW_006532762.1  32304   T   0:60:0:0:0:0    0:0:49:0:0:0    NA  intergenic_region
    NW_006532762.1  179065  G   0:0:0:45:0:0    59:0:0:0:0:0    DOCK4   intron_variant

出力 example.tsv

NW_006532398.1  302035  C   0:0:32:0:0:0    42:0:0:0:0:0    KCND2   intergenic_region   C   A
NW_006532656.1  289636  C   0:0:28:0:0:0    0:28:0:0:0:0    CNTN1   intron_variant  C   T
NW_006532762.1  6396    C   0:54:0:0:0:0    0:0:53:0:0:0     NA   intergenic_region T   C
NW_006532762.1  25741   C   0:0:62:0:0:0    0:43:0:0:0:0     NA   intergenic_region C   T
NW_006532762.1  32304   T   0:60:0:0:0:0    0:0:49:0:0:0     NA   intergenic_region T   C 
NW_006532762.1  179065  G   0:0:0:45:0:0    59:0:0:0:0:0    DOCK4   intron_variant  G   A

どんな助けでも大変感謝します! !

ベストアンサー1

$ cat tst.awk
BEGIN {
    FS=OFS="\t"
    split("A:T:C:G:N:del",map,/:/)
}
{ print $0, vals2id($4), vals2id($5) }
function vals2id(vals,  arr, i, id) {
    split(vals,arr,/:/)
    for (i in arr) {
        if (arr[i] != 0) {
            id = map[i]
        }
    }
    return id
}

$ awk -f tst.awk file
NW_006532398.1  302035  C       0:0:32:0:0:0    42:0:0:0:0:0    KCND2   intergenic_region       C       A
NW_006532656.1  289636  C       0:0:28:0:0:0    0:28:0:0:0:0    CNTN1   intron_variant  C       T
NW_006532762.1  6396    C       0:54:0:0:0:0    0:0:53:0:0:0    NA      intergenic_region       T       C
NW_006532762.1  25741   C       0:0:62:0:0:0    0:43:0:0:0:0    NA      intergenic_region       C       T
NW_006532762.1  32304   T       0:60:0:0:0:0    0:0:49:0:0:0    NA      intergenic_region       T       C
NW_006532762.1  179065  G       0:0:0:45:0:0    59:0:0:0:0:0    DOCK4   intron_variant  G       A

おすすめ記事