Usage
Values
- Excitation Efficiency
- The excitation efficiency measures how effectively the excitation light is exciting the dye as a percentage of its maximum absorption. It is calculated by multiplying the light source spectra by the excitation filters and dichroics, and then the absorption spectra of the dye.
- Emission Efficiency
- Represents how much of the dye emission is actually captured on the images. It is the area of the transmission spectrum divided by the area of the dye emission spectrum.
- Brightness
- This is a value relative to Alexa-488 times 10. It takes into account the dye excitation efficiency and quantum yield but is sensitive to environment and so must be used with caution and critical thinking. For example, DAPI is not a very bright dye but there's usually a high amount of DNA to bind to and its fluorescence increases after it binds.
Links
It is possible to create URLs for specific setups or components by
specifying it on URL fragment identifier.
For example, adding #dye=GFP
to the URL will
initialise SPEKcheck with the GFP dye.
Similarly, the fragment #setup=DV Elite Quad DAPI
will load a setup with the same name.
The query component of the URL can also be used to filter the
list of setups available for selection.
For example, adding the #setup=OMXv3
to the URL
will initialise SPEKcheck with only the setups matching that
name. The value for setup query can be
any javascript
regular expression. For example:
?setup=OMXv3
-
Any setup with the text
OMXv3
?setup=OMXv3|2
-
Any setup with the text
OMXv3
orOMXv2
?setup=^OMXv\d
-
Any setup whose name starts (
^
) with the textOMXv
, followed by a digit (\d
). ?setup=^OMX.*DAPI$
-
Any setup whose name starts (
^
) with the textOMX
, followed by any text (.*
), but withDAPI
at the end ($
).
Installation
SPEKcheck is a fully client-side web application. It runs on a web browser such as Firefox, either locally or served through a web server. In addition, it can be included as part of another web page.
Requirements
SPEKcheck requires support for HTML5 and ECMAScript 2015. Effectively, this means that SPEKcheck will not run in Internet Explorer, very old versions of other web browsers, and web browsers with javascript disabled.
Local installation
- Download latest version of SPEKcheck
- Extract all files from the archive wherever
- Open the
index.html
file on a web browser such as Firefox
python -m SimpleHTTPServer
which will start a web server, and access SPEKcheck
at http://localhost:8000
Installation on web server
SPEKcheck runs fully client-side and can be served as a static site. To serve your own instance of SPEKcheck, simply extract all files into whatever location the web server is configured to use.
If you are setting a new instance of SPEKcheck on your own web
server, you are probably also looking to configure the available
setups and components. All configuration is done by editing the
files in the data
directory. Data files for each
component should be place into the
directories detectors
, dyes
,
excitation
, and filters
and their
names, minus the .csv
extension, listed on the
corresponding json file. The setups.json
file
describes the predefined setups (see
Section File Formats).
Included on another webpage
The SPEKcheck application can be included as part of another webpage. The main use of case of this usage is to include SPEKcheck on a page for a specific microscope. For example, a microscope facility which has a page for each of their microscopes can include SPEKcheck with only the setup and components associated with the system.
SPEKcheck is dependent on bootstrap, jQuery, and Chart.js and so those need to be referenced. SPEKcheck will inject itself into any HTML element.
File Format
Microscope setups and new components can be defined in specific
files within the data
directory structure. These
are defined below.
Setups file
In SPEKcheck, a microscope setup is defined by a series of components: an excitation source, a stack of filters on the excitation path, a dye, another stack of filters on the emission path, and a detector.
Setups are defined in JSON format. All components must be
defined although their values may be null
or, in
the case of emission and excitation paths, empty arrays. The
names of each components must match the name used on the
collections and is case sensitive. In the case of filters, they
must be paired with their mode
which must have a
value of "r"
or "t"
for reflection or
transmission respectively. The dichroic filters are part of
both excitation and emission paths. As such, they should appear
in both in the description, with opposing modes.
The file data/setups.json
will define all the
setups available for selection. This file must defined a JSON
Array which will be used to construct a
Map
object. Each element in the Array must be a two-element array,
the first element a String with the setup name, and the second
element, a JSON object with the setup description. Because a
Map is used, the order used to define each setup on this file
will be used on the SPEKcheck menus. This allows to order and
group setups by any function other than alphabetical.
Data Files (CSV with text header)
The file format for each component is a plain text file: a multiline key/value header with comments, followed by the spectrum values in a CSV format.
The header of the data files has a series of key/value pairs and
optional comments. Comments are lines starting with the
#
character. Only data files for dyes require a
header, which must have the keys Extinction
coefficient
and Quantum Yield
. While the
keys must exist, their values are optional.
The CSV section of the file declares the spectra data. The
first line of the CSV names the columns and the first column
must always be wavelength
. The wavelength values
must be in nanometers. The other columns have the spectra
values and must be in the [0 1] or [0 100] range. The columns
names must be absorption
and emission
for dyes, intensity
for excitation
sources, reflection
or transmission
for filters, and qe
for detectors.
# Type: Dye
# Name: the name (actually ignored)
# This line is a comment and will be ignored
# The 'Extinction coefficient' and 'Quantum Yield' lines are still
# required, but their values can be empty if not known.
Extinction coefficient:
Quantum Yield:
wavelength,absorption,emission
250,0.494230986,0.000
251,0.489300013,0.000
252,0.489378005,0.000
253,0.490633011,0.000
...
## Type: dichroic filter
# Name: this filter name
# Instead of transmission, this file could instead have reflection too.
wavelength,transmission
450.088864,0.004743
450.204180,0.005017
450.319497,0.004637
450.434813,0.004622
450.550130,0.005573
...
# Type: excitation source
# Name: 442-laser
wavelength,intensity
441,0
442,1.0
443,0
## Type: detector
# Name: The Detector name
# The source of the file is a useful thing to keep as a comment.
wavelength,qe
410, 0.0093
420, 0.0175
430, 0.0273
...