code: def partition_gtf(gtf, coding=False, out_file=False):
      
      if out_file and file_exists(out_file):
          return out_file
      if not out_file:
          out_file = tempfile.NamedTemporaryFile(delete=False,
                                                 suffix=".gtf").name
  
      if coding:
          pred = lambda biotype: biotype and biotype == "protein_coding"
      else:
          pred = lambda biotype: biotype and biotype != "protein_coding"
  
      biotype_lookup = _biotype_lookup_fn(gtf)
  
      db = get_gtf_db(gtf)
      with file_transaction(out_file) as tx_out_file:
          with open(tx_out_file, "w") as out_handle:
              for feature in db.all_features():
                  biotype = biotype_lookup(feature)
                  if pred(biotype):
                      out_handle.write(str(feature) + "\n")
      return out_file
docs: return a GTF file of all non-coding or coding transcripts. the GTF must be annotated
      with gene_biotype = "protein_coding" or to have the source column set to the
      biotype for all coding transcripts. set coding to
      True to get only the coding, false to get only the non-coding