Skip to main content

a universal api for fibsem control

Project description

Ask DeepWiki License: MIT Python 3.9+

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fibsem-0.5.1.dev0.tar.gz (10.7 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fibsem-0.5.1.dev0-py3-none-any.whl (10.6 MB view details)

Uploaded Python 3

File details

Details for the file fibsem-0.5.1.dev0.tar.gz.

File metadata

  • Download URL: fibsem-0.5.1.dev0.tar.gz
  • Upload date:
  • Size: 10.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fibsem-0.5.1.dev0.tar.gz
Algorithm Hash digest
SHA256 54a92fd81658b52a3290bff68f2e221f0c49428b30583288adc76dd48ee11f3f
MD5 9b2d08500da00fe33a80b68634173bb7
BLAKE2b-256 4aca7b5e0427b5a63c4eedfb29102f05009bd41485095a78e141fe276fe4b8a9

See more details on using hashes here.

Provenance

The following attestation bundles were made for fibsem-0.5.1.dev0.tar.gz:

Publisher: publish.yml on fibsem-os/fibsem-os

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fibsem-0.5.1.dev0-py3-none-any.whl.

File metadata

  • Download URL: fibsem-0.5.1.dev0-py3-none-any.whl
  • Upload date:
  • Size: 10.6 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fibsem-0.5.1.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 352a7a1dc1ffb4c3d8450d12cce0295fc04cf1eabf7104ca6c2cd3bea31729ce
MD5 4b067d89bedee3efa822dda5914b0737
BLAKE2b-256 fac6310c18b0c691b9bbc25f3541c5badfbd94b8d7f343b38e8fb93837e4e105

See more details on using hashes here.

Provenance

The following attestation bundles were made for fibsem-0.5.1.dev0-py3-none-any.whl:

Publisher: publish.yml on fibsem-os/fibsem-os

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page