Skip to content

A .NET microscopy imaging application based on Bio library. Supports various microscopes by using imported libraries & GUI automation. Supports XInput game controllers to move stage, take images, run ImageJ macros on images or Bio C# scripts.

License

Notifications You must be signed in to change notification settings

alankritaastha16/BioImager

 
 

Repository files navigation

BioImager

A .NET microscopy imaging application based on Bio. Supports various microscopes by using imported libraries & GUI automation. Supported libraries include Prior® & Zeiss® & all devices supported by latest Micromanager 2.0 and python-microscope. If your microscope is not supported check your manufacturer's SDK to implement "Microscope.cs" or use GUI Automation functions. Works with or without hardware through microscope simulation. Allows for tiled & depth stack imaging & supports XInput game controllers to move stage, take images, run ImageJ macros on images or Bio C# scripts. Also check out the wiki for library usage. or check out the documentation.

Nuget Nuget DOI

Sample Microscope Script

//If the GUI Recording for setting folder is set, we can set the microscope storage folder.
Microscope.SetFolder("F:/Images/5x/");
Microscope.Objectives.SetPosition(0);
Microscope.TakeImage();
Microscope.MoveFieldLeft();
//We can take an image stack based on properties set in the GUI
Microscope.TakeImageStack();
// or by specifying them in script.
Microscope.TakeImageStack(25000,25050,10)
Microscope.MoveFieldDown();
Microscope.TakeTiles(4,4);
Microscope.Objectives.SetPosition(1);
Microscope.SetFolder("F:/Images/10x/");
Microscope.TakeTiles(4,4);

Features

  • C# scripting with sample tool-script and other sample scripts in "/Scripts/" folder. See samples

  • Cell Imager tool allows for performing imaging routines on individual cells based on blob detection.

  • Supports running ImageJ macro commands on images open in Bio. New Console to run ImageJ macro commands and Bio C# functions.

  • Multiple view modes like Emission, and Filtered. ROI's shown for each channel can be configured in ROI Manager.

  • Supports drawing shapes & colors onto 16 bit & 48 bit images, unlike System.Drawing.Graphics.

  • Convenient viewing of image stacks with scroll wheel moving Z-plane and mouse side buttons scrolling C-planes.

  • Editing & saving ROI's in images to OME format image stacks.

  • Copy & Paste to quickly annotate images and name them easily by right click.

  • Select multiple points by holding down control key, for delete & move tools.

  • Exporting ROI's from each OME image in a folder of images to CSV.

  • Easy freeform annotation with magic select tool which selects based on blob detection.

  • Use AForge filters by opening filters tool window and right click to apply. Currently supports only some AForge filters as many of them do not support 16bit and 48bit images. Convert to 8bit image to make use of more filters. Applyed filters can be easily recorded and used in scripts. Bio impliments some filters like crop for 16 & 48 bit images.

Setup

  • Install dependency OpenSlide be sure to add the /bin path of opeslide binaries to your Environmental Variable PATH. By editing your PATH variable.
  • For Micro-Manager 2.0 install the nightly build from here then install pycromanager by running pip install pycromanager
  • For detailed Setup instructions see setup.
  • For Zeiss® set the MTB® Api library path to version of MTB® you are using, found in program files.
  • For Prior® download Prior® SDK and set path to Prior® SDK PriorScientificSDK.dll
  • Set Functions to controller buttons by double clicking labels. Functions include all microscope functions & ImageJ & Bio C# scripts.
  • Star this project on Github to help spread the word about Bio!

Dependencies

Licenses

Scripting

  • Save scripts into "StartupPath/Scripts" with ".cs" ending.
  • Open script editor and recorder from menu.
  • Double click on script name in Script runner to run script.
  • Scripts saved in Scripts folder will be loaded into script runner.
  • Program installer include sample script "Sample.cs" which gets & sets pixels and saves resulting image.
  • Use Script recorder to record program function calls and script runner to turn recorder text into working scripts. (See sample) scripts

Plugins

  • Save plugin DLL's into "StartupPath/Plugins"
  • See example plugin to create your own plugins.

Sample Tool Script

//css_reference Bio.dll;
using System;
using System.Windows.Forms;
using System.Drawing;
using Bio;
using System.Threading;
public class Loader
{

	//Point ROI Tool Example
	public string Load()
	{
		int ind = 1;
		do
		{
			Bio.Scripting.State s = Bio.Scripting.GetState();
			if (s != null)
			{
				if (!s.processed)
				{
					if (s.type == Bio.Scripting.Event.Down && s.buts == MouseButtons.Left)
					{
						ZCT cord = Bio.App.viewer.GetCoordinate();
						Bio.Scripting.LogLine(cord.ToString() + " Coordinate");
						Bio.ROI an = Bio.ROI.CreatePoint(cord, s.p.X, s.p.Y);
						Bio.ImageView.SelectedImage.Annotations.Add(an);
						Bio.Scripting.LogLine(cord.ToString() + " Coordinate");
						an.Text = "Point" + ind;
						ind++;
						Bio.Scripting.LogLine(s.ToString() + " Point");
						//ImageView.viewer.UpdateOverlay();
					}
					else
					if (s.type == Bio.Scripting.Event.Up)
					{
						Bio.Scripting.LogLine(s.ToString());
					}
					else
					if (s.type == Bio.Scripting.Event.Move)
					{
						Bio.Scripting.LogLine(s.ToString());
					}
					s.processed = true;
				}
			}
		} while (true);
		return "OK";
	}
}

About

A .NET microscopy imaging application based on Bio library. Supports various microscopes by using imported libraries & GUI automation. Supports XInput game controllers to move stage, take images, run ImageJ macros on images or Bio C# scripts.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C# 69.8%
  • Python 30.0%
  • HLSL 0.2%