python merge用法_科学网—使用python实现range merge - 肖世俊的博文

这篇博客介绍了在生物信息分析中如何高效地合并大片段的Range数据。作者分享了自定义的`region_redup`和`region_merge`函数,通过先内部排序和连接,显著减少了处理100万个Range所需的时间,从原来的3个多小时降低到3秒钟。
摘要由CSDN通过智能技术生成

生物信息分析中,需要对很多的range数据进行merge,但是目前还没有对于大片段的range进行merge的方法,所以自己写了一个,发现其中也隐含很多的python使用经验。比如下面一个程序:

def region_redup(regionList1):

regionList1.sort()

indList = range(1, len(regionList1))

indList.sort(reverse=True)

for i in indList:

if regionList1[i][0] < regionList1[i-1][1]:

regionList1[i-1][1] = regionList1[i][1]

regionList1.remove(regionList1[i])

return regionList1

def region_merge(regionList1, regionList2):

print "redup 1"

region_redup(regionList1)

print "redup 2"

region_redup(regionList2)

for region2 in regionList2:

flag = 0

for region1 in regionList1:

if region2[0] < region1[1]:

flag = 1

if region2[1] > region1[0]:

regionList1.remove(region1)

regionList1.append([min(region1[0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值