Skip to content

slideThumb

Sander W. van der Laan edited this page Jan 8, 2024 · 7 revisions

slideThumb provides a command-line interface for extracting and optionally displaying thumbnails from whole-slide images. Users can customize various parameters, and the script includes helpful information about image properties and licensing. The thumbnail extraction is using ImageMagick (bash-version) or based on the OpenSlide library (python-version), and the script is designed to be flexible for different use cases.

Two versions are available:

  • This is a bash implementation.
  • This is a python3 implementation which is much faster than the bash version.

Bash version

The bash version relies on external commands like convert and tiffinfo (part of the ImageMagick toolkit) and Perl.

Argument(s):

  • -f, --file <filename>
    • Specify the virtual slide file from which to extract the thumbnail.

Optional argument(s):

  • -l, --layer <integer>
    • Force a specific layer by layer id.
  • --suffix <text>
    • Specify a suffix to be appended to the filename for the output thumbnail. Default is ".thumb".
  • --extension <text>
    • Specify the output extension for the thumbnail. Default is "png".
  • --output-dir <path>
    • Specify the path to the output directory. Default is "." (relative to the input file).
  • --resize <widthxheight>
    • Specify the maximum output dimensions for the thumbnail. Default is "1024x1024".
  • --convert-args='<arguments>'
    • Specify additional arguments for the convert command (equal sign and quotes are required).
  • --ignore-dependencies
    • Ignore missing dependencies and continue with a warning.
  • --help
    • Display help information.
  • --version
    • Display version and license information.

Examples:

  • Example 1: Basic usage
./slideThumb -f "file.svs"
  • Example 2: Specify layer and custom suffix and extension
./slideThumb --layer=5 --suffix=".suffix" --extension="jpg" "file.tif"

Print a job list for parallel processing:

find "$(pwd)" -iname "*.TIF" -exec "$(command -v "$SCRIPTNAME")" -f "{}" \;

Print a job list for 'SLURM' (if using a queueing system):

for i in $(find ./ -iname "*tif"); do
  j="$(echo "$(cd "$(dirname "$i")"; pwd)"/"$(basename "$i")")";
  echo "sbatch $DEFAULT_SLURMARGS" "$(command -v "$SCRIPTNAME")" --file="${j}"
done

Python version

Example usage:

python slideThumb.py --input AE1234.SR.ndpi

Argument(s):

  • -i, --input
    • Provide a single WSI or list of WSIs. Required.

Optional argument(s):

  • -d, --display
    • Also show Thumbnail on display, default simply writes thumbnails. Optional.
  • -o, --outdir
    • Output dir, default is present working directory. Optional.
  • -s, --suffix
    • Suffix to append to end of file, default is 'thumb' for thumbnail. Optional.
  • -t, --type
    • Output file type, default is png (which is slower), other options are tif. Optional.
  • -f, --force
    • Force output even if it exists. Optional.
  • -v, --verbose
    • While writing images also display image properties. Optional.
  • -h, --help
    • Show this help message and exit. Optional.
Clone this wiki locally