我有两个文件:文件 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
本质上,这与两个列表和文件 B 中的 ProbeID 匹配,检查调用列中相应的“调用”值。当 call = 0 时,在相邻列中打印 alleleA 的值两次。当 call = 1 时,打印 alleleA 和 alleleB 的值。当 call =2 时,打印 alleleB 的值两次。