


A Python-based graphical interface for analyzing bacterial inhibition and generating customizable graphs.
This project is part of my undergraduate thesis in Biomedical Sciences, titled “Comparative Analysis Between the Use of Oxyreductive Dye and Automated Reading in the Determination of the Minimum Inhibitory Concentration in Bacteria of Medical Importance”. It is a Python-based graphical user interface (GUI) designed to optimize experiments aimed at determining the percentage of bacterial inhibition and the Minimum Inhibitory Concentration (MIC) in 96-well microplate experiments. The data obtained is represented through customizable graphs, which can be saved in various formats. This project builds upon the findings of a previously published article.
- Bacterial Inhibition Calculation: Automatically calculates the percentage of bacterial inhibition based on absorbance values.
- Customizable Graphs: Generates graphs that can be personalized (colors, titles, axes, etc.).
- File Export: Allows saving graphs in formats such as
.jpg
,.png
,.pdf
, and.svg
, and exporting data as.csv
. - Interactive Table: Allows easy input of absorbance values.
- Dynamic Graph Generation: Graphs are generated dynamically based on input data.
- Data Processing: Handles absorbance data and calculates inhibition percentages.
- Graph Customization: Supports customization of graph elements (e.g., colors, titles, axes).
This project was designed based on experiments conducted with Staphylococcus aureus and Escherichia coli, where each dye occupies two rows (duplicates), and the positive and negative controls occupy the last two columns of the microplate. However, it is possible to configure the position of the controls, the bacteria used, and the antibiotic concentration corresponding to the experiment. The microplate line-up used in the experiments can be found in the mentioned article.
- Select the Bacteria: Choose the bacteria used in the experiment from the options provided.
- Input Absorbance Values: Enter the absorbance values into the table provided in the interface. (You donβt need to fill the entire table if the experiment used fewer dyes and duplicates.)
- Select Duplicates: For each duplicate, select the two rows and press the button corresponding to the dye used in the duplicate.
- Generate Graph: After completing the input, click “Generate Graph.” The corresponding graph will automatically appear in the “Graph” tab. The graph can be customized (colors, titles, axes) and saved.
You can run the application in two ways: by downloading the pre-built executable or by setting up the project locally.
- Go to the Releases page.
- Download the
.exe
file from the latest release. - Run the
.exe
file on a Windows machine.
To run the application locally, you’ll need Git and Python installed.
# Clone this repository
$ git clone https://github.com/luizreinert/Spectra
# Install dependencies
# Run the application
$ python Spectra.py
- Python: Main programming language.
- CustomTkinter: For building the graphical user interface.
- Matplotlib: For generating and customizing graphs.
- Pillow: For image processing.
- TkSheet: For handling table data.
- mplcursors: For interactive graph annotations.
- CTkColorPicker: For color customization in the GUI.
This project is licensed under the MIT License.
Made with π by Luiz Reinert

Leave a Reply