我有一个如下所示的文本,大小约为6gb。我想保持#CHROM
行不变,但我想将#CHROM
行下的所有行洗牌。有没有一种记忆有效的方法来做到这一点?
##contig=<ID=chrX,length=155270560,assembly=hg19>
##contig=<ID=chrY,length=59373566,assembly=hg19>
##contig=<ID=chrM,length=16571,assembly=hg19>
##reference=file:///dmf/
##source=SelectVariants
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT
chr1 14165 . A G 220.12 VQSRTrancheSNP99.90to10
chr1 14248 . T G 547.33 VQSRTrancheSNP99.90to10
chr1 14354 . C A 2942.62 VQSRTrancheSNP99.90to10
chr1 14374 . A G 17.90 VQSRTrancheSNP99.90to10
我想要的结果是这样的:
##contig=<ID=chrX,length=155270560,assembly=hg19>
##contig=<ID=chrY,length=59373566,assembly=hg19>
##contig=<ID=chrM,length=16571,assembly=hg19>
##reference=file:///dmf/
##source=SelectVariants
#CHROM POS ID REF ALT QUAL FILTER INFO FORMAT
chr1 14354 . C A 2942.62 VQSRTrancheSNP99.90to10
chr1 14248 . T G 547.33 VQSRTrancheSNP99.90to10
chr1 14374 . A G 17.90 VQSRTrancheSNP99.90to10
chr1 14165 . A G 220.12 VQSRTrancheSNP99.90to10
最佳答案
我将按您的标准分割文件,在第二个块上使用shuf
,然后再次将它们分类。我想不出一个内存效率高的wat可以避免分裂。