NOC:Algorithms for Protein Modelling and Engineering