INNER CODE UNIT · Python
fasta_sample_iter
BigDataBiology/SemiBin · SemiBin/main.py:922
def fasta_sample_iter(fn):
for h,seq in fasta_iter(fn):
if args.separator not in h:
raise ValueError(
f"Expected contigs to contain separator character ({args.separator}), found {h}")
sample_name, contig_name = h.split(args.separator, 1)
yield sample_name, contig_name, seq
for sample_name, contigs in groupby(fasta_sample_iter(args.contig_fasta), lambda sn_cn_seq : sn_cn_seq[0]):
with utils.possibly_compressed_write(os.path.join(args.output, 'samples', f'{sample_name}.fa')) as out:
longest = 0
for _, contig_name, seq in contigs:
out.write(f'>{contig_name}\n{seq}\n')
contig_lengths.append(len(seq))
longest = max(longest, len(seq))
sample_longest[sample_name] = longest
sample_list.append(sample_name)
if not contig_lengths: