Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: Cephla-Lab/Squid
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: master
Choose a base ref
...
head repository: wenzel-lab/SQUID-bioimaging-platform
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Can’t automatically merge. Don’t worry, you can still create the pull request.
  • 10 commits
  • 11 files changed
  • 1 contributor

Commits on Aug 7, 2024

  1. Add files via upload

    the-alquemist authored Aug 7, 2024
    Copy the full SHA
    4fcbf7d View commit details
  2. Add files via upload

    the-alquemist authored Aug 7, 2024
    Copy the full SHA
    bf607e6 View commit details
  3. Add files via upload

    the-alquemist authored Aug 7, 2024
    Copy the full SHA
    5e5714c View commit details

Commits on Aug 8, 2024

  1. Add files via upload

    the-alquemist authored Aug 8, 2024
    Copy the full SHA
    2692396 View commit details

Commits on Aug 9, 2024

  1. Add files via upload

    the-alquemist authored Aug 9, 2024
    Copy the full SHA
    a75396b View commit details
  2. Copy the full SHA
    cfb145b View commit details
  3. Copy the full SHA
    81dcd70 View commit details
  4. Update README.md

    the-alquemist authored Aug 9, 2024
    Copy the full SHA
    e8516b4 View commit details

Commits on Dec 18, 2024

  1. Add files via upload

    wenzel .sh update
    the-alquemist authored Dec 18, 2024
    Copy the full SHA
    ea6acae View commit details
  2. Update README.md

    the-alquemist authored Dec 18, 2024
    Copy the full SHA
    226c8ec View commit details
69 changes: 39 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,39 +1,48 @@
# Squid (formerly octopi-research)
# SiMoRa - SQUID Microscope with Raman [![Open Source Love](https://badges.frapsoft.com/os/v1/open-source.svg?v=103)](https://github.com/ellerbrock/open-source-badges/)
Our open hardware bioimaging platform for fluorescence microscopy and Raman spectroscopy based on the SQUID/OCTOPI 60x60mm inverted microscopy stage

