Bowtie2 is looking excellent. Supporting .bz2 and .gz compression natively is awesome. But one drawback is that it doesn't automatically determine whether the input is FASTQ or FASTA or RAW. This would be a simple fix (as you are checking anyway, and abort if you don't see '@' or '>' or 'AGTCN') ?
We have 1000s of bacterial data sets, some .fq, some .fa, some compressed etc. so this would mean a huge decrease in effort. We recently added -fmtAuto option to Velvet to do the same auto-detection.
Thank you for your consideration.