Actually, I really think casava handling should be the responsibility of the fastq parser itself. that would solve all the issues. makes the parser a small tad more complex but that is conceptually the best place to do it and ensures data sanity at the earliest possible point.