Download the package,
unzip, and then double-click pyGUS.exe
or pyGUS
.
OR
Make sure you have Python (3.8 or higher) installed.
Open terminal, run
# Install, using pip (recommended)
pip install pyGUS_bio --user
# Or, use conda
conda install -c wpwupingwp pyGUS_bio
# Run
# Windows
python -m pyGUS
# Linux and MacOS
python3 -m pyGUS
✔️ Quantify GUS expression in stain images for multiple species.
✔️ Identify expressed regions and no expressed regions.
✔️ Use negative and positive references to calibrate expression value.
✔️ Support Macbeth color checker to calibrate color bias.
The program could run in normal computers and have no extra requirements for memory, CPU, et al.
Currently, macOS, Linux and Microsoft Windows systems are supported.
For the portable version, nothing needs to be installed manually.
For installing from pip, Python is required. Notice that the python version should be 3.8 or higher.
✅ All third-party dependencies will be automatically
installed with the Internet, including opencv-contrib-python
, numpy
,
scipy
, matplotlib
, coloredlogs
(python packages).
Download from the link, unpack and run.
-
Install Python. 3.8 or newer is required.
-
Open the command line, run
pip3 install pyGUS_bio --user
If installed with pip,
# Windows
python -m pyGUS
# Linux and MacOS
python3 -m pyGUS
If you use the portable version, double-click the pyGUS.exe
. Then click the
button to choose which mode to run.
❗ In Linux and macOS, Python2 is python
and Python3 is
python3
. However, in Windows, Python3 is called python
, too. Please
notice the difference and make sure you use Python 3
instead of Python 2
.
- Show help information
# Windows
python -m pyGUS -h
# Linux and MacOS
python3 -m pyGUS -h
- Run
# Windows
# mode 1
python -m pyGUS -mode 1 -ref1 [file1] -ref2 [file2] -images [files3] [file4] ...
# mode 2
python -m pyGUS -mode 2 -ref1 [file1] -images [file2] [file3] ...
# mode 3
python -m pyGUS -mode 3 -ref1 [file1] -ref2 [file2] -images [files3] [file4] ...
# mode 4
python -m pyGUS -mode 4 -images [file1] [file2] ...
# Linux and macOS
# mode 1
python3 -m pyGUS -mode 1 -ref1 [file1] -ref2 [file2] -images [files3] [file4] ...
# mode 2
python3 -m pyGUS -mode 2 -ref1 [file1] -images [file2] [file3] ...
# mode 3
python3 -m pyGUS -mode 3 -ref1 [file1] -ref2 [file2] -images [files3] [file4] ...
# mode 4
python3 -m pyGUS -mode 4 -images [file1] [file2] ...
All images should use white background.
One plant (whole or partial) with low expression or no expression.
One plant (whole or partial) with high expression.
Plant images for analysis.
These tips are for better results, not strict rules.
Cameras and stereo microscopes are recommended. Smartphones with camera functions are not recommended, especially models with built-in color grading. To reduce the effects of perspective distortion, lens with medium focal length (e.g. 50 mm in full-frame) is recommended. Make sure lens and camera sensor are free of stains.
White board or white paper with no debris, no wrinkles, no obvious reflection
It is recommended to use the bottom lighting of the whiteboard. When using indoor lighting, the international standard color rendering index (Ra index) of the bulb is required to be no less than 85, and the color temperature is between 4000 k to 7000 k; when using sunlight, avoid morning and evening. Close overhead lighting can cause significant reflections and is not recommended
The whole subject is not out of focus. Narrow down the aperture when shooting with a camera; adjust focus and magnification when using a stereo microscope to ensure that the edges of the subject are sharp
The recommended color temperature is around 6500k, with a minimum of 4000k and a maximum of 7000k. When the color temperature cannot be adjusted, adjust other parameters until the background is displayed in white without obvious color cast.
When using camera, the exposure compensation can be set to +1EV or +2EV to reduce the color cast of the paper. It could also reduce the influence of the transmittance of color cards or plants
Based on the size of the plant, adjust the lens-to-plant distance to make the plant cover the frame more than 50%. The main body does not cross the border, and the distance is not less than 10% of the screen width.
When there is only a single subject, place it in the center of the frame. When two subjects (two plants or plants with color card), place them on the left and the right, with interval between them not less than one-third of the width of the plant. They do not intersect, and they are not surrounded by each other (especially one with the long roots); there is no breakage, and the leaves do not overlap as much as possible.
No toning processing. The recommended minimum resolution is 500*500 px. When shooting with the camera, vignetting and distortion compensation can be turned on, and other adjustments (including white point, black point, contrast, brightness, style, etc.) should be turned off.
The normal mode
requires negative reference (-ref1
), positive reference
(-ref2
) and target images (-images
, one or more). Each image only have one
object.
This mode requires users to add marks on the image:
- left click mouse to add white dots on the target plant
- right click mouse to finish or press
Esc
to reset dots - drag to draw a box around the target plant. Do not cross over the plant. Do not draw near the border of the image, too.
- right click mouse to finish or press
Esc
to reset the box
The with reference mode
requires one reference image (-ref1
) with negative
reference on left and positive reference on right. In each target images
(-images
, one or more), target plants are on left, positive references are on
right separately.
This mode requires users to add marks on the image:
- left click mouse to add white dots on the target plant and the reference.
- right click mouse to finish or press
Esc
to reset dots - drag to draw a box around the target plant and the reference. Do not cross over the plant. Do not draw near the border of the image, too.
- right click mouse to finish or press
Esc
to reset the box
The with color checker mode
requires negative reference (-ref1
),
positive reference (-ref2
) and target images (-images
, one or more).
In each image, the plant is on left and a Macbetch color checker is on right.
This mode requires users to add marks on the image:
- left click mouse to add white dots on the target plant and the color checker.
- right click mouse to finish or press
Esc
to reset dots - drag to draw a box around the target plant and the color checker. Do not cross over the plant. Do not draw near the border of the image, too.
- right click mouse to finish or press
Esc
to reset the box
The Manually mode
requires one or more target images (-images
). Users select
two references and target regions by mouse and press any key to continue to next
image or to start running.
.csv
files: csv format table. Storage all analysis results.
-masked.png
files: Original image with alpha channel. Background is set to
fully transparent, expressed regions are set to fully opaque.
-select.png
files: In mode 4, the selected regions were filled with different
color. Red represents negative reference,
yellow is for positive reference,
and cyan is for the target region.
-calibrate.png
files: Images calibrated with color checker.
-fill.png
files: Images filled with different colors.
Blue means target,
red means background,
yellow means regions inner target but have different expression,
green means darker regions
inner target.
This program can extract the alpha channel information stored in the image output by pyGUS and generate a black and white image. Among them, black represents the background part of the original image recognized by pyGUS, gray represents the plant part, and white represents the part with GUS signal recognized by the program.
Usage:
# Windows
python extract_info.py [image filename]
# Linux and macOS
python3 extract_info.py [image filename]
This program is used to statistically analyze the difference in GUS signals between different groups of sample photos and perform significance test (t-test). Considering that users may prefer different statistical tools, this program is an auxiliary tool and is not integrated into the pyGUS. The program requires the user to provide a CSV format (exportable from Microsoft Excel, Notepad or any other text editor) list as input, with the following format:
Filename3,Sample1,Group1
Filename4,Sample2,Group1
Filename5,Sample3,Group2
Filename6,Sample4,Group2
Filename
represents filename of pyGUS input images, Sample1
represents
sample ID and Group1
represents the group of samples. Sample IDs should be
unique.
Note that please do not contain comma or space in each column. For example:
A1.png,A1,control
A2.png,A2,control
A3.png,A3,control
B1.png,B1,treatment
B2.png,B2,treatment
B3.png,B3,treatment
Usage:
# Windows
python stats.py [filename]
# Linux and macOS
python3 stats.py [filename]
#>
It depends on hardware and image size. Normally one image cost seconds or no more than one minute. The program could detect and utilize multi cores of CPU.
Unpublished.
The software itself is licensed under AGPL-3.0 (not include third-party software).
Please submit your questions in the Issue page 😃
-
Q: I got the error message that I don't have
tkinter
module installed.A: If you want to run GUI on Linux or macOS, this error may happen because the Python you used did not include tkinter as default package (kind of weird). Run
# Debian and Ubuntu sudo apt install python3-tk # CentOS sudo yum install python3-tk
may help.
For macOS users or linux users without root privilege, please try to install the newest version of Python or to use conda, see conda and Python for details.
-
Q: It says my input is invalid, but I'm sure it's OK!
A: Please check your files' path and filename. The
space
or Chinese characters in the folder name or filename may cause this error.
flowchart TB
subgraph Input
m1((Normal mode))
m2((With reference mode))
m3((With color checker mode))
m4((Manually mode))
targets[Target images]
c[Macbeth Color checker]
ref1[Positive reference]
ref2[Negative reference]
ref3[Negative and Positive reference]
targets
ref1 & ref2 & targets --> m1
ref3 & targets --> m2
m3 --> c --> ref1 & ref2 & targets
m4 --> ref1 & ref2 & targets
style c fill:#399
style m1 fill:#393
style m2 fill:#393
style m3 fill:#393
style m4 fill:#393
end
flowchart LR
subgraph Process
g1[Read image]
g1.5[[Color calibration]]
g2[Split to R, G, B channels]
g3[Generate gray copy]
g4[Get edge]
g7[Calculate]
g8[Output table and figure]
g1 --> g1.5 --> g2 --> g3 --> g4 --> g7 --> g8
style g1.5 fill:#59f
style g7 fill:#557788
style g8 fill:#59f
end
subgraph g1.5[Color calibration]
direction TB
c1[Detect Macbeth color checker]
c2[Generate CCM matrix]
c3[Apply matrix to original whole image]
c4[Generate calibrated image]
c1 --> c2 --> c3 --> c4
end
subgraph g4[Get mask]
direction LR
g41[cfm] --> g42[binary] --> g43[split]
end
subgraph g7[Calculate]
direction LR
neg & pos --> target --- Mean & Area & Ratio
end