|
|
|
@ -48,24 +48,25 @@ def ngsfilterIterator(lineiterator,
|
|
|
|
|
all_lines.insert(0, firstline)
|
|
|
|
|
|
|
|
|
|
# Insert header for column names
|
|
|
|
|
column_names = [b"experiment", b"sample", b"forward_tag", b"reverse_tag", b"forward_primer", b"reverse_primer",b"additional_info"]
|
|
|
|
|
column_names = [b"experiment", b"sample", b"forward_tag", b"reverse_tag", b"forward_primer", b"reverse_primer"] #,b"additional_info"]
|
|
|
|
|
header = out_sep.join(column_names)
|
|
|
|
|
|
|
|
|
|
new_lines.append(header)
|
|
|
|
|
|
|
|
|
|
for line in all_lines:
|
|
|
|
|
split_line = line.split(maxsplit=5)
|
|
|
|
|
tags = split_line.pop(2)
|
|
|
|
|
tags = tags.split(b":")
|
|
|
|
|
for t_idx in range(len(tags)):
|
|
|
|
|
if tags[t_idx]==b"-" or tags[t_idx]==b"None" or tags[t_idx]==b"":
|
|
|
|
|
tags[t_idx] = nastring
|
|
|
|
|
if len(tags) == 1: # Forward and reverse tags are the same
|
|
|
|
|
tags.append(tags[0])
|
|
|
|
|
split_line.insert(2, tags[0])
|
|
|
|
|
split_line.insert(3, tags[1])
|
|
|
|
|
new_lines.append(out_sep.join(split_line[0:7]))
|
|
|
|
|
|
|
|
|
|
if split_line:
|
|
|
|
|
tags = split_line.pop(2)
|
|
|
|
|
tags = tags.split(b":")
|
|
|
|
|
for t_idx in range(len(tags)):
|
|
|
|
|
if tags[t_idx]==b"-" or tags[t_idx]==b"None" or tags[t_idx]==b"":
|
|
|
|
|
tags[t_idx] = nastring
|
|
|
|
|
if len(tags) == 1: # Forward and reverse tags are the same
|
|
|
|
|
tags.append(tags[0])
|
|
|
|
|
split_line.insert(2, tags[0])
|
|
|
|
|
split_line.insert(3, tags[1])
|
|
|
|
|
new_lines.append(out_sep.join(split_line[0:6]))
|
|
|
|
|
|
|
|
|
|
return tabIterator(iter(new_lines),
|
|
|
|
|
header = True,
|
|
|
|
|
sep = out_sep,
|
|
|
|
|