Improving and validating computational algorithms for the assembly, clustering, and taxonomic classification of microbial communities