School of Computer Science, Carleton University, Ottawa, Ontario, Canada, Sydney Brenner Institute for Molecular Bioscience and School of Electrical and Information Engineering, University of the Witwatersrand, Johannesburg, South Africa.