我又碰到了一些套子。我有一个这样的文件:
chr1 142936580 142936581 209
chr1 142936581 142936582 208
chr1 142936582 142936583 212
chr1 142936583 142936584 210
chr1 142936588 142936590 215
chr1 142936590 142936591 217
chr1 142936591 142936592 221
chr1 142936592 142936593 220
chr1 145034453 145034454 222
chr1 145034454 145034455 220
chr1 145034455 145034456 218
chr1 145034456 145034457 215
chr1 145034457 145034459 216
chr1 145034459 145034460 212
chr1 161418656 161418657 178
chr1 161418657 161418658 177
chr1 161418658 161418659 179
chr2 90386745 90386747 222
chr2 90386747 90386748 221
chr2 90386748 90386750 220
这里的问题是我的文件中有太多的条目,我想把它们减少到开始:结束间隔以以下方式(至少这是我能想到的最好的方式): 使用第一列进行排序,然后仅使用第二列并减少它。我的意思是,如果条目列表从142开始,保持最低和最高条目作为起始、结束位置。然后移动到145*个位置并做同样的操作。所以基本上是为那些在视觉上彼此分离的条目集创建开始,结束位置。 我们最终或多或少会得到:
chr1 142936580 142936592
chr1 145034453 145034459
chr1 161418656 161418658
chr2 90386745 90386748
这是我的主意。然而,我被困在点什么代码使用。 即使是建议也是好的 谢谢, 艾瑞克
您可以在文件中循环并跟踪特定范围内的第一个和最后一个数字。您可以通过转换为整数然后除以10的幂来提取范围。使用字典存储范围的最低值和最高值。你知道吗
如果我明白了,你要把连续的间隔组合起来。 我的提议
你会有的
你可以把它放在函数中并产生行,或者写在另一个文件中,等等。。。。你知道吗
编辑:现在最小的差异是一个常数
相关问题 更多 >
编程相关推荐