Skip to main content

A software tool for graph theory analysis of microscopy images.

Project description

Downloads Downloads Dependents DOI Dependents

StructuralGT

A software tool that allows graph theory analysis of nanostructures. This is a modified version of StructuralGT initially proposed by Drew A. Vecchio, DOI: 10.1021/acsnano.1c04711.

Installation

1. Install as software

2. Install via pip

  • Install Python version 3.13 on your computer.
  • Execute the following commands:
pip install sgtlib

3. Install via source code

Therefore, please follow the manual installation instructions provided below:

  • Install Python version 3.13 on your computer.
  • Git Clone the branch DicksonOwuor-GUI from this repo: https://github.com/compass-stc/StructuralGT.git
  • Extract the source code folder named 'structural-gt' and save it to your preferred location on your PC.
  • Open a terminal application such as CMD.
  • Navigate to the location where you saved the 'structural-gt' folder using the terminal.
  • Execute the following commands:
cd structural-gt
pip install --upgrade pip
pip install -r requirements.txt
pip install .

3. Usage

3(a) Executing GUI App

To run the GUI version, please follow these steps:

  • Open a terminal application such as CMD.
  • Execute the following command:
StructuralGT

3(b) Executing Terminal App

Before executing StructuralGT-cli, you need to specify these parameters:

  • image file path or image directory/folder: [required and mutually exclusive] you can set the file path using -f path-to-image or set the directory path using -d path-to-folder. If the directory path is set, StructuralGT will compute the GT metrics of all the images simultaneously,
  • configuration file path: [required] you can set the path to config the file using -c path-to-config. To make it easy, find the file sgt_configs.ini (in the ''root folder'') and modify it to capture your GT parameters,
  • type of GT task: [required] you can either 'extract graph' using -t 1 or compute GT metrics using -t 2,
  • output directory: [optional] you can set the folder where the GT results will be stored using -o path-to-folder,
  • allow auto-scaling : [optional] allows StructuralGT to automatically scale images to an optimal size for computation. You can disable this using -s 0.

Please follow these steps to execute:

  • Open a terminal application such as CMD.
  • Execute the following command:
StructuralGT-cli -d datasets/ -c datasets/sgt_configs.ini -o results/ -t 2

OR

StructuralGT-cli -f datasets/InVitroBioFilm.png -c datasets/sgt_configs.ini -t 2

OR

StructuralGT-cli -f datasets/InVitroBioFilm.png -c datasets/sgt_configs.ini -t 1

3(c) Using Library API

To use StructuralGT library:

  • Make sure you install via pip
  • Create a Python script or Jupyter Notebook and import modules as shown:
import matplotlib.pyplot as plt
from sgtlib import modules as sgt

# set paths
img_path = "path/to/image"
cfg_file = "path/to/sgt_configs.ini"   # Optional: leave blank

# Define a function for receiving progress updates
def print_updates(progress_val, progress_msg):
    print(f"{progress_val}: {progress_msg}")

# Create a Network object
ntwk_obj, _ = sgt.ImageProcessor.create_imp_object(img_path, config_file=cfg_file)

# Apply image filters according to cfg_file
ntwk_obj.add_listener(print_updates)
ntwk_obj.apply_img_filters()
ntwk_obj.remove_listener(print_updates)

# View images
sel_img_batch = ntwk_obj.get_selected_batch()
bin_images = [obj.img_bin for obj in sel_img_batch.images]
mod_images = [obj.img_mod for obj in sel_img_batch.images]
plt.imshow(bin_images[0])
plt.axis('off')  # Optional: Turn off axis ticks and labels for a cleaner image display
plt.title('Binary Image')
plt.show()

plt.imshow(mod_images[0])
plt.axis('off')  # Optional: Turn off axis ticks and labels for a cleaner image display
plt.title('Processed Image')
plt.show()

# Extract graph
ntwk_obj.add_listener(print_updates)
ntwk_obj.build_graph_network()
ntwk_obj.remove_listener(print_updates)

# View graph
net_images = [sel_img_batch.graph_obj.img_ntwk]
plt.imshow(net_images[0])
plt.axis('off')  # Optional: Turn off axis ticks and labels for a cleaner image display
plt.title('Graph Image')
plt.show()

# Compute graph theory metrics
compute_obj = sgt.GraphAnalyzer(ntwk_obj)
sgt.GraphAnalyzer.safe_run_analyzer(compute_obj, print_updates)
print(compute_obj.output_df)

# Save in PDF
sgt.GraphAnalyzer.write_to_pdf(compute_obj)

References

  • Drew A. Vecchio, Samuel H. Mahler, Mark D. Hammig, and Nicholas A. Kotov ACS Nano 2021 15 (8), 12847-12859. DOI: 10.1021/acsnano.1c04711.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

sgtlib-3.5.3.tar.gz (221.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sgtlib-3.5.3-py3-none-any.whl (229.5 kB view details)

Uploaded Python 3

File details

Details for the file sgtlib-3.5.3.tar.gz.

File metadata

  • Download URL: sgtlib-3.5.3.tar.gz
  • Upload date:
  • Size: 221.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for sgtlib-3.5.3.tar.gz
Algorithm Hash digest
SHA256 61b715033f747c1aff9004e6e07914c6cd51a54f3b14300bc21086c66396c69f
MD5 02924b6a03e78f18a3a581f57a56e2ef
BLAKE2b-256 e1875c1dc0fff8e3d589ea7f4afb1455605084e0ebaf58e5adaa9bcdc47d12a4

See more details on using hashes here.

File details

Details for the file sgtlib-3.5.3-py3-none-any.whl.

File metadata

  • Download URL: sgtlib-3.5.3-py3-none-any.whl
  • Upload date:
  • Size: 229.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for sgtlib-3.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 3533a9fcba97b6ad867d7e708e5e09973780ed163b28af8225cb5a7c059bf406
MD5 7eb214a112b8ef7d39f3f92e8e1865f4
BLAKE2b-256 9df2c40cacf237d6e091f38139b60aca7f6a61a4319e09fdd87b57be8fad1185

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page