Source code for sequana.gfa
[docs]
class GFA:
def __init__(self, filename):
self.filename = filename
self.read()
[docs]
def read(self):
with open(self.filename, "r") as fin:
for line in fin.readlines():
if line.startswith("S"):
items = line.split()
assert items[0] == "S"
name = items[1]
sequence = items[2]
length = len(sequence)
depth = None
for item in items[2]:
if item.startswith("dp:i"):
depth = item.split(":")[-1]
print(name, length, depth)
elif line.startswith("L"):
items = line.split()
assert items[0] == "L"
name = items[1]
edges = items[2]
for edge in edges.split(","):
ename = edge[0:-1]
direction = edge[-1]
print(f"L\t{name} {direction} {ename} 0M")
else:
print(line)
# S edge11 ACGT
# L edge1 + edge2 - 0M TC:i:15
#
# P contig1 edge1+,ede2- *