INNER CODE UNIT · Python
are_sequence_names_unique
nickjcroucher/gubbins · python/gubbins/ValidateFastaAlignment.py:69
def are_sequence_names_unique(self):
any_modified_names = False
with open(self.input_filename) as input_handle:
alignment = AlignIO.read(input_handle, "fasta")
sequence_names = []
for record in alignment:
# Remove disallowed characters
if '#' in record.name or ':' in record.name:
record.name = process_sequence_names(record.name)
record.id = process_sequence_names(record.id)
record.description = process_sequence_names(record.description)
any_modified_names = True
# Store modified names
sequence_names.append(record.name)
duplicate_sequence_list = [k for k,v in list(Counter(sequence_names).items()) if v>1]
if duplicate_sequence_list != []:
print("Duplicate sequences found after name processing:")
for dup in duplicate_sequence_list: