Ancestral protein reconstruction: techniques and applications