![alt text](https://i.imgur.com/Gjwh02y.png)
## What is the SQUID Microscope?
Squid (Simplifying Quantitive Imaging Development and Deployment) provides a full suite of hardware and software components for rapidly configuring high-performance microscopes tailored to users' applications with reduced cost, effort and turnaround time. Besides increasing accessibility of research microscopes and available microscope hours to labs, it is also designed to simplify development and dissemination of new or otherwise advanced microscopy techniques. Applications include slide scanner for digital pathology, time lapse imaging with 2D or 3D tiling, spatial omics that involves multicolor and multi-round imaging, tracking microscopy,computational microscopy, including label free microscopy using phase/polarization/reflectance + deep learning, and super resolution microscopy.

## Introduction
Squid (Simplifying Quantitive Imaging Development and Deployment) provides a full suite of hardware and software components for rapidly configuring high-performance microscopes tailored to users' applications with reduced cost, effort and turnaround time. Besides increasing accessibility of research microscopes and available microscope hours to labs, it is also designed to simplify development and dissemination of new or otherwise advanced microscopy techniques.
* [1] Hongquan Li, Deepak Krishnamurthy, Ethan Li, Pranav Vyas, Nibha Akireddy, Chew Chai, Manu Prakash, "**Squid: Simplifying Quantitative Imaging Platform Development and Deployment**." BiorXiv [ link | [website](https://squid-imaging.org)]
* [2] Deepak Krishnamurthy, Hongquan Li, François Benoit du Rey, Pierre Cambournac, Adam G. Larson, Ethan Li, and Manu Prakash. "**Scale-free vertical tracking microscopy.**" Nature Methods 17, no. 10 (2020): 1040-1051. [ [link](https://www.nature.com/articles/s41592-020-0924-7) | [website](https://gravitymachine.org) ]

Applications include
- slide scanner for digital pathology
- time lapse imaging with 2D or 3D tiling
- spatial omics that involves multicolor and multi-round imaging
- tracking microscopy
- computational microscopy, including label free microscopy using phase/polarization/reflectance + deep learning
- super resolution microscopy
- light sheet microscopy

## Assets
## SQUID resources from the creators
- main software repo: [GitHub](https://github.com/hongquanli/octopi-research) (this repo)
- tracking software repo: [GitHub](https://github.com/prakashlab/squid-tracking)
- CAD models/photos of assembled squids: [Google Drive](https://drive.google.com/drive/folders/1JdVp34HtERGpBCBlFX6jFDwMUdeBLCEx?usp=sharing)
- BOM for the microscope, including CAD files for CNC machining: [link](https://docs.google.com/spreadsheets/d/1WA64HySj9I7XROtTXuaRvjlbhHXRGspvoxb_20CWDR8/edit?usp=drivesdk)
- BOM for the multicolor laser engine: [link](https://docs.google.com/spreadsheets/d/1hEM6PsxZPTp1LY3cpxUJOS3Q1YLQN-xniF33ZddFj9U/edit#gid=1175873468)
- BOM for the control panel: [link](https://docs.google.com/spreadsheets/d/1z2HjibIG9PHffiDsbuzQXmvf2gSFMduHrXkPwDbcXRY/edit?usp=sharing)

## Early Results, Related Work and Possible Applications
Refer to our website: www.squid-imaging.org

## References
[1] Hongquan Li, Deepak Krishnamurthy, Ethan Li, Pranav Vyas, Nibha Akireddy, Chew Chai, Manu Prakash, "**Squid: Simplifying Quantitative Imaging Platform Development and Deployment**." BiorXiv [ link | [website](https://squid-imaging.org)]

For scale-free vertical tracking microscopy, check out our work at:

[2] Deepak Krishnamurthy, Hongquan Li, François Benoit du Rey, Pierre Cambournac, Adam G. Larson, Ethan Li, and Manu Prakash. "**Scale-free vertical tracking microscopy.**" Nature Methods 17, no. 10 (2020): 1040-1051. [ [link](https://www.nature.com/articles/s41592-020-0924-7) | [website](https://gravitymachine.org) ]

## Acknowledgement
The Squid software was developed with structuring inspiration from [Tempesta-RedSTED](https://github.com/jonatanalvelid/Tempesta-RedSTED). The laser engine is inspired by [https://github.com/ries-lab/LaserEngine](https://github.com/ries-lab/LaserEngine).

## Software Instructions
The microscope is controled by an Arduino Due and a computer running Ubuntu. The computer can be one of the Nvidia Jetson platforms (e.g. Jetson Nano, Jetson Xavier NX) or a regular laptop/workstation. Instructions for using the firmware and software can be found in the respective folders.
- Eearly Results, Related Work and Possible Applications www.squid-imaging.org
- Forum to discuss instructions: https://forum.squid-imaging.org
- Spin-off company: https://cephla.com/product/squid/

# Our custom implementation

Is based on the SQUID/OCTOPI 60x60mm inverted stage.
<p align="left">
<img src="./images/SQUID-with-filter-wheel.jpeg" width="500">
</p>

## Optical filters used
| Filter | Type | supplier |
| :--- | :--- | :--- |
| FF458-Di02-25x36 | Beamsplitter 458 to couple in 405nm LED | [AHF](https://ahf.de/en/products/spectral-analysis-photonic/optical-filters/beamsplitters/epi-fluorescence-beamsplitters/standard-applications/longpass/beamsplitter-hc-458/F38-458) |
| FF520-Di02-25x36 | Beamsplitter 520 to couple in 470nm LED with 635nm LED | [AHF](https://ahf.de/en/products/spectral-analysis-photonic/optical-filters/beamsplitters/epi-fluorescence-beamsplitters/standard-applications/longpass/beamsplitter-hc-520/F38-520) |
| ZT405/488/561/640rpcv2-UF3 | 4-band fluorescence beamsplitter | [Chroma](https://www.chroma.com/products/parts/zt405-488-561-640rpcv2) |
| FF01-446/523/600/677-25 | 4-band blocking filter for all fluorescence channels | [Laser2000](https://photonics.laser2000.co.uk/products/light-delivery-and-control/microscopy-filters/filter-sets-cubes/full-multiband-sets/brightline-full-multiband-laser-filter-set-405-488-561-635-nm-laser-sources/) |
| ZET405/488/561/640xv2 | 4-band illumination filter (20mm) | [Chroma](https://www.chroma.com/products/parts/zet405-488-561-640xv2) |
| ZT775sp-2p-UF3 | Beamsplitter brightfield to add on 785nm Raman | [Chroma](https://www.chroma.com/products/parts/zt775sp-2p-multiphoton-shortpass-laser-dichroic) |
| F46-950 (RT785rdc + RET785/6x + RET792LP) | 785 nm Raman Filterset with Beamsplitter, Bandpass and Emitter | [AHF](https://ahf.de/en/products/spectral-analysis-photonic/optical-filters/by-application/raman/raman-filter-sets/785-nm-raman-et-lp-filter-set/F46-950) |

Inspired by the [Benchtop mesoSPIM light sheet microscope](https://github.com/mesoSPIM/benchtop-hardware/tree/main), we have incorporated the [ZWO-asto mini electronic filter wheel (EFW)](https://www.zwoastro.com/product/efw/) with the following filter selections:
| Position | Filter | Type | supplier |
| :--- | :--- | :--- | :--- |
|#1 - All| none | The four bands of the multiband blockig filter are visible simultaneously | |
|#2 - Blue| 447/60 BrightLine HC | Filter blue, e.g. DAPI stain | [AHF](https://www.ahf.de/produkte/spektralanalytik-photonik/optische-filter/einzelfilter/bandpass-filter/400-499-nm/1671/447/60-brightline-hc) |
|#3 - Green| 525/39 BrightLine HC | Filter green, e.g. sfGFP | [AHF](https://ahf.de/produkte/spektralanalytik-photonik/optische-filter/einzelfilter/bandpass-filter/500-599-nm/525-39-brightline-hc/F37-527) |
|#4 - Orange| 600/37 BrightLine HC | Filter organge | [AHF](https://ahf.de/produkte/spektralanalytik-photonik/optische-filter/einzelfilter/bandpass-filter/600-699-nm/600-37-brightline-hc/F39-637) |
|#5 - Red| 635 LP Langpass-Filter | Filter red , e.g. PI stain | [AHF](https://ahf.de/produkte/spektralanalytik-photonik/optische-filter/einzelfilter/langpass-filter/600-699-nm/635-lp-edge-basic-langpass-filter/F76-635) |

Follow us! [#twitter](https://twitter.com/WenzelLab), [#YouTube](https://www.youtube.com/@librehub), [#LinkedIn](https://www.linkedin.com/company/92802424), [#instagram](https://www.instagram.com/wenzellab/), [#Printables](https://www.printables.com/@WenzelLab), [#LIBREhub website](https://librehub.github.io), [#IIBM website](https://ingenieriabiologicaymedica.uc.cl/en/people/faculty/821-tobias-wenzel)
Binary file not shown.
Binary file added docs/M405L4-SpecSheet.pdf
Binary file not shown.
Binary file added docs/M470L5-SpecSheet.pdf
Binary file not shown.
Binary file added docs/M625L4-SpecSheet.pdf
Binary file not shown.
Binary file not shown.
1 change: 1 addition & 0 deletions docs/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Here we upload specification documents of our modules.
Binary file added images/SQUID-with-filter-wheel.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions images/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Folder for images used in this repository.
80 changes: 22 additions & 58 deletions software/README.md
Original file line number Diff line number Diff line change
@@ -1,76 +1,40 @@
## Setting up the environments
Run the following script in terminal to clone the repo and set up the environment
```
wget https://raw.githubusercontent.com/hongquanli/octopi-research/master/software/setup_22.04.sh
chmod +x setup_22.04.sh
./setup_22.04.sh
wget https://raw.githubusercontent.com/wenzel-lab/SQUID-bioimaging-platform/master/software/setup_wenzel_station.sh
chmod +x setup_wenzel_station.sh
```
Reboot the computer to finish the installation.

## Optional or Hardware-specific dependencies

<details>
<summary>image stitching dependencies (optional)</summary>
For optional image stitching using ImageJ, additionally run the following:

```
sudo apt-get update
sudo apt-get install openjdk-11-jdk
sudo apt-get install maven
pip3 install pyimagej
pip3 instlal scyjava
pip3 install tifffile
pip3 install imagecodecs
```

Then, add the following line to the top of `/etc/environment` (needs to be edited with `sudo [your text editor]`):
```
JAVA_HOME=/usr/lib/jvm/default-java
```
Then, add the following lines to the top of `~/.bashrc` (or whichever file your terminal sources upon startup):
```
source /etc/environment
export JAVA_HOME = $JAVA_HOME
export PATH=$JAVA_HOME/bin:$PATH
```
</details>

<details>
<summary>Installing drivers and libraries for FLIR camera support</summary>
Go to FLIR's page for downloading their Spinnaker SDK (https://www.flir.com/support/products/spinnaker-sdk/) and register.
> [!IMPORTANT]
> You will need to edit your _.sh_ file. Ubuntu python paths were giving us problems. So we decided to contain everything in a mamba environment and add the path of the python3 executable when needed. If you have a cleaner way to do this let us know!
Open the `software/drivers and libraries/flir` folder in terminal and run the following
Firstly, make sure you have a git and mamba installation in your device. In the case of mamba:
```
sh ./install_spinnaker.sh
sh ./install_PySpin.sh
mamba info
mamba create --name squid-station
mamba activate <your environment>
```
</details>
Secondly, edit your python3 path. In our case it was from the _"sudo <your_path>/python3 setup.py install"_ line from the .sh file.

<details>
<summary>Add udev rules for ToupTek cameras</summary>
> [!WARNING]
> Make sure that all paths called in this file exists in your local installation.
If everything is good, you should be able to execute your .sh file.
```
sudo cp drivers\ and\ libraries/toupcam/linux/udev/99-toupcam.rules /etc/udev/rules.d
./setup_wenzel_station.sh
```
</details>

<details>
<summary>Installing drivers and libraries for Hamamatsu camera support</summary>
Reboot the computer to finish the installation.

Open the `software/drivers and libraries/hamamatsu` folder in terminal and run the following
## Configuring the software
Copy the .ini file associated with the microscope configuration to the software folder.
```
sh ./install_hamamatsu.sh
cp ~/path_of_repo_installation/software/configuration_squid_6060.ini ~/path_of_repo_installation/SQUID-bioimaging-platform/software/
```
</details>
> [!TIP]
> Make modifications as needed (e.g. `camera_type`, `support_laser_autofocus`,`focus_camera_exposure_time_ms`).
## Configuring the software
Copy the .ini file associated with the microscope configuration to the software folder. Make modifications as needed (e.g. `camera_type`, `support_laser_autofocus`,`focus_camera_exposure_time_ms`)
In our case we will be using _"configuration_squid_6060.ini"_

## Using the software
```
python3 main_hcs.py
```
To start the program when no hardware is connected, use
```
python3 main_hcs.py --simulation
python3 main.py
```
*Script may be subject to changes in the future
31 changes: 31 additions & 0 deletions software/setup_wenzel_station.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
#!/bin/bash

# install packages
mamba install anaconda::pip
pip3 install pyqtgraph
pip3 install pyqt5
sudo apt install python3-pyqt5.qtsvg

# clone the repo
mkdir ~/Documents/wenzel_repositories
cd ~/Documents/wenzel_repositories
git clone https://github.com/wenzel-lab/SQUID-bioimaging-platform.git
cd SQUID-bioimaging-platform/software
mkdir cache

# install libraries
pip3 install qtpy pyserial pandas imageio crc==1.3.0 lxml numpy tifffile scipy napari
pip3 install opencv-python-headless opencv-contrib-python-headless
pip3 install napari[all] scikit-image dask_image ome_zarr aicsimageio basicpy

# install camera drivers
cd ~/Documents/wenzel_repositories/octopi-research/software/drivers\ and\ libraries/daheng\ camera/Galaxy_Linux-x86_Gige-U3_32bits-64bits_1.2.1911.9122
./Galaxy_camera.run
cd ~/Documents/wenzel_repositories/octopi-research/software/drivers\ and\ libraries/daheng\ camera/Galaxy_Linux_Python_1.0.1905.9081/api
python3 setup.py build
sudo /home/wenzel-lab/miniforge3/envs/squid-station/bin/python3 setup.py install
cd ~/Documents/wenzel_repositories/octopi-research/software
sudo cp drivers\ and\ libraries/toupcam/linux/udev/99-toupcam.rules /etc/udev/rules.d

# enable access to serial ports without sudo
sudo usermod -aG dialout $USER