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