我有一个基因型矩阵(带有表格空间),有 200 万行和 12 列。列是个体,行是 SNP。我每个人的每个 SNP 有 2 行,一个是参考等位基因的数量,另一个是替代等位基因的数量(每 2 行对应一个 SNP,这意味着第 1 行和第 2 行对应于 SNP 1,第 3 和第 4 行对应于SNP2,第 5 行和第 6 行对应于 SNP 3)。
这是一个示例,(2 个 SNP 和 8 个个体):
head genotype
2 3 1 0 0 3 5 3
18 15 19 18 16 15 13 17
2 1 0 0 0 1 1 1
18 19 18 16 20 17 17 23
对于每个 SNP,如果参考和替代等位基因的总和小于 20,我想用 0 替换两个等位基因,如果它们等于或大于 20,我想保留它们。这是我想要的输出
head (desired_output)
2 0 1 0 0 0 0 3
18 0 19 0 0 0 0 17
2 1 0 0 0 0 0 1
18 19 0 0 20 0 0 23
知道如何准确地做到这一点吗?
这个想法是将连续的行保存在 2 个数组中,然后通过相应的索引比较数组元素。
将此保存到文件中,例如“twenty.awk”
然后运行