docs: def _align_orthologous_gene_pairwise(self, g_id, gapopen=10, gapextend=0.5, engine='needle', parse=True, force_rerun=False):
          """Align orthologous strain sequences to representative Protein sequence, save as new pickle"""
          protein_seqs_aln_pickle_path = op.join(self.sequences_by_gene_dir, '{}_protein_withseqs_dis_aln.pckl'.format(g_id))
  
          if ssbio.utils.force_rerun(flag=force_rerun, outfile=protein_seqs_aln_pickle_path):
              protein_seqs_pickle_path = self.gene_protein_pickles[g_id]
              protein_pickle = ssbio.io.load_pickle(protein_seqs_pickle_path)
  
              if not protein_pickle.representative_sequence:
                  log.error('{}: no representative sequence to align to'.format(g_id))
                  return
  
              if len(protein_pickle.sequences) < 1:
                  log.error('{}: no other sequences to align to'.format(g_id))
                  return
  
              alignment_dir = op.join(self.sequences_by_gene_dir, g_id)
              ssbio.utils.make_dir(alignment_dir)
              protein_pickle.pairwise_align_sequences_to_representative(gapopen=gapopen, gapextend=gapextend,
                                                                        engine=engine, outdir=alignment_dir,
                                                                        parse=parse, force_rerun=force_rerun)
              protein_pickle.save_pickle(outfile=protein_seqs_aln_pickle_path)
  
          return g_id, protein_seqs_aln_pickle_path