docs: def get_sequences(options, fasta_file_contents):
      ''' This function returns a dict mapping (pdbid, chain, file_name) tuples to sequences:
            - options is the OptionParser member;
            - fasta_file_contents is a map from input filenames to the associated FASTA file contents.
      '''
      errors = []
      fasta_files_str = ", ".join(fasta_file_contents.keys())
      fasta_records = None
      reverse_mapping = {}
  
      try:
          fasta_records, reverse_mapping = parse_FASTA_files(options, fasta_file_contents)
          if not fasta_records:
              errors.append("No protein sequences found in the FASTA file(s) %s." % fasta_files_str)
      except Exception, e:
          e = '\n'.join([l for l in traceback.format_exc(), str('e') if l.strip()])
          errors.append("Error parsing FASTA file(s) %s:\n%s" % (fasta_files_str, str(e)))
  
      if not fasta_records:
          return None, {}, errors
  
      colorprinter.message('Found %d protein sequence(s).' % len(fasta_records))
      return fasta_records, reverse_mapping, errors