Principles for computational design of antibodies