@property<EOL><INDENT>def all_sample_keys(self) -> List[str]:<DEDENT>
all_keys: List[str] = []<EOL>for key in chain.from_iterable([sample.keys() for sample in self]):<EOL><INDENT>if key not in all_keys:<EOL><INDENT>all_keys.append(key)<EOL><DEDENT><DEDENT>return all_keys<EOL>
Return the unique keys of all samples in this :class:`SampleSheet`.

        The keys are discovered first by the order of samples and second by
        the order of keys upon those samples.