code: def sort_seq_records(self, seq_records):
          
          for seq_record in seq_records:
              seq_record.voucher_code = seq_record.voucher_code.replace("-", "_")
  
          unsorted_gene_codes = set([i.gene_code for i in seq_records])
          sorted_gene_codes = list(unsorted_gene_codes)
          sorted_gene_codes.sort(key=lambda x: x.lower())
  
          unsorted_voucher_codes = set([i.voucher_code for i in seq_records])
          sorted_voucher_codes = list(unsorted_voucher_codes)
          sorted_voucher_codes.sort(key=lambda x: x.lower())
  
          sorted_seq_records = []
          for gene_code in sorted_gene_codes:
              for voucher_code in sorted_voucher_codes:
                  for seq_record in seq_records:
                      should_be_done = (
                          seq_record.gene_code == gene_code and
                          seq_record.voucher_code == voucher_code
                      )
                      if should_be_done:
                          sorted_seq_records.append(seq_record)
          return sorted_seq_records
docs: Checks that SeqExpandedRecords are sorted by gene_code and then by voucher code.
  
          The dashes in taxon names need to be converted to underscores so the
          dataset will be accepted by Biopython to do format conversions.