2 つのファイルがあります。ファイル A は次のようになります。
ProbeID rsID chr bp strand alleleA alleleB
SNP_A-1780270 rs987435 7 78599583 - C G
SNP_A-1780271 rs345783 15 33395779 - C G
SNP_A-1780272 rs955894 1 189807684 - G T
SNP_A-1780274 rs6088791 20 33907909 - A G
SNP_A-1780277 rs11180435 12 75664046 + C T
SNP_A-1780278 rs17571465 1 218890658 - A T
SNP_A-1780283 rs17011450 4 127630276 - C T
SNP_A-1780285 rs6919430 6 90919465 + A C
SNP_A-1780286 rs41528453 --- --- --- A G
SNP_A-1780287 rs2342723 16 5748791 + C T
ファイルBは次のようになります
ProbeID call
SNP_A-1780270 2
SNP_A-1780271 0
SNP_A-1780272 2
SNP_A-1780274 1
SNP_A-1780277 0
SNP_A-1780278 2
SNP_A-1780283 2
SNP_A-1780285 2
SNP_A-1780286 0
SNP_A-1780287 0
次のような出力が必要です。
ProbeID call genotype
SNP_A-1780270 2 G G
SNP_A-1780271 0 C C
SNP_A-1780272 2 T T
SNP_A-1780274 1 A G
SNP_A-1780277 0 C C
SNP_A-1780278 2 T T
SNP_A-1780283 2 T T
SNP_A-1780285 2 C C
SNP_A-1780286 0 A A
SNP_A-1780287 0 C C
基本的に、これは 2 つのリストの ProbeID と一致し、ファイル B では、call 列から対応する「call」値をチェックします。call = 0 の場合、隣の列に alleleA の値を 2 回出力します。call = 1 の場合、alleleA と alleleB の値を出力します。call =2 の場合、alleleB の値を 2 回出力します。