【发布时间】:2023-02-09 23:20:30
【问题描述】:
我有一个很大的制表符分隔文件(技术上是遗传变异的 VCF),其中有数百万行看起来像这样
locus1 1 15 0 0/0,21,2,2,;0
locus1 2 17 0 0/0,21,2,1,;0
locus2 1 10 0 0/1,21,2,2,;0
locus3 1 2 0 0/1,21,2,1,;0
...
locus123929 1 3 0 1/0,22,2,1,;0
locus123929 2 4 0 1/2,1,1,3,;0
我想对该原始文件进行子集化,以将来自基因座的所有行包含在列表中。例如,如果我的列表仅包含 locus1、locus3 和 locus123929,则最终文件将是:
locus1 1 15 0 0/0,21,2,2,;0
locus1 2 17 0 0/0,21,2,1,;0
locus3 1 2 0 0/1,21,2,1,;0
locus123929 1 3 0 1/0,22,2,1,;0
locus123929 2 4 0 1/2,1,1,3,;0
使用 bash 或 R 对这么大的文件进行子集化的最有效方法是什么? (注意,将整个文件读入内存,因为在 R 中非常非常慢,并且经常使系统崩溃。)
【问题讨论】: