docs: def make_sdf():
      """Produce SDF of ChemDataExtractor and Tetko sample melting points."""
      # import numpy as np
      # my_results_by_inchikey = defaultdict(list)
      # result_dir = '../examples/mp/standardized_results'
      # fout = open('../examples/mp/sdf/chemdataextractor-melting-points.sdf', 'w')
      # writer = Chem.SDWriter(fout)
      # for filename in os.listdir(result_dir):
      #     if not filename.endswith('.json'):
      #         continue
      #     patent_id = filename[:-5]
      #     with open('%s/%s' % (result_dir, filename)) as fin:
      #         results = json.loads(fin.read().decode('utf8'))
      #         for m in results:
      #             m['patent_id'] = patent_id
      #             mol = Chem.MolFromSmiles(m['smiles'])
      #             mol.SetProp(b'_Name', m['name'].encode('utf-8'))
      #             mol.SetProp(b'OriginalText', m['value'].encode('utf-8'))
      #             mol.SetProp(b'Value', b'%s' % m['float_value'])
      #             mol.SetProp(b'Patent', m['patent_id'].encode('utf-8'))
      #             mol.SetProp(b'SMILES', Chem.MolToSmiles(mol, isomericSmiles=True))
      #             mol.SetProp(b'QuantityType', b'MeltingPoint')
      #             mol.SetProp(b'StdInChIKey', Chem.InchiToInchiKey(Chem.MolToInchi(mol)))
      #             if not mol:
      #                 print('WARNING: %s' % m)
      #                 return
      #             AllChem.Compute2DCoords(mol)
      #             writer.write(mol)
      #             my_results_by_inchikey[m['inchikey']].append(m)
      # writer.close()
      # fout.close()
      #
      # fout = open('../examples/mp/sdf/chemdataextractor-melting-points-filtered.sdf', 'w')
      # writer = Chem.SDWriter(fout)
      # for inchikey, results in my_results_by_inchikey.items():
      #     if len(results) == 1:
      #         m = results[0]
      #     elif len(results) == 2:
      #         sorted_results = sorted(results, key=lambda x: x['float_value'])
      #         m = sorted_results[0]
      #     else:
      #         median = np.median([r['float_value'] for r in results])
      #         chosen = results[0]
      #         for result in results:
      #             if result['float_value'] - median < chosen['float_value'] < median:
      #                 m = result
      #     mol = Chem.MolFromSmiles(m['smiles'])
      #     mol.SetProp(b'_Name', m['name'].encode('utf-8'))
      #     mol.SetProp(b'OriginalText', m['value'].encode('utf-8'))
      #     mol.SetProp(b'Value', b'%s' % m['float_value'])
      #     mol.SetProp(b'Patent', m['patent_id'].encode('utf-8'))
      #     mol.SetProp(b'SMILES', Chem.MolToSmiles(mol, isomericSmiles=True))
      #     mol.SetProp(b'QuantityType', b'MeltingPoint')
      #     mol.SetProp(b'StdInChIKey', Chem.InchiToInchiKey(Chem.MolToInchi(mol)))
      #     if not mol:
      #         print('WARNING: %s' % m)
      #         return
      #     AllChem.Compute2DCoords(mol)
      #     writer.write(mol)
  
  
      with open('../examples/mp/sdf/chemdataextractor-melting-points.sdf', 'rb') as f_in, gzip.open('../examples/mp/sdf/chemdataextractor-melting-points.sdf.gz', 'wb') as f_out:
          shutil.copyfileobj(f_in, f_out)
  
      with open('../examples/mp/sdf/chemdataextractor-melting-points-filtered.sdf', 'rb') as f_in, gzip.open('../examples/mp/sdf/chemdataextractor-melting-points-filtered.sdf.gz', 'wb') as f_out:
          shutil.copyfileobj(f_in, f_out)