Update unfold_protein to use the new pyafm.storage._load_afm.
[unfold-protein.git] / unfold.py
index ba8440495517d7734dc2e26c15fc76bb4ad46e24..6a84f81bb60f54d2f8136dbcb54ba92d8bf6c119 100755 (executable)
--- a/unfold.py
+++ b/unfold.py
 import os
 import os.path
 
-from calibcant.config import Kelvin as _Kelvin
-from unfold_protein import __version__ as version
-from unfold_protein.afm import get_afm
+import numpy as _numpy
+
+from pyafm.storage import load_afm as _load_afm
+from pyafm.config import Kelvin as _Kelvin
+from unfold_protein import __version__
 from unfold_protein.unfolder import Unfolder
 from unfold_protein.scan import UnfoldScanner
 import unfold_protein.config as _config
@@ -35,7 +37,7 @@ if __name__ == '__main__':
     from argparse import ArgumentParser
 
     parser = ArgumentParser(
-        description='Play a pure tone', version=version)
+        description=__doc__, version=__version__)
     parser.add_argument(
         '-s', '--song',
         help='Path to a song to play when the experiment is complete')
@@ -43,23 +45,29 @@ if __name__ == '__main__':
     args = parser.parse_args()
 
     unfold_config = _config.UnfoldCycleConfig()
-    unfold_config['temperature'] = _config.TemperatureConfig()
-    unfold_config['temperature']['units'] = _Kelvin
     unfold_config['approach'] = _config.ApproachConfig()
     unfold_config['unfold'] = _config.UnfoldConfig()
+    unfold_config['unfold']['distance'] = 900e-9
     unfold_config['save'] = _config.SaveConfig()
     scan_config = _config.ScanConfig()
     scan_config['velocity'] = _config.VelocityScanConfig()
+    #scan_config['velocity']['unfolding velocities'] = _numpy.array([1e-6])
+    scan_config['velocity']['num loops'] = 500
     scan_config['position'] = _config.PositionScanConfig()
 
-    afm,comedi_device = get_afm(with_temperature=False)
-    unfolder = Unfolder(config=unfold_config, afm=afm)
-    scanner = UnfoldScanner(config=scan_config, unfolder=unfolder)
+    devices = []
     try:
+        afm = _load_afm()
+        afm.load_from_config(devices=devices)
+        afm.piezo.zero()
+        unfolder = Unfolder(config=unfold_config, afm=afm)
+        scanner = UnfoldScanner(config=scan_config, unfolder=unfolder)
         scanner.run()
     finally:
-        scanner.move_far_from_surface()
-        comedi_device.close()
+        afm.move_away_from_surface()
+        afm.piezo.zero()
+        for device in devices:
+            device.close()
         if args.song:
             song = os.path.abspath(os.path.expanduser(args.song))
             os.system("aplay '%s'" % song)