fibsem 0.3.0a0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (198) hide show
  1. fibsem-0.3.0a0/.github/workflows/docs.yml +18 -0
  2. fibsem-0.3.0a0/.github/workflows/python-package.yml +31 -0
  3. fibsem-0.3.0a0/.gitignore +64 -0
  4. fibsem-0.3.0a0/CHANGES.md +82 -0
  5. fibsem-0.3.0a0/INSTALLATION.md +168 -0
  6. fibsem-0.3.0a0/LICENSE +21 -0
  7. fibsem-0.3.0a0/PKG-INFO +175 -0
  8. fibsem-0.3.0a0/README.md +139 -0
  9. fibsem-0.3.0a0/example/autolamella.py +116 -0
  10. fibsem-0.3.0a0/example/example.ipynb +598 -0
  11. fibsem-0.3.0a0/example/example.py +30 -0
  12. fibsem-0.3.0a0/example/example_imaging.py +57 -0
  13. fibsem-0.3.0a0/example/example_milling.py +73 -0
  14. fibsem-0.3.0a0/example/example_movement.py +78 -0
  15. fibsem-0.3.0a0/example/lithography.py +95 -0
  16. fibsem-0.3.0a0/example/profile.npy +0 -0
  17. fibsem-0.3.0a0/example/protocol_autolamella.yaml +40 -0
  18. fibsem-0.3.0a0/example/protocol_lithography.yaml +16 -0
  19. fibsem-0.3.0a0/example/protocol_slice_and_view.yaml +11 -0
  20. fibsem-0.3.0a0/example/slice_and_view.py +72 -0
  21. fibsem-0.3.0a0/external/application_files/autolamella.xml +72 -0
  22. fibsem-0.3.0a0/external/application_files/cryo_Pt_dep.xml +16 -0
  23. fibsem-0.3.0a0/fibsem/__init__.py +8 -0
  24. fibsem-0.3.0a0/fibsem/acquire.py +287 -0
  25. fibsem-0.3.0a0/fibsem/alignment.py +489 -0
  26. fibsem-0.3.0a0/fibsem/alignment2.py +468 -0
  27. fibsem-0.3.0a0/fibsem/calibration.py +324 -0
  28. fibsem-0.3.0a0/fibsem/chat/.gitignore +6 -0
  29. fibsem-0.3.0a0/fibsem/chat/main.py +56 -0
  30. fibsem-0.3.0a0/fibsem/chat/requirements.txt +8 -0
  31. fibsem-0.3.0a0/fibsem/config/deposition.dbp +0 -0
  32. fibsem-0.3.0a0/fibsem/config/positions.yaml +70 -0
  33. fibsem-0.3.0a0/fibsem/config/protocol.yaml +134 -0
  34. fibsem-0.3.0a0/fibsem/config/system.yaml +79 -0
  35. fibsem-0.3.0a0/fibsem/config.py +199 -0
  36. fibsem-0.3.0a0/fibsem/configuration.py +125 -0
  37. fibsem-0.3.0a0/fibsem/constants.py +29 -0
  38. fibsem-0.3.0a0/fibsem/conversions.py +147 -0
  39. fibsem-0.3.0a0/fibsem/db/app.py +365 -0
  40. fibsem-0.3.0a0/fibsem/db/config.yaml +8 -0
  41. fibsem-0.3.0a0/fibsem/db/notebook.ipynb +829 -0
  42. fibsem-0.3.0a0/fibsem/db/util.py +217 -0
  43. fibsem-0.3.0a0/fibsem/detection/__init__.py +0 -0
  44. fibsem-0.3.0a0/fibsem/detection/config-autolamella-waffle.yml +34 -0
  45. fibsem-0.3.0a0/fibsem/detection/config-autoliftout-dm-embryo.yml +34 -0
  46. fibsem-0.3.0a0/fibsem/detection/detection.py +1385 -0
  47. fibsem-0.3.0a0/fibsem/detection/evaluation.py +410 -0
  48. fibsem-0.3.0a0/fibsem/detection/run_evaluation.py +52 -0
  49. fibsem-0.3.0a0/fibsem/detection/test_image.tif +0 -0
  50. fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_00.tif +0 -0
  51. fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_01.tif +0 -0
  52. fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_02.tif +0 -0
  53. fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_03.tif +0 -0
  54. fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_04.tif +0 -0
  55. fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_05.tif +0 -0
  56. fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_06.tif +0 -0
  57. fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_07.tif +0 -0
  58. fibsem-0.3.0a0/fibsem/detection/test_images/test_needle_mask.tif +0 -0
  59. fibsem-0.3.0a0/fibsem/detection/test_images/test_needle_mask2.tif +0 -0
  60. fibsem-0.3.0a0/fibsem/detection/test_images/test_needle_mask3.tif +0 -0
  61. fibsem-0.3.0a0/fibsem/detection/utils.py +259 -0
  62. fibsem-0.3.0a0/fibsem/gis.py +83 -0
  63. fibsem-0.3.0a0/fibsem/imaging/.gitkeep +0 -0
  64. fibsem-0.3.0a0/fibsem/imaging/__init__.py +0 -0
  65. fibsem-0.3.0a0/fibsem/imaging/_tile.py +428 -0
  66. fibsem-0.3.0a0/fibsem/imaging/masks.py +249 -0
  67. fibsem-0.3.0a0/fibsem/imaging/utils.py +67 -0
  68. fibsem-0.3.0a0/fibsem/microscope.py +5813 -0
  69. fibsem-0.3.0a0/fibsem/milling.py +660 -0
  70. fibsem-0.3.0a0/fibsem/movement.py +85 -0
  71. fibsem-0.3.0a0/fibsem/patterning.py +1181 -0
  72. fibsem-0.3.0a0/fibsem/segmentation/README.md +170 -0
  73. fibsem-0.3.0a0/fibsem/segmentation/__init__.py +0 -0
  74. fibsem-0.3.0a0/fibsem/segmentation/_nnunet.py +372 -0
  75. fibsem-0.3.0a0/fibsem/segmentation/augmentation.ipynb +188 -0
  76. fibsem-0.3.0a0/fibsem/segmentation/config-autolamella-mega-v4-xl.yml +25 -0
  77. fibsem-0.3.0a0/fibsem/segmentation/config-autolamella-mega-v4.yml +25 -0
  78. fibsem-0.3.0a0/fibsem/segmentation/config-autolamella-waffle4.yml +12 -0
  79. fibsem-0.3.0a0/fibsem/segmentation/config.py +31 -0
  80. fibsem-0.3.0a0/fibsem/segmentation/config.yml +12 -0
  81. fibsem-0.3.0a0/fibsem/segmentation/dataset.py +215 -0
  82. fibsem-0.3.0a0/fibsem/segmentation/docs/example_napari.png +0 -0
  83. fibsem-0.3.0a0/fibsem/segmentation/docs/imgs/combined/combined.jpg +0 -0
  84. fibsem-0.3.0a0/fibsem/segmentation/docs/imgs/labelled/label.tif +0 -0
  85. fibsem-0.3.0a0/fibsem/segmentation/docs/imgs/raw/image.tif +0 -0
  86. fibsem-0.3.0a0/fibsem/segmentation/example.ipynb +78 -0
  87. fibsem-0.3.0a0/fibsem/segmentation/inference.py +103 -0
  88. fibsem-0.3.0a0/fibsem/segmentation/model.py +206 -0
  89. fibsem-0.3.0a0/fibsem/segmentation/models/.gitkeep +0 -0
  90. fibsem-0.3.0a0/fibsem/segmentation/nnunet_model.py +94 -0
  91. fibsem-0.3.0a0/fibsem/segmentation/onnx_model.py +106 -0
  92. fibsem-0.3.0a0/fibsem/segmentation/requirements.txt +6 -0
  93. fibsem-0.3.0a0/fibsem/segmentation/sam_model.py +66 -0
  94. fibsem-0.3.0a0/fibsem/segmentation/test_image.tif +0 -0
  95. fibsem-0.3.0a0/fibsem/segmentation/train.py +299 -0
  96. fibsem-0.3.0a0/fibsem/segmentation/utils.py +413 -0
  97. fibsem-0.3.0a0/fibsem/structures.py +2170 -0
  98. fibsem-0.3.0a0/fibsem/tools/_parser.py +72 -0
  99. fibsem-0.3.0a0/fibsem/tools/run_manipulator_calibration.py +35 -0
  100. fibsem-0.3.0a0/fibsem/tools/run_split_dataset.py +57 -0
  101. fibsem-0.3.0a0/fibsem/tools/telemetry.py +141 -0
  102. fibsem-0.3.0a0/fibsem/ui/.gitkeep +0 -0
  103. fibsem-0.3.0a0/fibsem/ui/FibsemAlignmentWidget.py +188 -0
  104. fibsem-0.3.0a0/fibsem/ui/FibsemCryoSputterWidget.py +76 -0
  105. fibsem-0.3.0a0/fibsem/ui/FibsemDetectionUI.py +256 -0
  106. fibsem-0.3.0a0/fibsem/ui/FibsemDetectionWidget.py +518 -0
  107. fibsem-0.3.0a0/fibsem/ui/FibsemEmbeddedDetectionWidget.py +350 -0
  108. fibsem-0.3.0a0/fibsem/ui/FibsemFeatureLabellingUI.py +525 -0
  109. fibsem-0.3.0a0/fibsem/ui/FibsemGISWidget.py +207 -0
  110. fibsem-0.3.0a0/fibsem/ui/FibsemImageSettingsWidget.py +718 -0
  111. fibsem-0.3.0a0/fibsem/ui/FibsemImageViewer.py +258 -0
  112. fibsem-0.3.0a0/fibsem/ui/FibsemLabellingUI.py +583 -0
  113. fibsem-0.3.0a0/fibsem/ui/FibsemManipulatorWidget.py +288 -0
  114. fibsem-0.3.0a0/fibsem/ui/FibsemMicroscopeConfigurationWidget.py +341 -0
  115. fibsem-0.3.0a0/fibsem/ui/FibsemMillingWidget.py +839 -0
  116. fibsem-0.3.0a0/fibsem/ui/FibsemMinimapWidget.py +787 -0
  117. fibsem-0.3.0a0/fibsem/ui/FibsemModelTrainingWidget.py +189 -0
  118. fibsem-0.3.0a0/fibsem/ui/FibsemMovementWidget.py +448 -0
  119. fibsem-0.3.0a0/fibsem/ui/FibsemMultiChemWidget.py +88 -0
  120. fibsem-0.3.0a0/fibsem/ui/FibsemPositionsWidget.py +163 -0
  121. fibsem-0.3.0a0/fibsem/ui/FibsemSegmentationModelWidget.py +126 -0
  122. fibsem-0.3.0a0/fibsem/ui/FibsemSystemSetupWidget.py +205 -0
  123. fibsem-0.3.0a0/fibsem/ui/FibsemUI.py +284 -0
  124. fibsem-0.3.0a0/fibsem/ui/__init__.py +0 -0
  125. fibsem-0.3.0a0/fibsem/ui/_stylesheets.py +63 -0
  126. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/CurrentAlignmentWidget.py +73 -0
  127. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/CurrentAlignmentWidget.ui +113 -0
  128. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemCryoSputterWidget.py +106 -0
  129. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemCryoSputterWidget.ui +162 -0
  130. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemDetectionWidget.py +182 -0
  131. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemDetectionWidget.ui +295 -0
  132. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemEmbeddedDetectionWidget.py +94 -0
  133. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemEmbeddedDetectionWidget.ui +150 -0
  134. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemExperimentWidget.ui +93 -0
  135. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemGISWidget.py +112 -0
  136. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemGISWidget.ui +172 -0
  137. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemLabellingUI.py +121 -0
  138. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemLabellingUI.ui +200 -0
  139. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemManipulatorWidget.py +127 -0
  140. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemManipulatorWidget.ui +206 -0
  141. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMillingWidget.py +255 -0
  142. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMillingWidget.ui +439 -0
  143. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMinimapWidget.py +346 -0
  144. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMinimapWidget.ui +585 -0
  145. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemModelTrainingWidge.ui +110 -0
  146. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemModelTrainingWidget.py +188 -0
  147. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemModelTrainingWidget.ui +280 -0
  148. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMovementWidget.py +199 -0
  149. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMovementWidget.ui +340 -0
  150. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMultiChemWidget.py +86 -0
  151. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMultiChemWidget.ui +116 -0
  152. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemPositionsWidget.py +79 -0
  153. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemPositionsWidget.ui +110 -0
  154. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSegmentationModelWidget.py +58 -0
  155. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSegmentationModelWidget.ui +81 -0
  156. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSettingUI.py +299 -0
  157. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSettings.py +284 -0
  158. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSettingsUI.ui +470 -0
  159. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSystemSetupWidget.py +64 -0
  160. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSystemSetupWidget.ui +98 -0
  161. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemUI.py +75 -0
  162. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemUI.ui +110 -0
  163. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/ImageSettingsWidget.py +304 -0
  164. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/ImageSettingsWidget.ui +514 -0
  165. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/detection_dialog.py +93 -0
  166. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/detection_dialog.ui +191 -0
  167. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/image_viewer.py +482 -0
  168. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/image_viewer.ui +773 -0
  169. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/needle_popup.py +30 -0
  170. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/needle_popup.ui +28 -0
  171. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/user_dialog.py +47 -0
  172. fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/user_dialog.ui +95 -0
  173. fibsem-0.3.0a0/fibsem/ui/utils.py +829 -0
  174. fibsem-0.3.0a0/fibsem/ui/windows.py +138 -0
  175. fibsem-0.3.0a0/fibsem/utils.py +650 -0
  176. fibsem-0.3.0a0/fibsem/validation.py +291 -0
  177. fibsem-0.3.0a0/fibsem.egg-info/PKG-INFO +175 -0
  178. fibsem-0.3.0a0/fibsem.egg-info/SOURCES.txt +197 -0
  179. fibsem-0.3.0a0/fibsem.egg-info/dependency_links.txt +1 -0
  180. fibsem-0.3.0a0/fibsem.egg-info/entry_points.txt +5 -0
  181. fibsem-0.3.0a0/fibsem.egg-info/requires.txt +20 -0
  182. fibsem-0.3.0a0/fibsem.egg-info/top_level.txt +1 -0
  183. fibsem-0.3.0a0/mkdocs.yml +16 -0
  184. fibsem-0.3.0a0/requirements.txt +20 -0
  185. fibsem-0.3.0a0/scripts/.gitkeep +0 -0
  186. fibsem-0.3.0a0/scripts/install.bat +4 -0
  187. fibsem-0.3.0a0/scripts/install.sh +6 -0
  188. fibsem-0.3.0a0/scripts/run.sh +2 -0
  189. fibsem-0.3.0a0/scripts/run_ui.bat +4 -0
  190. fibsem-0.3.0a0/scripts/shortcut.py +20 -0
  191. fibsem-0.3.0a0/setup.cfg +33 -0
  192. fibsem-0.3.0a0/setup.py +2 -0
  193. fibsem-0.3.0a0/tests/test_config_loading.py +145 -0
  194. fibsem-0.3.0a0/tests/test_conversions.py +188 -0
  195. fibsem-0.3.0a0/tests/test_detection.py +44 -0
  196. fibsem-0.3.0a0/tests/test_example.py +6 -0
  197. fibsem-0.3.0a0/tests/test_movement.py +29 -0
  198. fibsem-0.3.0a0/tests/test_structures.py +1056 -0
