Models and algorithms applied to metabolism: From revealing the responses to perturbations towards the design of microbial consortia