a universal api for fibsem control
Project description
fibsemOS
A universal API for FIBSEM Control, Development and Automation
Overview
fibsemOS is a Python package for controlling and automating FIB/SEM microscopes. It provides a universal API for FIBSEM control, development and automation, abstracting away the details of the microscope hardware to provide a simple, intuitive interface. The package includes reusable modules for common workflows and operations, and is extensible to support new microscopes.
We currently aim to support ThermoFisher AutoScript, TESCAN Automation SDK, and Zeiss Python API. Support for other FIBSEM systems is planned.
For more information see the website.
Installation
There are several ways to install fibsemOS depending on your application and needs. Requires Python 3.9+.
PyPI (For Users)
pip install fibsem
Github (For Development)
Clone this repository:
git clone https://github.com/fibsem-os/fibsem-os.git
cd fibsem-os
Install dependencies and package:
conda create -n fibsem python=3.11 pip
conda activate fibsem
pip install -e '.[ui]'
To run:
fibsem-autolamella-ui
Offline Installation
For computers with no internet connection, you can download the dependencies on a separate internet connected computer and transfer it to the Support PC (e.g. via USB).
On internet connected PC (Environment should match python version):
mkdir pkg
cd pkg
pip download fibsem[ui]
On Support PC: Transfer the pkg directory to the support pc, and then change to the pkg directory
cd pkg
pip install --no-index --find-links . fibsem[ui]
Additional Installation Information
For detailed instructions on installation, and installing the commercial microscope APIs, see Installation Guide.
Getting Started
For a complete walkthrough of the AutoLamella workflow, see the Getting Started Guide.
Getting Started with the API
To get started with the fibsemOS API, see the example/example.py:
You can start an offline demo microscope by specifying manufacturer: "Demo" in the configuration yaml file (fibsem/config/microscope-configuration.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 configuration file or alternatively, you can pass these arguments to utils.setup_session() directly.
This example shows you how to connect to the microscope, take an image with both beams, and plot the results.
from fibsem import utils, acquire
import matplotlib.pyplot as plt
def main():
# connect to microscope
microscope, settings = utils.setup_session(ip_address="localhost", manufacturer="Demo")
# take image with both beams
sem_image, fib_image = acquire.take_reference_images(microscope, settings.image)
# show images
fig, ax = plt.subplots(1, 2, figsize=(7, 5))
ax[0].imshow(sem_image.data, cmap="gray")
ax[1].imshow(fib_image.data, cmap="gray")
plt.show()
if __name__ == "__main__":
main()
This example is available as a script in example/example.py. For more detailed examples, see the Examples section below.
Examples
Core Functionality
For examples of core functionality please see:
- example/example_imaging.py: image acquisition
- example/example_movement.py: stage movement
- example/example_milling.py: drawing patterns and beam milling
- example/autolamella.py: recreation of AutoLamella V1 (automated cryo-lamella preparation) in ~150 lines of code
Additional example scripts and notebooks are available.
Contributing
Contributions are welcome! Please open a pull request or issue.
Docs
fibsemOS is a large package with many features. For more detailed documentation, please see the Documentation Website.
Related Projects and Publications
| Name | Full Title | Date |
|---|---|---|
| 3DCT | Site-Specific Cryo-focused Ion Beam Sample Preparation Guided by 3D Correlative Microscopy | 2016 |
| AutoLamella | Automated cryo-lamella preparation for high-throughput in-situ structural biology | 2020 |
| SerialFIB | A modular platform for automated cryo-FIB workflows | 2021 |
| PFIB-SEM | Cryo-plasma FIB/SEM volume imaging of biological specimens | 2023 |
| OpenFIBSEM | OpenFIBSEM: A universal API for FIBSEM control | 2023 |
| SEM Charging | Reduction of SEM charging artefacts in native cryogenic biological samples | 2025 |
| Fillets | Mind the corner: Fillets in cryo-FIB lamella preparation to minimise sample loss | 2025 |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fibsem-0.5.0a0.tar.gz.
File metadata
- Download URL: fibsem-0.5.0a0.tar.gz
- Upload date:
- Size: 10.4 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c241a85fef8da494d08a532f2548a6762fe9718913c2172bc397a662466fd42
|
|
| MD5 |
8287aedbbfff2797f21f223b5df1968d
|
|
| BLAKE2b-256 |
f66b60043dfe9472157e09ffa3670331b8abeb3bd75dc02a8099505558e5e93f
|
Provenance
The following attestation bundles were made for fibsem-0.5.0a0.tar.gz:
Publisher:
publish.yml on fibsem-os/fibsem-os
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fibsem-0.5.0a0.tar.gz -
Subject digest:
8c241a85fef8da494d08a532f2548a6762fe9718913c2172bc397a662466fd42 - Sigstore transparency entry: 1415448480
- Sigstore integration time:
-
Permalink:
fibsem-os/fibsem-os@f1d51eeff0ae6a6a2421448fdba78a9462d54fcb -
Branch / Tag:
refs/tags/v0.5.0a0 - Owner: https://github.com/fibsem-os
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f1d51eeff0ae6a6a2421448fdba78a9462d54fcb -
Trigger Event:
push
-
Statement type:
File details
Details for the file fibsem-0.5.0a0-py3-none-any.whl.
File metadata
- Download URL: fibsem-0.5.0a0-py3-none-any.whl
- Upload date:
- Size: 10.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a42d1bd40704c61e1571b7bb6b6acb3ab972b249bcad438f83314593a60e6bbc
|
|
| MD5 |
b836f30d3ad1e358b27127c47f6e6f25
|
|
| BLAKE2b-256 |
cd02ca02f2a1e3bac94c02272882d51d877790d68389669e5d1c60307b88f496
|
Provenance
The following attestation bundles were made for fibsem-0.5.0a0-py3-none-any.whl:
Publisher:
publish.yml on fibsem-os/fibsem-os
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fibsem-0.5.0a0-py3-none-any.whl -
Subject digest:
a42d1bd40704c61e1571b7bb6b6acb3ab972b249bcad438f83314593a60e6bbc - Sigstore transparency entry: 1415448566
- Sigstore integration time:
-
Permalink:
fibsem-os/fibsem-os@f1d51eeff0ae6a6a2421448fdba78a9462d54fcb -
Branch / Tag:
refs/tags/v0.5.0a0 - Owner: https://github.com/fibsem-os
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@f1d51eeff0ae6a6a2421448fdba78a9462d54fcb -
Trigger Event:
push
-
Statement type: