Review of alignment and SNP calling algorithms for next-generation sequencing data