code: def make_pizzly_gtf(gtf_file, out_file, data):
      
      if file_exists(out_file):
          return out_file
      db = gtf.get_gtf_db(gtf_file)
      with file_transaction(data, out_file) as tx_out_file:
          with open(tx_out_file, "w") as out_handle:
              for gene in db.features_of_type("gene"):
                  children = [x for x in db.children(id=gene)]
                  for child in children:
                      if child.attributes.get("gene_biotype", None):
                          gene_biotype = child.attributes.get("gene_biotype")
                  gene.attributes['gene_biotype'] = gene_biotype
                  gene.source = gene_biotype[0]
                  print(gene, file=out_handle)
                  for child in children:
                      child.source = gene_biotype[0]
                      # gffread produces a version-less FASTA file
                      child.attributes.pop("transcript_version", None)
                      print(child, file=out_handle)
      return out_file
docs: pizzly needs the GTF to be in gene -> transcript -> exon order for each
      gene. it also wants the gene biotype set as the source