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.
- fibsem-0.3.0a0/.github/workflows/docs.yml +18 -0
- fibsem-0.3.0a0/.github/workflows/python-package.yml +31 -0
- fibsem-0.3.0a0/.gitignore +64 -0
- fibsem-0.3.0a0/CHANGES.md +82 -0
- fibsem-0.3.0a0/INSTALLATION.md +168 -0
- fibsem-0.3.0a0/LICENSE +21 -0
- fibsem-0.3.0a0/PKG-INFO +175 -0
- fibsem-0.3.0a0/README.md +139 -0
- fibsem-0.3.0a0/example/autolamella.py +116 -0
- fibsem-0.3.0a0/example/example.ipynb +598 -0
- fibsem-0.3.0a0/example/example.py +30 -0
- fibsem-0.3.0a0/example/example_imaging.py +57 -0
- fibsem-0.3.0a0/example/example_milling.py +73 -0
- fibsem-0.3.0a0/example/example_movement.py +78 -0
- fibsem-0.3.0a0/example/lithography.py +95 -0
- fibsem-0.3.0a0/example/profile.npy +0 -0
- fibsem-0.3.0a0/example/protocol_autolamella.yaml +40 -0
- fibsem-0.3.0a0/example/protocol_lithography.yaml +16 -0
- fibsem-0.3.0a0/example/protocol_slice_and_view.yaml +11 -0
- fibsem-0.3.0a0/example/slice_and_view.py +72 -0
- fibsem-0.3.0a0/external/application_files/autolamella.xml +72 -0
- fibsem-0.3.0a0/external/application_files/cryo_Pt_dep.xml +16 -0
- fibsem-0.3.0a0/fibsem/__init__.py +8 -0
- fibsem-0.3.0a0/fibsem/acquire.py +287 -0
- fibsem-0.3.0a0/fibsem/alignment.py +489 -0
- fibsem-0.3.0a0/fibsem/alignment2.py +468 -0
- fibsem-0.3.0a0/fibsem/calibration.py +324 -0
- fibsem-0.3.0a0/fibsem/chat/.gitignore +6 -0
- fibsem-0.3.0a0/fibsem/chat/main.py +56 -0
- fibsem-0.3.0a0/fibsem/chat/requirements.txt +8 -0
- fibsem-0.3.0a0/fibsem/config/deposition.dbp +0 -0
- fibsem-0.3.0a0/fibsem/config/positions.yaml +70 -0
- fibsem-0.3.0a0/fibsem/config/protocol.yaml +134 -0
- fibsem-0.3.0a0/fibsem/config/system.yaml +79 -0
- fibsem-0.3.0a0/fibsem/config.py +199 -0
- fibsem-0.3.0a0/fibsem/configuration.py +125 -0
- fibsem-0.3.0a0/fibsem/constants.py +29 -0
- fibsem-0.3.0a0/fibsem/conversions.py +147 -0
- fibsem-0.3.0a0/fibsem/db/app.py +365 -0
- fibsem-0.3.0a0/fibsem/db/config.yaml +8 -0
- fibsem-0.3.0a0/fibsem/db/notebook.ipynb +829 -0
- fibsem-0.3.0a0/fibsem/db/util.py +217 -0
- fibsem-0.3.0a0/fibsem/detection/__init__.py +0 -0
- fibsem-0.3.0a0/fibsem/detection/config-autolamella-waffle.yml +34 -0
- fibsem-0.3.0a0/fibsem/detection/config-autoliftout-dm-embryo.yml +34 -0
- fibsem-0.3.0a0/fibsem/detection/detection.py +1385 -0
- fibsem-0.3.0a0/fibsem/detection/evaluation.py +410 -0
- fibsem-0.3.0a0/fibsem/detection/run_evaluation.py +52 -0
- fibsem-0.3.0a0/fibsem/detection/test_image.tif +0 -0
- fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_00.tif +0 -0
- fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_01.tif +0 -0
- fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_02.tif +0 -0
- fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_03.tif +0 -0
- fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_04.tif +0 -0
- fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_05.tif +0 -0
- fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_06.tif +0 -0
- fibsem-0.3.0a0/fibsem/detection/test_images/serial/serial_liftout_mask_07.tif +0 -0
- fibsem-0.3.0a0/fibsem/detection/test_images/test_needle_mask.tif +0 -0
- fibsem-0.3.0a0/fibsem/detection/test_images/test_needle_mask2.tif +0 -0
- fibsem-0.3.0a0/fibsem/detection/test_images/test_needle_mask3.tif +0 -0
- fibsem-0.3.0a0/fibsem/detection/utils.py +259 -0
- fibsem-0.3.0a0/fibsem/gis.py +83 -0
- fibsem-0.3.0a0/fibsem/imaging/.gitkeep +0 -0
- fibsem-0.3.0a0/fibsem/imaging/__init__.py +0 -0
- fibsem-0.3.0a0/fibsem/imaging/_tile.py +428 -0
- fibsem-0.3.0a0/fibsem/imaging/masks.py +249 -0
- fibsem-0.3.0a0/fibsem/imaging/utils.py +67 -0
- fibsem-0.3.0a0/fibsem/microscope.py +5813 -0
- fibsem-0.3.0a0/fibsem/milling.py +660 -0
- fibsem-0.3.0a0/fibsem/movement.py +85 -0
- fibsem-0.3.0a0/fibsem/patterning.py +1181 -0
- fibsem-0.3.0a0/fibsem/segmentation/README.md +170 -0
- fibsem-0.3.0a0/fibsem/segmentation/__init__.py +0 -0
- fibsem-0.3.0a0/fibsem/segmentation/_nnunet.py +372 -0
- fibsem-0.3.0a0/fibsem/segmentation/augmentation.ipynb +188 -0
- fibsem-0.3.0a0/fibsem/segmentation/config-autolamella-mega-v4-xl.yml +25 -0
- fibsem-0.3.0a0/fibsem/segmentation/config-autolamella-mega-v4.yml +25 -0
- fibsem-0.3.0a0/fibsem/segmentation/config-autolamella-waffle4.yml +12 -0
- fibsem-0.3.0a0/fibsem/segmentation/config.py +31 -0
- fibsem-0.3.0a0/fibsem/segmentation/config.yml +12 -0
- fibsem-0.3.0a0/fibsem/segmentation/dataset.py +215 -0
- fibsem-0.3.0a0/fibsem/segmentation/docs/example_napari.png +0 -0
- fibsem-0.3.0a0/fibsem/segmentation/docs/imgs/combined/combined.jpg +0 -0
- fibsem-0.3.0a0/fibsem/segmentation/docs/imgs/labelled/label.tif +0 -0
- fibsem-0.3.0a0/fibsem/segmentation/docs/imgs/raw/image.tif +0 -0
- fibsem-0.3.0a0/fibsem/segmentation/example.ipynb +78 -0
- fibsem-0.3.0a0/fibsem/segmentation/inference.py +103 -0
- fibsem-0.3.0a0/fibsem/segmentation/model.py +206 -0
- fibsem-0.3.0a0/fibsem/segmentation/models/.gitkeep +0 -0
- fibsem-0.3.0a0/fibsem/segmentation/nnunet_model.py +94 -0
- fibsem-0.3.0a0/fibsem/segmentation/onnx_model.py +106 -0
- fibsem-0.3.0a0/fibsem/segmentation/requirements.txt +6 -0
- fibsem-0.3.0a0/fibsem/segmentation/sam_model.py +66 -0
- fibsem-0.3.0a0/fibsem/segmentation/test_image.tif +0 -0
- fibsem-0.3.0a0/fibsem/segmentation/train.py +299 -0
- fibsem-0.3.0a0/fibsem/segmentation/utils.py +413 -0
- fibsem-0.3.0a0/fibsem/structures.py +2170 -0
- fibsem-0.3.0a0/fibsem/tools/_parser.py +72 -0
- fibsem-0.3.0a0/fibsem/tools/run_manipulator_calibration.py +35 -0
- fibsem-0.3.0a0/fibsem/tools/run_split_dataset.py +57 -0
- fibsem-0.3.0a0/fibsem/tools/telemetry.py +141 -0
- fibsem-0.3.0a0/fibsem/ui/.gitkeep +0 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemAlignmentWidget.py +188 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemCryoSputterWidget.py +76 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemDetectionUI.py +256 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemDetectionWidget.py +518 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemEmbeddedDetectionWidget.py +350 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemFeatureLabellingUI.py +525 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemGISWidget.py +207 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemImageSettingsWidget.py +718 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemImageViewer.py +258 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemLabellingUI.py +583 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemManipulatorWidget.py +288 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemMicroscopeConfigurationWidget.py +341 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemMillingWidget.py +839 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemMinimapWidget.py +787 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemModelTrainingWidget.py +189 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemMovementWidget.py +448 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemMultiChemWidget.py +88 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemPositionsWidget.py +163 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemSegmentationModelWidget.py +126 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemSystemSetupWidget.py +205 -0
- fibsem-0.3.0a0/fibsem/ui/FibsemUI.py +284 -0
- fibsem-0.3.0a0/fibsem/ui/__init__.py +0 -0
- fibsem-0.3.0a0/fibsem/ui/_stylesheets.py +63 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/CurrentAlignmentWidget.py +73 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/CurrentAlignmentWidget.ui +113 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemCryoSputterWidget.py +106 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemCryoSputterWidget.ui +162 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemDetectionWidget.py +182 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemDetectionWidget.ui +295 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemEmbeddedDetectionWidget.py +94 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemEmbeddedDetectionWidget.ui +150 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemExperimentWidget.ui +93 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemGISWidget.py +112 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemGISWidget.ui +172 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemLabellingUI.py +121 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemLabellingUI.ui +200 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemManipulatorWidget.py +127 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemManipulatorWidget.ui +206 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMillingWidget.py +255 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMillingWidget.ui +439 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMinimapWidget.py +346 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMinimapWidget.ui +585 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemModelTrainingWidge.ui +110 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemModelTrainingWidget.py +188 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemModelTrainingWidget.ui +280 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMovementWidget.py +199 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMovementWidget.ui +340 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMultiChemWidget.py +86 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemMultiChemWidget.ui +116 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemPositionsWidget.py +79 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemPositionsWidget.ui +110 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSegmentationModelWidget.py +58 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSegmentationModelWidget.ui +81 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSettingUI.py +299 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSettings.py +284 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSettingsUI.ui +470 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSystemSetupWidget.py +64 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemSystemSetupWidget.ui +98 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemUI.py +75 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/FibsemUI.ui +110 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/ImageSettingsWidget.py +304 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/ImageSettingsWidget.ui +514 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/detection_dialog.py +93 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/detection_dialog.ui +191 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/image_viewer.py +482 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/image_viewer.ui +773 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/needle_popup.py +30 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/needle_popup.ui +28 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/user_dialog.py +47 -0
- fibsem-0.3.0a0/fibsem/ui/qtdesigner_files/user_dialog.ui +95 -0
- fibsem-0.3.0a0/fibsem/ui/utils.py +829 -0
- fibsem-0.3.0a0/fibsem/ui/windows.py +138 -0
- fibsem-0.3.0a0/fibsem/utils.py +650 -0
- fibsem-0.3.0a0/fibsem/validation.py +291 -0
- fibsem-0.3.0a0/fibsem.egg-info/PKG-INFO +175 -0
- fibsem-0.3.0a0/fibsem.egg-info/SOURCES.txt +197 -0
- fibsem-0.3.0a0/fibsem.egg-info/dependency_links.txt +1 -0
- fibsem-0.3.0a0/fibsem.egg-info/entry_points.txt +5 -0
- fibsem-0.3.0a0/fibsem.egg-info/requires.txt +20 -0
- fibsem-0.3.0a0/fibsem.egg-info/top_level.txt +1 -0
- fibsem-0.3.0a0/mkdocs.yml +16 -0
- fibsem-0.3.0a0/requirements.txt +20 -0
- fibsem-0.3.0a0/scripts/.gitkeep +0 -0
- fibsem-0.3.0a0/scripts/install.bat +4 -0
- fibsem-0.3.0a0/scripts/install.sh +6 -0
- fibsem-0.3.0a0/scripts/run.sh +2 -0
- fibsem-0.3.0a0/scripts/run_ui.bat +4 -0
- fibsem-0.3.0a0/scripts/shortcut.py +20 -0
- fibsem-0.3.0a0/setup.cfg +33 -0
- fibsem-0.3.0a0/setup.py +2 -0
- fibsem-0.3.0a0/tests/test_config_loading.py +145 -0
- fibsem-0.3.0a0/tests/test_conversions.py +188 -0
- fibsem-0.3.0a0/tests/test_detection.py +44 -0
- fibsem-0.3.0a0/tests/test_example.py +6 -0
- fibsem-0.3.0a0/tests/test_movement.py +29 -0
- 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.
|
fibsem-0.3.0a0/PKG-INFO
ADDED
|
@@ -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 :)
|