I think it may be better to express this as a transform on qual then? I think enumerating subclasses here will make for a difficult object hierarchy later, unless I'm thinking about this wrong? The conceptual difference is then the logic for determining which score is used would then need to be placed outside of this object, and thus prior to the creation of the generators, which will lead to replication in code for interrogating the contents of the file-like objects representing the fastq data.

Could you describe further what you don't like about the using the conditional here? It does have expansion capability via ``elif`` and it won't be a performance burden as this method is only called once. I'm definitely open to doing this differently, and I do think one possibility would be to express them as transforms on qual which are already supported in the base class (though possibly a more expensive route), but I'd like to better understand the specific concerns about this approach because I worry I might be misunderstanding something basic here.