Computational Protein Design With Multiple Structural And Functional Constraints