docs: def df_kegg_metadata(self):
          """DataFrame: Pandas DataFrame of KEGG metadata per protein."""
          kegg_pre_df = []
          df_cols = ['gene', 'kegg', 'refseq', 'uniprot', 'num_pdbs', 'pdbs', 'seq_len', 'sequence_file', 'metadata_file']
  
          for g in self.genes:
              kegg_mappings = g.protein.filter_sequences(KEGGProp)
              for kegg_prop in kegg_mappings:
                  kegg_dict = kegg_prop.get_dict(df_format=True, only_attributes=df_cols)
                  kegg_dict['gene'] = g.id
                  kegg_pre_df.append(kegg_dict)
  
          # Save a dataframe of the file mapping info
          df = pd.DataFrame.from_records(kegg_pre_df, columns=df_cols).set_index('gene')
          if df.empty:
              log.warning('Empty dataframe')
              return df
          else:
              return ssbio.utils.clean_df(df)