【发布时间】:2012-05-31 02:54:29
【问题描述】:
我有两个文件,每个文件有 3 列和 n 行(每个文件中的行数不同)。
每个看起来像这样:
file1
chr1 12 32
chr1 14 30
chr3 10002 89000
chrx 5678900 987654
还有这个:
file2
chr1 8 15
chr1 10 14
chr1 32 34
每个文件中的第二列和第三列代表起始值和结束值,而第一列是名称。
因此,如果(文件 1)第一列中的值与文件 2 第一列中的值匹配,则脚本应计算它们是否存在重叠(第 2 列和第 3 列中值范围的任何重叠程度在文件 1 中,文件 2 的第 2 列和第 3 列中的值范围)文件 2 中文件 1 的第二列和第三列中的值范围。
需要这样的输出:
regions from file1 present in file 2
chr1 12 32 present
chr1 14 30 present
chr3 10002 89000 absent
chrx 5678900 987654 absent
关于 awk 操作或 python 脚本的任何建议...请帮助。
【问题讨论】:
-
@sebastian:通常当我必须比较 2 个文件的列时,我使用 shell 的 diff 或 comm 命令。但是由于这里我还有一个文件和两个额外的列,所以我对应该如何进行有点困惑。
标签: python bash shell awk text-processing