allow for no control input, support fastq and fastq.gz