Cooperative programming in crystallography