A bottom-up approach for the de novo design of functional proteins