code: def _write_missing_zp_report(self, missing_zpids, include_normal=True):
          
  
          f = '/'.join((self.outdir, 'missing_zps.txt'))
  
          myset = set([','.join(x) for x in missing_zpids])
          # missing_zpids = set(missing_zpids)  # make it a unique set
          with open(f, 'w', newline='\n') as csvfile:
              writer = csv.writer(csvfile, delimiter='\t')
              # write header
              h = ['superterm1_id', 'subterm1_id', 'quality_id',
                   'superterm2_id', 'subterm2_id', 'modifier']
              writer.writerow(h)
              for x in myset:
                  writer.writerow(x.split(','))
          csvfile.close()
  
          LOG.info("Wrote %d missing zp defs to %s", len(myset), f)
  
          return
docs: This will write the sextuples of anatomy+quality to a file
          if they do not map to any current ZP definition.
          Set include_normal to False if you do not want to log
          the unmatched "normal" phenotypes.
          :param missing_zpids:
          :param include_normal:
          :return: