be-544-artificial-intelligence-techniques-in-digital-histopathology

BE 544: Artificial Intelligence (AI) Techniques in Digital Histopathology (Summer 2024)

https://github.com/hossambalaha/be-544-artificial-intelligence-techniques-in-digital-histopathology

Science Score: 57.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 5 DOI reference(s) in README
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (6.6%) to scientific vocabulary
Last synced: 10 months ago · JSON representation ·

Repository

BE 544: Artificial Intelligence (AI) Techniques in Digital Histopathology (Summer 2024)

Basic Info
  • Host: GitHub
  • Owner: HossamBalaha
  • Language: Python
  • Default Branch: main
  • Size: 593 KB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 1
Created about 2 years ago · Last pushed almost 2 years ago
Metadata Files
Readme Citation

README.md

BE 544 Artificial Intelligence (AI) Techniques in Digital Histopathology (Summer 2024)

Welcome to the BE 544: Artificial Intelligence (AI) Techniques in Digital Histopathology course.

This course offers both theoretical and practical knowledge about computer vision and AI techniques essential for processing and analyzing microscopic images, contributing to the shift towards digital pathology. This transition will allow AI models to assist pathologists and healthcare professionals in managing and diagnosing various diseases.

We will explore how artificial intelligence is revolutionizing bioengineering, particularly in analyzing and interpreting digital pathology images. Join us as we uncover the latest advancements and methodologies in this exciting intersection of technology and healthcare. Whether you are a student, researcher, or simply curious about the future of healthcare technology, this playlist offers valuable insights into the innovative applications of AI in digital histopathology.

If you encountered any issues or errors in the code or lectures, please feel free to let me know. I will be more than happy to fix them and update the repository accordingly. Your feedback is highly appreciated and will help me improve the quality of the content provided in this series.

Full Playlist and Videos

This series is your gateway to the fascinating world of applying AI techniques to digital histopathology.

Full Playlist: Link: https://www.youtube.com/playlist?list=PLVrN2LRb7eT3_la39bWC0EP-IW5jNjQ-w

Videos:

  1. BE544 Lecture 01 - Intro to Histopathology
  2. BE544 Lecture 02 - Intro to Histopathology (Contd.)
  3. BE544 Lecture 03 - Intro to QuPath
  4. BE544 Lecture 04 - Intro to Aperio ImageScope
  5. BE544 Lecture 05 - Working with Annotations and Extracting Tiles
  6. BE544 Lecture 06 - Working with Annotations and Extracting Tiles (Contd.)
  7. BE544 Lecture 07 - Classification using Convolutional Neural Network
  8. BE544 Lecture 08 - Classification using Convolutional Neural Network (Contd.)
  9. BE544 Lecture 09 - Classification using Convolutional Neural Network (Contd.)
  10. BE544 Lecture 10 - Performance Metrics and Transfer Learning
  11. BE544 Lecture 11 - Hyperparameters Optimization using Keras Tuner and Optuna
  12. BE544 Lecture 12 - Vision Transformers (ViTs) Explained
  13. BE544 Lecture 13 - Vision Transformers (ViTs) Implementation and Training from Scratch
  14. BE544 Lecture 14 - Pretrained Vision Transformers (ViTs) using Hugging Face

Programming Language and Libraries

The programming language used in this series is Python, and the primary libraries employed are:

  1. OpenSlide - A C library that provides a simple interface to read whole-slide images (also known as virtual slides).
  2. OpenCV - An open-source computer vision and machine learning software library.
  3. NumPy - A fundamental package for scientific computing with Python.
  4. Matplotlib - A comprehensive library for creating static, animated, and interactive visualizations in Python.
  5. Scikit-learn - A simple and efficient tool for data mining and data analysis built on NumPy, SciPy, and Matplotlib.
  6. TensorFlow - An end-to-end open-source platform for machine learning.
  7. Keras - An open-source neural network library written in Python.
  8. Split Folders - A simple library to split folders into training, validation, and testing directories.
  9. Keras Tuner - A library to perform hyperparameter tuning for Keras models.
  10. Optuna - An automatic hyperparameter optimization software framework, particularly designed for machine learning.
  11. Patchify - A library to extract patches from images.
  12. PyTorch - An open-source machine learning library based on the Torch library.
  13. TorchVision - A library from PyTorch that consists of popular datasets, model architectures, and common image transformations for computer vision.
  14. Transformers - A library for Natural Language Processing (NLP) using deep learning techniques.
  15. Datasets - A library to access and share datasets and evaluation metrics for machine learning.
  16. Pillow - A library to add support for opening, manipulating, and saving many different image file formats.
  17. TensorBoard - A suite of visualization tools to make training and debugging models easier in TensorFlow.
  18. Pandas - A fast, powerful, flexible, and easy-to-use open-source data analysis and data manipulation library.

The packages versions of the libraries used in this series are:

text cv2==4.9.0 numpy==1.26.4 matplotlib==3.8.3 scikit-learn==1.4.1.post1 tensorflow==2.10.1 keras==2.10.0 splitfolders==0.5.1 keras_tuner==1.4.7 optuna==3.6.1 patchify==0.2.3 torch==2.0.0+cu118 torchvision==0.15.1+cu118 transformers==4.32.0 datasets==2.14.4 pillow==10.2.0 tensorboard==2.10.0 pandas==1.5.3

To install the required libraries, you can use the following PIP commands:

pip install opencv-python==4.9.* pip install opencv-contrib-python==4.9.* pip install numpy==1.26.4 pip install matplotlib==3.8.3 pip install scikit-learn==1.4.1.post1 pip install tensorflow==2.10.1 pip install keras==2.10.0 pip install split-folders==0.5.1 pip install keras-tuner==1.4.7 pip install optuna==3.6.1 pip install patchify==0.2.3 pip install torch==2.0.0+cu118 pip install torchvision==0.15.1+cu118 pip install transformers==4.32.0 pip install datasets==2.14.4 pip install pillow==10.2.0 pip install tensorboard==2.10.0 pip install pandas==1.5.3

Disclaimer: The versions of the libraries may change based on updates and releases. However, the code should work with the latest versions. Please note that the code has been tested on Python 3.9.17 and the specified library versions on a Windows 11 machine. The GPU specifications are NVIDIA Quadro M4000 with CUDA 11.8. It has not been tested on other operating systems or other versions of Python and the libraries.

Dataset, Extracted Patches, and Code

Datasets:

BACH Dataset : Grand Challenge on Breast Cancer Histology images:

The dataset is composed of Hematoxylin and eosin (H&E) stained breast histology microscopy and whole-slide images. Challenge participants should evaluate the performance of their method on either/both sets of images.

Challenge Link: https://iciar2018-challenge.grand-challenge.org/Dataset/

Citation: Polnia, A., Eloy, C., & Aguiar, P. (2019). BACH Dataset : Grand Challenge on Breast Cancer Histology images [Data set]. In Medical Image Analysis (Vol. 56, pp. 122139). Zenodo. https://doi.org/10.5281/zenodo.3632035

Disclaimer: The datasets are provided for educational purposes only. They are publicly available and can be accessed from their original links. The author, myself, does not own the datasets.

Extracted Patches:

You can use the extracted patches (link below) from the dataset called the "BACH Dataset." These patches are organized for training, testing, and validation across the three magnification levels and four classes. To download the extracted patches, you can use the following link:

https://drive.google.com/drive/folders/1FqSs-xWs-vvcHUl3ojkBbTzZl-JEK9oJ

Each compressed ROI/Tiles file in the previous link will comprise three subfolders: train, val, and test. Within each of these, there will be four inner subfolders representing the four categories. The naming of the compressed files/folders pattern is {ROIs/Tiles}_{level}_{width}_{height}_{width overlap}_{height overlap}_Split.

For replicability, the dataset's structure and associated metadata are detailed in the table below. The overlap measures 32 in width and height for level 0, 4 for levels 1 and 2. A maximum of 2,000 samples are extracted from each region. The tolerance, based on the base level, is set to 0.7. The Python snippet [8] Extract All Tiles with Overlapping.py is employed for this purpose.

The updated annotations that include the Normal class are available in the BACH Dataset - Updated Annotations folder.

Disclaimer: The annotations for that class are done manually by me. The annotations are provided for educational purposes only.

Level 0 (Base Level) Level 1 Level 2
ROI Filename ROIs_0_256_256_32_32_Split ROIs_1_256_256_4_4_Split ROIs_2_256_256_4_4_Split
Tiles Filename Tiles_0_256_256_32_32_Split Tiles_1_256_256_4_4_Split Tiles_2_256_256_4_4_Split
Shape (Width x Height) 256x256 256x256 256x256
Overlap (Width x Height) 32x32 4x4 4x4
# Patches Count 12,000 (3K/Class) 1,500 (375/Class) 280 (70/Class)
# Training Count 8,000 (2K/Class) 1,100 (275/Class) 200 (50/Class)
# Validation Count 2,000 (500/Class) 200 (50/Class) 40 (10/Class)
# Testing Count 2,000 (500/Class) 200 (50/Class) 40 (10/Class)

Code:

All code used in the lectures will be available in this GitHub repository (https://github.com/HossamBalaha/BE-544-Artificial-Intelligence-Techniques-in-Digital-Histopathology) in the Lectures Scripts folder.

Copyright and License

No part of this series may be reproduced, distributed, or transmitted in any form or by any means, including photocopying, recording, or other electronic or mechanical methods, without the prior written permission of the author, except in the case of brief quotations embodied in critical reviews and certain other noncommercial uses permitted by copyright law. For permission requests, contact the author.

The code provided in this series is for educational purposes only and should be used with caution. The author is not responsible for any misuse of the code provided.

Citations and Acknowledgments

If you find this series helpful and use it in your research or projects, please consider citing it as:

```bibtex @software{BalahaBE645Artificial2024, author = {Balaha, Hossam Magdy}, month = jun, title = {{BE 544 Artificial Intelligence (AI) Techniques in Digital Histopathology (Summer 2024)}}, url = {https://github.com/HossamBalaha/BE-544-Artificial-Intelligence-Techniques-in-Digital-Histopathology}, version = {1.06.20}, year = {2024} }

@software{hossammagdybalaha202412170422, author = {Hossam Magdy Balaha}, title = {{HossamBalaha/BE-544-Artificial-Intelligence-Techniques-in-Digital-Histopathology: v1.06.20}}, month = jun, year = 2024, publisher = {Zenodo}, version = {v1.06.20}, doi = {10.5281/zenodo.12192041}, url = {https://doi.org/10.5281/zenodo.12192041} } ```

Contact

This series is prepared and presented by Hossam Magdy Balaha from the University of Louisville's J.B. Speed School of Engineering.

For any questions or inquiries, please contact me using the contact information available on my CV at the following link: https://hossambalaha.github.io/

Owner

  • Name: Hossam Magdy Balaha
  • Login: HossamBalaha
  • Kind: user

Online CV @ https://hossambalaha.github.io/

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you use this software, please cite it as below.
authors:
  - family-names: "Balaha"
    given-names: "Hossam Magdy"
    orcid: https://orcid.org/0000-0002-0686-4411
    email: hmbala01@louisville.edu
title: "BE 544 Artificial Intelligence (AI) Techniques in Digital Histopathology (Summer 2024)"
version: "1.06.20"
identifier:
  - type: "DOI"
    value: "https://doi.org/10.5281/zenodo.12192041"
date-released: 2024-06-19
url: "https://github.com/HossamBalaha/BE-544-Artificial-Intelligence-Techniques-in-Digital-Histopathology"

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1