|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码如下
- bf = pysam.AlignmentFile(sys.argv[1], 'rb')
- results = pysam.AlignmentFile("deduplex.bam","wb",template=bf)
- readed = []
- for r in bf:
- name = r.query_name.split('|')[1]
- UMI1 = re.findall(r'.{8}', name)[0]
- UMI2 = re.findall(r'.{8}', name)[1]
- tag1 = UMI1,UMI2,r.pos,r.pnext
- tag2 = UMI2,UMI1,r.pos,r.pnext
- if tag1 not in readed and tag2 not in readed:
- results.write(r)
- readed.append(tag1)
- else:
- continue
- results.close()
- bf.close()
复制代码
数据比较大,运行之后发现这个代码跑得特别慢,想了一下会不会问题出在append这一步?网上查了一下,append越到后面运行速度会变慢?有人说extend效率会高点,但是试了一下,用extend连接达不到我的目的
用append,列表是[(),()]这种格式
用extend,就全部连在一起了
请问一下有没有什么方法可以提高运行效率啊?
set必须有重复的才快,如果没有重复的情况下list最快。
|
|