def add_descriptor(self, descriptor, role='<STR_LIT:ignore>', group_by_key=False):
descriptor.validate()<EOL>if descriptor.key in self.configuration["<STR_LIT>"]:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>self.configuration['<STR_LIT>'].append(descriptor.as_dict())<EOL>self.configuration["<STR_LIT>"][descriptor.key] = role<EOL>if group_by_key:<EOL><INDENT>self.configuration["<STR_LIT>"].append(descriptor.key)<EOL><DEDENT>
Add a descriptor column.

:param descriptor: A Descriptor instance (e.g., RealDescriptor, InorganicDescriptor, etc.)
:param role: Specify a role (input, output, latentVariable, or ignore)
:param group_by_key: Whether or not to group by this key during cross validation