gpt4 book ai didi

python - 如果文件 1 中的 A 列 = 文件 2 中的 A 列,则替换为文件 2 中的 B 列

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:23:40 27 4
gpt4 key购买 nike

通常我会使用 R 并执行 merge.by,但这个文件似乎太大了,部门中的任何一台计算机都无法处理它! (任何从事遗传学工作的人的附加信息)本质上,插补似乎删除了 snp ID 的 rs 数字,我只剩下染色体:位置信息。所以我创建了一个链接文件,其中包含我想要的所有 rs 编号,并想用文件 2 中的 rs 编号替换文件 1 中的 Chr:Pos 列。

所以我在想办法写代码:

If $3 of file 1 = $5 of file 2, replace $3 file 1 with $2 of file 2.

文件 1 看起来像

1111 1111 1:10583  G G
1112 1112 1:10583 G G
1113 1113 1:10583 G G
1114 1114 1:10583 G G
1115 1115 1:10583 G G

文件2看起来像

1   rs58108140  0   10583       1:10583
1 rs192319073 0 105830003 1:105830003
1 rs190151039 0 10583005 1:10583005
1 rs2809302 0 105830229 1:105830229
1 rs191085550 0 105830291 1:105830291

期望的输出是:

1111 1111 rs58108140  G G
1112 1112 rs58108140 G G
1113 1113 rs58108140 G G
1114 1114 rs58108140 G G
1115 1115 rs58108140 G G

最佳答案

awk 简单:

$ awk 'FNR==NR{a[$5]=$2;next}$3 in a{$3=a[$3]}1' file2 file1
1111 1111 rs58108140 G G
1112 1112 rs58108140 G G
1113 1113 rs58108140 G G
1114 1114 rs58108140 G G
1115 1115 rs58108140 G G

关于python - 如果文件 1 中的 A 列 = 文件 2 中的 A 列,则替换为文件 2 中的 B 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16983019/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com