Counterdiffusion methods applied to protein crystallization