@@ -0,0 +1,18 @@
1
+ name: docs
2
+ on:
3
+ push:
4
+ branches:
5
+ - v0.2-stable
6
+ pull_request:
7
+ branches:
8
+ - v0.2-release
9
+ jobs:
10
+ deploy:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v2
14
+ - uses: actions/setup-python@v2
15
+ with:
16
+ python-version: 3.x
17
+ - run: pip install mkdocs-material mkdocstrings-python
18
+ - run: mkdocs gh-deploy --force
@@ -0,0 +1,31 @@
1
+ # This workflow will install Python dependencies, run tests and lint with a variety of Python versions
2
+ # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python
3
+
4
+ name: Python package
5
+
6
+ on:
7
+ pull_request:
8
+ branches: [ "v0.2-release" ]
9
+
10
+ jobs:
11
+ build:
12
+
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ python-version: ["3.9", "3.10"]
18
+
19
+ steps:
20
+ - uses: actions/checkout@v3
21
+ - name: Set up Python ${{ matrix.python-version }}
22
+ uses: actions/setup-python@v3
23
+ with:
24
+ python-version: ${{ matrix.python-version }}
25
+ - name: Install dependencies
26
+ run: |
27
+ python -m pip install --upgrade pip
28
+ python -m pip install -e .
29
+ - name: Test with pytest
30
+ run: |
31
+ pytest
@@ -0,0 +1,64 @@
1
+ *.pyc
2
+ *.egg-info/*
3
+ .vscode/*
4
+ .coverage
5
+ *.code-workspace
6
+ *.log
7
+ scratch/test_image.tif
8
+ *.zarr/*
9
+
10
+ fibsem/wandb/*
11
+
12
+ *.json
13
+ fibsem/segmentation/wandb/*
14
+ fibsem/segmentation/models/*.pt*
15
+ wandb/*
16
+
17
+ fibsem/segmentation/data/*
18
+ fibsem/segmentation/results/*
19
+ fibsem/segmentation/results*/*
20
+
21
+
22
+ site/*
23
+ fibsem\test.tif
24
+ fibsem/000000001.tiff
25
+
26
+ fibsem/test2.tif/label
27
+ fibsem/tests/label
28
+ tests/tests_images
29
+ fibsem/tests/label.tif
30
+ fibsem/tests/None.tif
31
+ fibsem/test_images/*.tif
32
+
33
+ build/*
34
+ fibsem/segmentation/training/*
35
+ scratch/training/*
36
+ fibsem/testing.ipynb
37
+ fibsem/_version.py
38
+ demo_*/*
39
+ scratch/figure/wd*/*
40
+ fibsem/log/data/*
41
+ test_images/test.tif
42
+
43
+ fibsem/detection/notebook.ipynb
44
+
45
+ media/*
46
+ .DS_Store
47
+ fibsem/segmentation/models/**/*.pt*
48
+ fibsem/segmentation/models/*
49
+ example/**/*.tif
50
+ example/demo/*
51
+ fibsem/chat/secret.txt
52
+
53
+ dist/*
54
+ scratch/tile-images/*
55
+ fibsem/log/*
56
+ fibsem/db/fibsem.db
57
+ fibsem/notebook.ipynb
58
+ scratch/health-monitor/*
59
+ example/notebook.ipynb
60
+ fibsem/segmentation/*config*.y*ml
61
+
62
+ fibsem/config/*.yaml
63
+ !fibse/config/microscope-configurations.yaml
64
+ !fibsem/config/user-configurations.yaml
@@ -0,0 +1,82 @@
1
+ # Changes
2
+
3
+ ## v0.2.2 - 31/07/2023
4
+
5
+ ### Highlights
6
+
7
+ - OpenFIBSEM is now available on PyPI. Use pip to install: `pip install fibsem`. On ThermoFisher systems, OpenFIBSEM will automatically find your Autoscript installation if it installed. On Tescan, please install into the same environment as the Automation API.
8
+ - Minimap: Added a minimap widget for collecting tiled images, selecting positions and correlation. Provides an overview of the current stage position and the positions of the selected locations. Also provides an integrated correlation user interface. You can use the minimap to select locations for other applications, such as AutoLamella.
9
+
10
+ ### Features
11
+
12
+ - Added a _safe_absolute_stage_movement. This function will tilt flat before performing large movements to prevent collions.
13
+ - Added cleaning_cross_section and scan_direction to the milling widget user interface.
14
+ - Rectangle Patterns now sputter a 'passes' parameter. This allows you to explicitly set the number of passes the beam will scan.
15
+ - Adjusted the milling widget to allow for the selection of multiple milling stages. This allows you to move multiple stages together.
16
+ - Added automatic logging for alignment data. All alignment data is now logged to a file in the log/crosscorrelation directory. You can change this log directory in the config.
17
+ - Added a cryo sputter widget for automated sputtering in cryo conditions.
18
+ - Added two way projection between image and stage coordinates. This allows you to click on an image and move the stage to that location, as well as project a stage coordinate to an image coordinate (currently located in fibsem.imaging._tile).
19
+ - To move milling stages in the UI, you now need to 'Shift' + 'Left Click' (Was 'Right Click')
20
+ - To move the stage vertically (eucentric_move), you now need to 'Alt' + 'Left Click' (Was previously an option in the UI).
21
+
22
+ ### Fixes / Updates
23
+
24
+ - Fixed an issue where masks were not calculated for alignment.correct_stage_drift.
25
+ - Changed the model checkpoint lookup to search the fibsem/segmentation/models directory instead of expecting an absolute path.
26
+ - Fixed an issue where coordinate system was flipped when moving using a detection.
27
+ - Fixed an issue where milling protocols were being overwritten when setting the milling stages directly. [USER-INTERFACE]
28
+ - The milling widget hfw should now update automatically when changing the imaging settings. [USER-INTERFACE]
29
+ - The user interface won't try to draw the cross hair if no image is available. [USER-INTERFACE]
30
+ - Explicitly converting the last_image to np.uint8 (was np.uint16) [THERMO]
31
+ - Explictly settings the manipulator coordinate system when performing movements [THERMO]
32
+ - Post milling current now set to 30keV: 150 pA instead of 30keV: UHR Imaging [TESCAN]
33
+ - Fixed milling rate conversions, where the milling rate units were not converted correctly [TESCAN]
34
+
35
+ ## 12/07/2023
36
+
37
+ - Added Documentation
38
+ - Added documentation for the detection and labelling widget
39
+ - Added Instructions for installation using python v-env
40
+
41
+ - New features
42
+ - Installation and Running .bat scripts
43
+ - Manipulator positions calibration for TESCAN
44
+ - Microscope positions available in the movement widget
45
+ - Added minimap of microscope positions
46
+ - Added a fibsem version number for development tracking
47
+ - Live chat (experimental)
48
+ - Autoliftout utils
49
+ - GIS Widget for cryo-control of gas injection
50
+ - Embedded detection widget
51
+
52
+ - Fixed bugs
53
+ - fixed issue where parameters were passed incorrectly for milling
54
+ - fixed Eucentric movement where z-direction was flipped
55
+
56
+ - Updated Functionality / Improved Processes
57
+ - system/model yaml files can now be modified from the system widget
58
+ - demo log paths now in fibsem base directory
59
+ - scan/image rotation now saved to microscope state
60
+ - An option to click to move multiple milling stages together is now available
61
+ - Added a crosshair to the images
62
+ - movement of milling pattern now emits a pyqt signal (backend)
63
+ - Manufacturer / model /serial no info can now be accessed/saved
64
+ - Manipulator UI adaptive based on if manipulator is retracted or inserted
65
+ - Enabled granular hardware control for stage and manipulator (backend), eg: disable rotation only
66
+
67
+ ## 24/05/2023
68
+
69
+ - Added new features
70
+ - FIB current alignment
71
+ - Manipulator Controls
72
+ - Measurement tools
73
+ - Segment Anything Labelling
74
+ - Added new milling patterns (Bitmap, Annulus)
75
+ - Separated stage pretilt
76
+ - Fixed bugs
77
+ - Autolamella example
78
+ - Set microscope stage
79
+ - HFW
80
+ - Milling widget
81
+ - Application file/Presets set on startup
82
+ - Import TESCAN image files
@@ -0,0 +1,168 @@
1
+ # Installation Guide
2
+
3
+ ## Dependencies
4
+ * Python 3.9+
5
+ * FIB/SEM microscope (a commercial product by ThermoFisher FEI or TESACN)
6
+ * Autoscript software (a commercial product by ThermoFisher FEI) OR
7
+ * tescanautomation software (a commercial product by TESCAN)
8
+
9
+ ### Python
10
+ Python 3.9+ is required.
11
+ The [Anaconda distribution](https://www.anaconda.com/distribution/)
12
+ of python is recommended.
13
+
14
+ ## Setting up your python virtual environment
15
+ It is also highly recommended to use virtual environments for development,
16
+ see [Managing Conda Environments](https://docs.conda.io/projects/conda/en/latest/user-guide/tasks/manage-environments.html)
17
+ for more information.
18
+ (Optionally, you could use `virtualenv` if you prefer.)
19
+
20
+ Create a new virutal environment from the Anaconda Prompt terminal:
21
+ ```
22
+ cd fibsem
23
+ conda env create -f environment.yml
24
+ conda activate fibsem
25
+ pip install -e .
26
+ ```
27
+
28
+ ### Installation through Python virtualenv
29
+
30
+ Alternatively to using Conda, you may use the Python virtualenv tool to create a virtual environment for the project.
31
+
32
+ Firstly, install python 3.9+ on your system.
33
+ In a terminal window, move to a directory where you would like to place the virtual environment and then create a virtual environment using the following command
34
+ ```
35
+ python -m venv fibsem
36
+ ```
37
+ Once the environment is created, activate the environment using the following command
38
+ ```
39
+ fibsem\Scripts\activate.bat
40
+ ```
41
+ Once activated, move to the fibsem root directory and install fibsem like so
42
+ ```
43
+ pip install -e .
44
+ ```
45
+
46
+ ## Installing Microscope Hardware APIs
47
+
48
+ ## Installing Autoscript
49
+ Autoscript provides an API (application programming interface) for scripting
50
+ control of compatible FEI microscope systems.
51
+ This is a commercial product by Thermo Fisher FEI, please visit their website
52
+ at https://www.thermofisher.com/au/en/home/electron-microscopy.html for information on pricing and installation.
53
+
54
+ We use Autoscript version 4.6.+
55
+
56
+ The version numbers of the python packages Autoscript installs were:
57
+ * autoscript-core 5.12.0
58
+ * autoscript-sdb-microscope-client 4.6.0
59
+ * autoscript-sdb-microscope-client-tests 4.6.0
60
+ * autoscript-toolkit 4.6.0
61
+ * thermoscientific-logging 5.12.0
62
+
63
+ #### Add the autoscript python packages to your `site-packages`
64
+
65
+ To add the AutoScript python packages to your new conda environment, follow these three steps:
66
+
67
+ 1. Find the python environment that was created with your AutoScript installation.
68
+ Typically, you can expect the environment is named 'Autoscript', and its installed packages should be found at:
69
+ `C:\Program Files\Python35\envs\AutoScript\Lib\site-packages\`
70
+
71
+ ***Troubleshooting:** If you're having trouble finding the location AutoScript chose to install its python packages into,*
72
+ *you can open the *default terminal* on your machine (eg: `cmd` for Windows) and type `where python` (Windows) or `which python` (Unix).*
73
+ *The result will be something like `C:\Program Files\Python35\envs\AutoScript\python.exe`.*
74
+ *Navigate to the environment location (in the example here, that's `C:\Program Files\Python35\envs\AutoScript\` *
75
+ *then change directories into `Lib`, and then the `site-packages` directory. This is where the python packages live.*
76
+
77
+ 2. Find the conda environment location you just made called `fibsem`.
78
+ `...conda/envs/fibsem/Lib/site-packages/`
79
+
80
+ *Note: if you used python virtual env to create a virtual environment, the location of the fibsem/Lib/site-packages will be where the virtual environment was created. Where this document mentions the site-packages directory, it is referring to the site-packages directory of the virtual environment.*
81
+
82
+ ***Troubleshooting:** If you're having trouble finding the conda environment location for `fibsem`*
83
+ *you can open the *Anaconda terminal* on your machine and type `where python` (Windows) or `which python` (Unix).*
84
+ *The result will be something like `C:\Users\yourusername\.conda\envs\fibsem\python.exe`*
85
+ *Navigate to the environment location (in the example here, that's `C:\Users\yourusername\.conda\envs\fibsem\` *
86
+ *then change directories into `Lib`, and then the `site-packages` directory.*
87
+ *This is where you want to add copies of the AutoScript python packages.*
88
+
89
+ 3. Make a copy of the relevant AutoScript python packages into the conda environment.
90
+ You will need to copy:
91
+
92
+ * autoscript_core
93
+ * autoscript_core-5.12.0.dist-info
94
+ * autoscript_sdb_microscope_client
95
+ * autoscript_sdb_microscope_client_tests
96
+ * autoscript_sdb_microscope_client_tests-4.6.0.dist-info
97
+ * autoscript_sdb_microscope_client-4.6.0.dist-info
98
+ * autoscript_toolkit
99
+ * autoscript_toolkit-4.6.0.dist-info
100
+ * thermoscientific_logging
101
+ * thermoscientific_logging-5.12.1.dist-info
102
+
103
+
104
+ #### Having problems?
105
+ * Check to see if Autoscript is correctly installed and configured.
106
+ * Check to see if your python environment contains all packages listed in
107
+ the requirements.txt
108
+ * Check that when you call python from the terminal, you get the python
109
+ environment containing the dependencies listed above
110
+ (i.e. you are not using a different python environment)
111
+ * Try cloning the repository and running the unit tests,
112
+ you may want to try installing from the source code.
113
+
114
+ ## Installing Tescanautomation
115
+
116
+ Tescanautomation is a hardware API for controlling TESCAN microscopes. This is a commercially available product from TESCAN. The SDK is available in an .exe file format
117
+
118
+ ### Prerequisites
119
+
120
+ Before beginning this install, please ensure the following
121
+
122
+ - FIBSEM conda environment is installed and setup
123
+ - tescan-automation-sdk-install exe file is ready to go
124
+
125
+ ### Installing the SDK
126
+
127
+ Run the installer exe file. When it asks for the python interpreter, select the one that is on the conda environment and proceed with the install.
128
+
129
+ The package should now be installed successfully
130
+
131
+ ### ***Common Issue with Python Interpreter***
132
+
133
+ If the conda python interpreter cannot be selected from the drop down options, proceed with the install and take note of the path of installed python interpreter.
134
+
135
+ (If no python interpreter can be found in the drop down, install python 3.9+ seperately and run the installation exe again)
136
+
137
+ Once the installation has been completed, navigate to where python is installed on which the SDK has been installed.
138
+
139
+ In there, navigate to
140
+
141
+
142
+ `...\python\lib\site-packages`
143
+
144
+ from this folder, find and copy the following folders:
145
+
146
+ - All folders beginning with `PySide6`
147
+ - All folders beginning with `shiboken`
148
+ - All folders beginning with `tescan`
149
+
150
+ Copy these into the python folder that is set up in the conda environment
151
+
152
+ `...\Anaconda3\envs\fibsem\lib\site-packages`
153
+
154
+ The package should now be installed successfully
155
+
156
+ ### Checking Install
157
+
158
+ To check if the module has been installed properly and can be imported, run the following python code in FIBSEM:
159
+
160
+ ```python
161
+ import sys
162
+ from tescanautomation import Automation
163
+
164
+ print("Tescan Imported Successfully") if "tescanautomation" in sys.modules else print("Tescan Import was unsuccessful")
165
+
166
+ ```
167
+
168
+ If the import or install is unsuccessful, check to see if all the packages have been copied to the right directory.
fibsem-0.3.0a0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2022 DeMarcoLab
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,175 @@
1
+ Metadata-Version: 2.1
2
+ Name: fibsem
3
+ Version: 0.3.0a0
4
+ Summary: a universal api for fibsem control
5
+ Home-page: https://github.com/DeMarcoLab/fibsem
6
+ Author: Patrick Cleeve
7
+ Author-email: Patrick.Cleeve@monash.edu
8
+ Project-URL: Bug Tracker, https://github.com/DeMarcoLab/fibsem/issues
9
+ Classifier: Programming Language :: Python :: 3.9
10
+ Classifier: License :: OSI Approved :: MIT License
11
+ Classifier: Operating System :: OS Independent
12
+ Classifier: Framework :: napari
13
+ Requires-Python: >=3.9
14
+ Description-Content-Type: text/markdown
15
+ License-File: LICENSE
16
+ Requires-Dist: zarr>=2.13.6
17
+ Requires-Dist: dask>=2023.3.0
18
+ Requires-Dist: tifffile>=2021.7.2
19
+ Requires-Dist: numpy>=1.23.5
20
+ Requires-Dist: scipy>=1.10.0
21
+ Requires-Dist: opencv-python>=4.7.0.72
22
+ Requires-Dist: scikit-image>=0.19.3
23
+ Requires-Dist: matplotlib>=3.7.0
24
+ Requires-Dist: napari>=0.4.17
25
+ Requires-Dist: pyqt5>=5.15.9
26
+ Requires-Dist: torch>=2.0.0
27
+ Requires-Dist: torchvision>=0.15.1
28
+ Requires-Dist: segmentation-models-pytorch>=0.3.2
29
+ Requires-Dist: tqdm>=4.65.0
30
+ Requires-Dist: pytest>=7.2.2
31
+ Requires-Dist: petname>=2.6
32
+ Requires-Dist: plotly>=5.14.1
33
+ Requires-Dist: kaleido==0.2.0
34
+ Requires-Dist: matplotlib_scalebar>=0.8.1
35
+ Requires-Dist: transformers>=4.36.2
36
+
37
+ # OpenFIBSEM
38
+
39
+ A universal API for FIBSEM Control, Development and Automation
40
+
41
+ ## Overview
42
+
43
+ OpenFIBSEM is a Python package for controlling and automating FIB/SEM microscopes. It is designed to be a universal API for FIBSEM control, development and automation. OpenFIBSEM is designed to abstract away the details of the microscope and provide a simple, intuitive interface for controlling the microscope, as well as reuseable modules for common workflows and operations. OpenFIBSEM is designed to be extensible and can be easily adapted to support new microscopes.
44
+
45
+ We currently support the [TESCAN Automation SDK](https://www.tescan.com/en/products/automation-sdk/) and [ThermoFisher AutoScript](https://www.tescan.com/en/products/autoscript/). Support for other FIBSEM systems is planned.
46
+
47
+ ## Install
48
+
49
+ ### Install OpenFIBSEM
50
+
51
+ There are several ways to install OpenFIBSEM depending on your application and needs.
52
+
53
+ #### PyPI (For Users)
54
+
55
+ ```bash
56
+ pip install fibsem
57
+ ```
58
+
59
+ #### Github (For Development)
60
+
61
+ Clone this repository, and checkout main:
62
+
63
+ ```bash
64
+ git clone https://github.com/DeMarcoLab/fibsem.git
65
+ ```
66
+
67
+ Install dependencies and package
68
+
69
+ ```bash
70
+ cd fibsem
71
+ conda create -n fibsem python=3.9 pip
72
+ conda activate fibsem
73
+ pip install -e .
74
+
75
+ ```
76
+
77
+ #### Napari Plugin
78
+
79
+ The OpenFIBSEM tools and user interface are also available as a napari plugin:
80
+
81
+ ```bash
82
+ pip install napari-openfibsem
83
+ ```
84
+
85
+ Or use napari plugin manager
86
+
87
+ #### Additional Installation Information
88
+
89
+ For detailed instructions on installation, and installing the commercial microscope APIs, see [Installation Guide](INSTALLATION.md).
90
+
91
+ ## Getting Started
92
+
93
+ To get started, see the example/example.py:
94
+
95
+ Recommended: You can start an offline demo microscope by speciying manufacturer: "Demo" in the system.yaml file (fibsem/config/system.yaml). This will start a demo microscope that you can use to test the API without connecting to a real microscope. To connect to a real microscope, set the ip_address and manufacturer of your microscope in the system.yaml or alternatively, you can pass these arguments to utils.setup_session() directly.
96
+
97
+ This example shows you how to connect to the microscope, take an image with both beams, and then plot.
98
+
99
+ ```python
100
+ from fibsem import utils, acquire
101
+ import matplotlib.pyplot as plt
102
+
103
+ def main():
104
+
105
+ # connect to microscope
106
+ microscope, settings = utils.setup_session(ip_address="localhost", manufacturer="Demo")
107
+
108
+ # take image with both beams
109
+ eb_image, ib_image = acquire.take_reference_images(microscope, settings.image)
110
+
111
+ # show images
112
+ fig, ax = plt.subplots(1, 2, figsize=(7, 5))
113
+ ax[0].imshow(eb_image.data, cmap="gray")
114
+ ax[1].imshow(ib_image.data, cmap="gray")
115
+ plt.show()
116
+
117
+
118
+ if __name__ == "__main__":
119
+ main()
120
+
121
+ ```
122
+
123
+ This example is available as a script in example/example.py.
124
+ For more detailed examples, see the Examples sections below.
125
+
126
+ ## Examples
127
+
128
+ ### Core Functionality
129
+
130
+ For examples of core functionality please see:
131
+
132
+ - example/example_imaging.py: image acqusition
133
+ - example/example_movement.py: stage movement
134
+ - example/example_milling.py: drawing patterns and beam milling
135
+ - example/autolamella.py: recreation of [AutoLamella V1](https://github.com/DeMarcoLab/autolamella) (automated cryo-lamella preparation) in ~150 lines of code
136
+
137
+ Additional example scripts and notebooks are available.
138
+
139
+ ## Projects using OpenFIBSEM
140
+
141
+ We are currently working on a number of projects using OpenFIBSEM. If you are using OpenFIBSEM in your research, please let us know!
142
+
143
+ - [AutoLamella v2: Automated cryo-lamella preparation](www.github.com/DeMarcoLab/autolamella)
144
+ - [Salami: Volume Electron Microscopy](www.github.com/DeMarcoLab/salami)
145
+
146
+ ## Contributing
147
+
148
+ Contributions are welcome! Please open a pull request or issue.
149
+
150
+ ## Docs
151
+
152
+ OpenFIBSEM is a large package with many features. For more detailed documentation, please see the [Documentation Website](https://demarcolab.github.io/openfibsem-docs).
153
+
154
+ ## Citation
155
+
156
+ If you find this work useful, please cite:
157
+
158
+ ```bibtex
159
+ @article{CLEEVE2023107967,
160
+ title = {OpenFIBSEM: A universal API for FIBSEM control},
161
+ journal = {Journal of Structural Biology},
162
+ volume = {215},
163
+ number = {3},
164
+ pages = {107967},
165
+ year = {2023},
166
+ issn = {1047-8477},
167
+ doi = {https://doi.org/10.1016/j.jsb.2023.107967},
168
+ url = {https://www.sciencedirect.com/science/article/pii/S1047847723000308},
169
+ author = {Patrick Cleeve and David Dierickx and Lucile Naegele and Rohit Kannachel and Lachlan Burne and Genevieve Buckley and Sergey Gorelick and James C. Whisstock and Alex {de Marco}},
170
+ keywords = {Focused Ion Beam microscopy, Automation, Python, API, Microscopy, Controller},
171
+ abstract = {This paper introduces OpenFIBSEM, a universal API to control Focused Ion Beam Scanning Electron Microscopes (FIBSEM). OpenFIBSEM aims to improve the programmability and automation of electron microscopy workflows in structural biology research. The API is designed to be cross-platform, composable, and extendable: allowing users to use any portion of OpenFIBSEM to develop or integrate with other software tools. The package provides core functionality such as imaging, movement, milling, and manipulator control, as well as system calibration, alignment, and image analysis modules. Further, a library of reusable user interface components integrated with napari is provided, ensuring easy and efficient application development. OpenFIBSEM currently supports ThermoFisher and TESCAN hardware, with support for other manufacturers planned. To demonstrate the improved automation capabilities enabled by OpenFIBSEM, several example applications that are compatible with multiple hardware manufacturers are discussed. We argue that OpenFIBSEM provides the foundation for a cross-platform operating system and development ecosystem for FIBSEM systems. The API and applications are open-source and available on GitHub (https://github.com/DeMarcoLab/fibsem).}
172
+ }
173
+ ```
174
+
175
+ enjoy :)