docs: def map_resnum_a_to_resnum_b(resnums, a_aln, b_aln):
      """Map a residue number in a sequence to the corresponding residue number in an aligned sequence.
  
      Examples:
      >>> map_resnum_a_to_resnum_b([1,2,3], '--ABCDEF', 'XXABCDEF')
      {1: 3, 2: 4, 3: 5}
      >>> map_resnum_a_to_resnum_b(5, '--ABCDEF', 'XXABCDEF')
      {5: 7}
      >>> map_resnum_a_to_resnum_b(5, 'ABCDEF', 'ABCD--')
      {}
      >>> map_resnum_a_to_resnum_b(5, 'ABCDEF--', 'ABCD--GH')
      {}
      >>> map_resnum_a_to_resnum_b([9,10], '--MKCDLHRLE-E', 'VSNEYSFEGYKLD')
      {9: 11, 10: 13}
  
      Args:
          resnums (int, list): Residue number or numbers in the first aligned sequence
          a_aln (str, Seq, SeqRecord): Aligned sequence string
          b_aln (str, Seq, SeqRecord): Aligned sequence string
  
      Returns:
          int: Residue number in the second aligned sequence
      """
      resnums = ssbio.utils.force_list(resnums)
  
      aln_df = get_alignment_df(a_aln, b_aln)
  
      maps = aln_df[aln_df.id_a_pos.isin(resnums)]
  
      able_to_map_to_b = maps[pd.notnull(maps.id_b_pos)]
      successful_map_from_a = able_to_map_to_b.id_a_pos.values.tolist()
  
      mapping = dict([(int(a), int(b)) for a,b in zip(able_to_map_to_b.id_a_pos, able_to_map_to_b.id_b_pos)])
  
      cant_map = list(set(resnums).difference(successful_map_from_a))
      if len(cant_map) > 0:
          log.warning('Unable to map residue numbers {} in first sequence to second'.format(cant_map))
  
      return mapping