docs: def load_sequences_to_reference(self, sc=None, force_rerun=False):
          """Wrapper for _load_sequences_to_reference_gene"""
          log.info('Loading sequences to reference GEM-PRO...')
          from random import shuffle
          g_ids = [g.id for g in self.reference_gempro.functional_genes]
          shuffle(g_ids)
  
          def _load_sequences_to_reference_gene_sc(g_id, outdir=self.sequences_by_gene_dir,
                                                   g_to_pickle=self.gene_protein_pickles,
                                                   strain_infodict=self.strain_infodict,
                                                   orth_matrix=self.df_orthology_matrix, force_rerun=force_rerun):
              """Load orthologous strain sequences to reference Protein object, save as new pickle"""
              import ssbio.utils
              import ssbio.io
              from Bio import SeqIO
              import os.path as op
  
              protein_seqs_pickle_path = op.join(outdir, '{}_protein_withseqs.pckl'.format(g_id))
  
              if ssbio.utils.force_rerun(flag=force_rerun, outfile=protein_seqs_pickle_path):
                  protein_pickle_path = g_to_pickle[g_id]
                  protein_pickle = ssbio.io.load_pickle(protein_pickle_path)
  
                  for strain, info in strain_infodict.items():
                      strain_sequences = SeqIO.index(info['genome_path'], 'fasta')
                      strain_gene_functional = info['functional_genes'][g_id]
                      if strain_gene_functional:
                          # Pull the gene ID of the strain from the orthology matrix
                          strain_gene_key = orth_matrix.at[g_id, strain]
                          new_id = '{}_{}'.format(g_id, strain)
                          if protein_pickle.sequences.has_id(new_id):
                              continue
                          protein_pickle.load_manual_sequence(seq=strain_sequences[strain_gene_key],
                                                              ident=new_id,
                                                              set_as_representative=False)
                  protein_pickle.save_pickle(outfile=protein_seqs_pickle_path)
  
              return g_id, protein_seqs_pickle_path
  
          if sc:
              genes_rdd = sc.parallelize(g_ids)
              result = genes_rdd.map(_load_sequences_to_reference_gene_sc).collect()
          else:
              result = []
              for g in tqdm(g_ids):
                  result.append(self._load_sequences_to_reference_gene(g, force_rerun))
  
          log.info('Storing paths to new Protein objects in self.gene_protein_pickles...')
          updated = []
          for g_id, protein_pickle in result:
              self.gene_protein_pickles[g_id] = protein_pickle
              updated.append(g_id)
          not_updated = set(list(self.gene_protein_pickles.keys())).difference(updated)
          log.info('No change to {} genes, removing from gene_protein_pickles'.format(len(not_updated)))
          log.debug(not_updated)
          for rem in not_updated:
              del self.gene_protein_pickles[rem]