def gfa1_write_graph(f: TextIO, g: AssemblyGraph,
with_orig_segments: SegmentMapping=None):
f.write(gfa_header("1.0"))
segments = set()
for n in g.nodes_iter():
segment_name = str(n)[:-1]
if segment_name in segments:
continue
segments.add(segment_name)
if with_orig_segments and segment_name in with_orig_segments:
n = with_orig_segments[segment_name]
parts = ["S", segment_name, "*", "LN:i:{}".format(n.length)]
f.write(gfa_line(*parts))
for u, v, d in g.edges_iter(data=True):
uid = str(u)[:-1]
u_strand = str(u)[-1:]
vid = str(v)[:-1]
v_strand = str(v)[-1:]
# Fake CIGAR string just indicating overlap length
overlap = str(d['overlap_len'])+"M"
parts = ["L", uid, u_strand, vid, v_strand, overlap]
f.write(gfa_line(*parts))
评论列表
文章目录