A Python platform for controlling custom laboratory experiments.
- Python 3.8+ (Currently tested with 3.9, 3.10, 3.12, 3.13)
- qtpy with any Qt-binding: PyQt6, PySide6, PyQt5, PySide
- NumPy 1.24+
- PyQtGraph
- h5py
Optional:
- qtconsole
- pyqtdarktheme
See http://www.scopefoundry.org
pip install scopefoundry-
Download and install the Miniconda Python distribution.
-
Create an environment with the required dependencies. In the
anaconda(3) prompt, run:conda create -n scopefoundry python=3.13
conda activate scopefoundry
-
To install
scopefoundry:pip install pyqt6 qtconsole pyqtdarktheme matplotlib scopefoundry
qtconsole,matplotlib, andpyqtdarkthemeare optional.
# conda activate scopefoundry
pip install --upgrade scopefoundryIf you have a folder named ScopeFoundry in your_project_folder, you are a core developer and can either pull from GitHub or rename the ScopeFoundry to ScopeFoundryArchive and:
# conda activate scopefoundry
pip install scopefoundryAfter installation, use the Anaconda prompt and make or navigate to your_project_folder, then run:
python -m ScopeFoundry.toolsThis will provide tools to create an initial ScopeFoundry App along with templates to develop hardware and add measurement components.
Equivalently run:
python -m ScopeFoundry initWith ScopeFoundry installed, you can navigate to your folder with h5 files and:
python -m ScopeFoundry ipynbanalyze_with_ipynb will generate convenience functions to load data with Python. For details see here.
├── your_project_folder
├── ScopeFoundryHW # Your hardware component files
├── company1_model1 # For each hardware
├── company1_model1_hw.py # Define a HardwareComponent class that will be integrated
├── company1_model1_dev.py # Optional: an interface class
├── company1_model1_test_app.py # A test app for quick development
├── company2_model4
├── **
├── your_fancy_microscope_app.py # Your actual app that you will launch
├── measurements/
├──your_measurement_1.py # Measurement class
├── **
├── ScopeFoundry # Optional: For ScopeFoundry core developers onlyFollow the same steps as above and additionally:
- Installation as above (although
scopefoundrydoes not need to be pip-installed). - Fork the repository on GitHub and pull it into
your_project_folder(see folder structure above).
Additions to ScopeFoundry are welcome. See instructions here
Edward S. Barnard esbarnard@lbl.gov
- Benedikt Ursprung
- Nick Borys
- Jonas Zipfel
- Frank Ogletree
- Clarice Aiello
- Hao Wu
- Alan Buckley
- Peter Ercius
- Mark Hager