Skip to content

datax-lab/PyHistopathology

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Python Package: PyHistopathology

Read our documentation at https://pyhistopathology.readthedocs.io/en/latest/

Command line tool:

python3 WSI_PATCH_Extraction.py -args Mandatory args

  • -i: input svs file path
  • -o: output folder path
  • -f: input folder for path
    • Note: you should use either -i or -f, cannot use both. Additional args
  • -c: criteria
    • criteria: Random or None, Default is None
  • -s: patch size
    • Size of the patch to extract, default is (256,256)
  • -n: number of patches
    • Only should be given for -c Random. Default value is 2000.
  • -a: input xml
    • if annotations are provided annotations file path should be given. Otherwise don't use this arg.

Package Usage:

Reading WSI

Description

  • use WSI_Scanning.readWSI() to read an WSI Image

  • Input: WSI path or directory

  • Output: functioning numpy array of WSI Image with dtype int32 Function

  • readWSI(WSI_path, magnification_level, annotation_file, annonated_level) Arguments

    • WSI_path: Directory of WSI
    • magnification_level: level of zoom, example (40x,20x,10x,5x). Default magnification is “20x” - Note if magnification 40x for max zoom level of 20x image an error will be raised.
    • annotation_file: Default annotation = None. if annotation are available in xml formats. use annotation = inputxml file path.
    • annonated_level= if annotation is not giving no need to consider this variable. if annotation is given then mention z-axis of annotations. Default annotatedlevel =0
       ###Reading image example
       from WSI_Preprocessing.Preprocessing import WSI_Scanning 
       import cv2 
       img,slide_dim = WSI_Scanning.readWSI("example.svs") 
       cv2.imwrite("example.png",img)
    

Denoising WSI

Description

use Denoising.denoising() to remove stains, folds and other background noise in WSI

  • input: WSI Path or directory
  • Output: functioning numpy array of WSI Image (After denoising) with dtype int32.

Function

denoising(inputsvs, magnification, filtering, patch_size, upperlimit, lowerlimit, red_value, green_value, blue_value, Annotation, Annotatedlevel, Requiredlevel, meannumber) Arguments

  • inputsvs: path or location of WSI.
  • magnification: level of zoom, example (40x,20x,10x,5x). Default magnification is “20x”
    • Note if magnification 40x for max zoom level of 20x image an error will be raised.
  • filtering: GuassianBlur, RGBThersholding, None
    • GuassianBlur: Homogeneity calculations based on image smoothing and Gaussian blur equations. We compute sum of square differences between two consecutive Gaussian blurred images as score for homogeneity
      - Upper limit: upper threshold of homogeneity score. default value is 9500 with kernel size of 1111 - lower limit: lower threshold of homogeneity score. default value is 1500 with kernel size of 1111 - Patch size: Not significant parameters for GuassianBlur filtering - meannumber: Theshold of mean area to remove small patches default number is 8
    • RGBThersholding: Validated patches based on RGB values of patches - red_value, green-value, blue_values are threshold for RGB
    • None: Only removes Background
    • Note that our default is GuassianBlur technique. GuassianBlur is highly effective and requires more computational power (RAM). RGBThersholding is less effective which needs less computational power
import cv2 
# Here mandatory options are example.svs and magnification 
img = Denoising.denoising("example.svs", "20x" ) 
cv2.imwrite("example.png",img)

Extracting Patches

Description

use Extractingpatches.extractingPatches() to extract patches from WSI.

  • input: WSI Path or directory
  • output: patches from WSI.

Function: extractingPatches(inputsvs, outputpath, magnification, patch_extraction_creatia, number_of_patches, filtering, patch_size, upperlimit, lowerlimit, red_value, green_value, blue_value, Annotation, Annotationlevel, Requiredlevel, reconstructionimagepath)

Arguments - inputsvs, magnification, patch_extraction_creatia, filtering, patch_size, upperlimit, lowerlimit, red_value, green_value, blue_value, Annotation, Annotationlevel, Requiredlevel, arguments is same as denosing module. - patch_extraction_creatia: random, None - - Default is None. For extracting a fixed number of patches for WSI we can use random. - Default number of patches is 2000 - outputpath: folder to store the extracted patches - reconstructionimagepath: we you want to compare the patches with WSI we can mention the reconstructionimagepath. - Default is None - - Note: it only works with patch_extraction_creatia = None.

    • Note: For WSI number of patches can exceed 20k.
from WSI_Preprocessing.Preprocessing import Extarctingpatches
import cv2 
img = Extarctingpatches.extractingPatches("example.svs","temp" ,"20x" ) 
cv2.imwrite("exampler.png",img)
     # Here mandatory options are example.svs and magnification, and outputpath 
Extractingpatches.extractingPatches(example.svs, outputpath, magnification)

About

WSI preprocessing

Resources

Stars

7 stars

Watchers

2 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors