Unfolding experiment procedure: At the ipython command line (use -pylab option for easy plotting) >>> import unfold >>> u = unfold.unfold(controlTemp=False) Approach the surface >>> u.stepApproach(setpoint=1.0) Hold down during approach to keep O-ring from lifting the head. Diagnose by watching under video-microscope: head movement shifts picture. Alternatively, use the flexible S-crossectioned "o-rings" or scrunchies to clamp head on tighter ;). Wiggle for interference just off the surface >>> u.stepAway(); u.stepAway(); u.stepAway() >>> import z_piezo_utils >>> z_piezo_utils.wiggleForInterferenceMin(u.zp, wig_freq=1.0) Calibrate >>> import calibcant.calibrate >>> calibcant.config.DEFAULT_TEMP = 25 # degrees C >>> calibcant.calibrate.calib(stepper=u.step, zpiezo=u.zp, push_depth=90) push_depth is in nm. There are a host of other keyword arguments to calib. See them all with >>> calibcant.calibrate.calib._kwargs(calibcant.calibrate.calib) Tweak coarse surface position (these are stepper-backlash protected functions) >>> u.stepCloser() >>> u.stepAway() Unfold a protein >>> u.unfold(rel_setpoint=2, nmDist=1400,...) There's also a convenience function `loop_rates` >>> rates = [250, 500, 750, 1000] >>> unfold.loop_rates(u, rates=rates, num_loops=10, die_file="~/die", rel_setpoint=1, nmDist=800, sBindTime=2, ...) which unfolds at each rate 10 times, unless ~/die exist, in which case it stops nicely. rel_setpoint, nmDist, sBindTime, and other additional options are just passed on to unfold.unfold(). Modules : see unfold.png Remember, >>> help(whatever) is your friend in Python, and $ man whatever and $ whatever --help are your friends in a shell.