【发布时间】:2013-06-03 16:43:25
【问题描述】:
通常我会使用 R 并执行 merge.by,但这个文件似乎太大了,部门中的任何计算机都无法处理这个问题! (为从事遗传学工作的任何人提供的附加信息)本质上,插补似乎删除了 snp ID 的 rs 数字,而我只剩下 Chromosome:Position 信息。所以我用我想要的所有 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
【问题讨论】:
-
文件 2 可以有多大?您可以从第 5 列和第 2 列创建
dict吗? -
每个文件有多大?
-
如果文件 1 的第 3 列总是以与文件 2 的第 5 列相同的顺序出现在组中,则每当在 file1 中遇到新组时,请使用 awk 并执行 file2 的 getline。现在不能提供详细信息,必须运行。 sudo_o 可以提供详细信息。
-
文件 1 为 12.3 GB,文件 2 为 410.5MB