def gfa1_to_exons(gfa_in_fn, fasta_out_fn, soft_mask_overlaps=False, hard_mask_overlaps=False):
gfa1 = read_gfa1(gfa_in_fn)
exon_dict = _segments_to_exon_dict(gfa1["segments"])
coordinate_dict = _containments_to_coordinate_dict(gfa1["containments"])
overlap_dict = _links_to_overlap_dict(gfa1["links"])
path_dict = _paths_to_path_dict(gfa1["paths"])
# Mask if necessary
_mask(exon_dict, overlap_dict, soft_mask_overlaps, hard_mask_overlaps)
# Add coordinate information to description
for exon_id, exon_record in exon_dict.items():
exon_record.description = " ".join(coordinate_dict[exon_id])
# Write to fasta
SeqIO.write(format="fasta", handle=fasta_out_fn, sequences=exon_dict.values())
评论列表
文章目录