ファイル1とファイル2と一致

ファイル1とファイル2と一致

2つのファイルがあります。 File1には遺伝子相互作用(遺伝子記号)があり、他のFile2には遺伝子記号と対応するEnsembl IDがあります。

ファイル1

GeneA GeneB
GeneA GeneD
GeneC GeneB

ファイル2

GeneA    Ensembl1
GeneB    Ensembl2
GeneC    Ensembl3 

それでは、以下のような出力を持つファイルFile3が欲しいです。

GeneA Ensembl1 GeneB Ensembl2
GeneA Ensembl1 GeneD NA
GeneC Ensembl3 GeneB Ensembl2

File2 に GeneD がないため、その遺伝子の Ensembl ID が見つからない場合は、その遺伝子に NA が入力されます。誰もが実装するのに役立ちますか?

ベストアンサー1

アッ解決策:

awk 'NR==FNR{ a[$1]=$2; next }
     { $1=$1 FS (($1 in a)? a[$1]:"NA"); $2=$2 FS (($2 in a)? a[$2]:"NA"); }1' File2 File1

出力:

GeneA Ensembl1 GeneB Ensembl2
GeneA Ensembl1 GeneD NA
GeneC Ensembl3 GeneB Ensembl2

おすすめ記事