docs: def get_proteome_counts_impute_missing(prots_filtered_feathers, outpath, length_filter_pid=None,
                                         copynum_scale=False, copynum_df=None,
                                         force_rerun=False):
      """Get counts, uses the mean feature vector to fill in missing proteins for a strain"""
      if ssbio.utils.force_rerun(flag=force_rerun, outfile=outpath):
          big_strain_counts_df = pd.DataFrame()
          first = True
          for feather in prots_filtered_feathers:
              loaded = load_feather(protein_feather=feather, length_filter_pid=length_filter_pid,
                                    copynum_scale=copynum_scale,
                                    copynum_df=copynum_df)
              if first:
                  big_strain_counts_df = pd.DataFrame(index=_all_counts, columns=loaded.columns)
                  first = False
  
              new_columns = list(set(loaded.columns.tolist()).difference(big_strain_counts_df.columns))
              if new_columns:
                  for col in new_columns:
                      big_strain_counts_df[col] = big_strain_counts_df.mean(axis=1)
  
              not_in_loaded = list(set(big_strain_counts_df.columns).difference(loaded.columns.tolist()))
              if not_in_loaded:
                  for col in not_in_loaded:
                      big_strain_counts_df[col] = big_strain_counts_df[col] + loaded.mean(axis=1)
  
              big_strain_counts_df = big_strain_counts_df.add(loaded, fill_value=0)
  
          if len(big_strain_counts_df) > 0:
              big_strain_counts_df.astype(float).reset_index().to_feather(outpath)
          return big_strain_counts_df
      else:
          return pd.read_feather(outpath).set_index('index')