Source code for pwspy.utility.fluorescence

# Copyright 2018-2021 Nick Anthony, Backman Biophotonics Lab, Northwestern University
#
# This file is part of PWSpy.
#
# PWSpy is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# PWSpy is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with PWSpy.  If not, see <https://www.gnu.org/licenses/>.

"""
Functions related to fluorescent images.

Functions
-----------
.. autosummary::
   :toctree: generated/

   updateFolderStructure

"""

import os
from glob import glob
import numpy as np
import tifffile as tf
import pwspy.dataTypes as pwsdt


[docs]def updateFolderStructure(rootDirectory: str, rotate: int, flipX: bool, flipY: bool): """Used to translate old fluorescence images to the new file organization that is recognized by the code. Args: rootDirectory: The top level directory containing fluorescence images that were saved in the old `FL_Cell{X}` folder format rotate: The number of times that the images should be rotated clockwise to match up with the PWS images they go with flipX: Should the images be mirrored over the X-axis after being rotated? flipY: Should the images be mirrored over the Y-axis after being rotated? """ files = glob(os.path.join(rootDirectory, '**', 'FL_Cell*'), recursive=True) for file in files: cellNum = int(file.split('FL_Cell')[-1]) parentPath = file.split("FL_Cell")[0] data = tf.imread(os.path.join(file, 'image_bd.tif')) data = np.rot90(data, k=rotate) if flipX: data = np.flip(data, axis=1) if flipY: data = np.flip(data, axis=0) fl = pwsdt.FluorescenceImage(data, {'exposure': None}) newPath = os.path.join(parentPath, f'Cell{cellNum}', 'Fluorescence') os.mkdir(newPath) fl.toTiff(newPath)