def build_sam_tags(flds):
"""
Given a list of fields from a SAM file
(all fields, including the first 11 fixed fields),
returns a dictionary with the SAM tags (e.g. 'MD', 'NM').
Tags with type 'i' are converted to integers.
Tags with type 'f' are converted to floats.
Example:
tags = build_sam_tags( ["NM:i:0","MD:Z:77"])
=> tags = { 'NM':0, 'MD':'77' }
"""
# Split tags into tuples of (name,type,value)
# e.g. ["NM:i:0","MD:Z:77"] => [('NM', 'i', '0'), ('MD', 'Z', '77')]
in_tags = [ tuple(x.split(':')) for x in flds[11:]]
out_tags = {}
for n,t,v in in_tags:
if t=="i":
v = int(v)
elif t=='f':
v = float(v)
out_tags[n]=v
return out_tags
sam-to-bedseq.py 文件源码
python
阅读 26
收藏 0
点赞 0
评论 0
评论列表
文章目录