Demonstration of optical transparency in ex vivo chicken breast tissue
To investigate light propagation through ex vivo tissue, we used sliced pieces of raw boneless chicken breast with thicknesses of 1.5 mm, 2.5 mm, and 3.5 mm (Figure 2B). The tissues were cut parallel to collagen fibers, ensuring consistent muscle fiber orientation. Images were taken using both a mesh grid pattern and "UT Dallas" logo underneath the tissue before and after treating with different solution concentrations (Figure 2B). To capture the images, a CMOS camera paired with a lens featuring a 3.5 mm focal length and f/1.4 aperture was used, and an LED light source was used for back illumination of the sample. The corresponding transmission data for each tissue was then measured using a UV-VIS-NIR spectrometer (Figure 2C).
The optical transparency of the tissue can be visualized by the naked eye and quantified with spectrometer measurements. For the untreated chicken tissues, the underlying patterns are completely invisible, and the transmission values in the visible region are approximately 2.4%, 1.7% and 1% for tissue thicknesses of 1.5 mm, 2.5 mm, and 3.5 mm, respectively. At 1064 nm wavelength, the transmission values are 8%, 5% and 1.8% for the same thicknesses. The solutions were prepared by dissolving the Tartrazine powder in deionized water. After the tissues were soaked in Tartrazine solutions of increasing concentrations, the dye molecules diffused throughout the extracellular matrix and cellular compartments, altering the refractive index of the interstitial medium13. This refractive index matching substantially reduces the light scattering within tissue, resulting in enhanced dynamic imaging and higher transmission in spectroscopic measurements. As the Tartrazine concentration increased from 0-0.65 M, the refractive index of dye solutions increased, and the transparency of the tissue substantially improved. For 0.65 M dye solution, the grid pattern and UT Dallas logo underneath the tissues become clearly visible, and transmission increased to 38.7%, 25%, and 21.7% in the visible spectrum for thicknesses of 1.5 mm, 2.5 mm, and 3.5 mm, respectively. At 1064 nm wavelength, the transmission values were 50%, 36.8% and 37.5% for the same samples.
Demonstration of optical transparency in living animals
For dynamic imaging in live animals, a dye solution with 0.65 M concentration was prepared, and 0.4% low-melting agarose was added to adjust the solution's viscosity and improve adherence to the skin. During the gut imaging, the animal was anesthetized using inhalation anesthesia, and the body temperature was maintained at 37 °C using a digitally controlled heating pad. Abdominal fur was removed by shaving and applying hair removal cream on the skin, following the process shown in Figure 3B, and then the topical application of 0.65 M dye solution. The Tartrazine solution was applied to the skin for 2 min and then gently massaged. Immediately, within a few minutes, the dye molecules diffuse into the extracellular matrix and superficial dermal layers. The diffusion of the dye molecules reduces the refractive index mismatch between low-index aqueous interstitial fluid and high-index lipid-rich structures, resulting in reduced scattering of incident light at tissue interfaces and cellular boundaries. As a result, the skin becomes visibly transparent in the visible spectrum for wavelengths longer than 550 nm, making it possible to visualize the deep-seated organs without surgically removing the skin (Figure 3B-E). For optical imaging of the brain vessels, the mouse was anesthetized using injectable anesthesia, and fur was removed before the application of the dye solution. The results demonstrate transparency of the scalp and visualization of cerebral blood vessels, validating the effectiveness of this technique for brain imaging (Figure 3F,G).
To demonstrate the reproducibility of the protocol, the transparency results obtained for three different mice are presented in Figure 3. Young adult female mice (3-4 weeks old, approximately 10-12 g) are used for abdominal imaging, including two different mouse lines, C57BL/6J (Figure 3C,F) and Chat-Cre x tdTomato (Figure 3E). The results obtained for all three mice show enhanced transparency of the skin and visualization of the internal organs after treatment with dye solution, validating this tissue-clearing approach. Results from mouse-1 are displayed in detail over multiple time points and reveal gradual transparency over the time of gel solution application while highlighting temporal progression and effectiveness of the method (Figure 3B,C). It is worth noting that even for mice of the same sex and similar ages, the arrangements and visual appearance of internal organs can vary between individuals, highlighting the unique advantage of chronic imaging of the same animal for developmental studies.
Reversibility
The optical tissue clearing approach used in this protocol is reversible, which gives this approach a significant advantage for in vivo applications. The optical transparency of the tissue can be reversed by simply rinsing and gently massaging the skin with water. In this case, the transparency effect disappears immediately, and the yellow coloration from the dye fades within a few minutes. If the tissue is not rinsed, the color gradually disappears over the course of a few hours due to passive diffusion. The image shown in Figure 3B, captured after 2 h of the abdominal experiment, indicates that transparency is temporary, and it can be fully reversed. Following reversal, the skin maintains a normal appearance, and the mice exhibit typical activity, and the hair on the treated skin regrows within several days (Figure 3C). This further confirms the safety and effectiveness of this approach for dynamic imaging in live animals, especially for potential chronic imaging applications of the same animals (Figure 4 and Table 2).

Figure 1: Schematic illustration of the in vivo (A) and ex vivo (B) optical clearing of tissue using absorbing molecule solutions. Please click here to view a larger version of this figure.

Figure 2: Procedure for optical clearing of ex vivo tissue. (A) Photographs of the solutions preparation and clearing processes of the ex vivo tissue. (B) Optical images of the chicken breast tissue with different thicknesses placed on top of a pattern. (C) Optical transmittance spectra of the chicken breast tissue with different thicknesses. Scale bars: 5 mm. Please click here to view a larger version of this figure.

Figure 3: Procedure for optical clearing and imaging of animals. (A) Schematics illustrating the application of absorbing molecules on the mouse belly. (B) Temporal image series illustrates that the tissue becomes transparent and returns to opacity after the experiment. (C) Long-term monitoring of the tissue of the mice illustrating the recovery of the mice's belly. (D,E) Optical imaging results from two different animals. (F) Schematics illustrating the application of absorbing molecules on the mouse head. (G) Images showing the change of transparency of tissue for visualizing the vessels on the surface of the brain. Scale bars: 5 mm. Please click here to view a larger version of this figure.

Figure 4: Image processing for improved visualization of organs. (A) Workflow showing the image processing steps from a raw image to segmented organ images. (B) Representative images showing each step after image processing. Please click here to view a larger version of this figure.
| Tartrazine mass (mg) dissolved in 1 mL water | Relative percentage of Tartrazine in solution | Calibrated molecular concentration (M) |
| 106.9 | 9.70% | 0.18 |
| 213.7 | 17.60% | 0.37 |
| 320.8 | 24.30% | 0.53 |
| 426.6 | 29.90% | 0.65 |
Table 1: Preparation recipe of Tartrazine solutions of different concentrations.
| Image Processing Step | Library | Function (Code) |
| Import Libraries | OpenCV, numpy, matplotlib, PyWavelets | import cv2
import numpy as np
import matplotlib.pyplot as plt
import pywt
import os |
| Loading the original .TIF image | cv2 | color_image = cv2.imread(image_path, cv2.IMREAD_UNCHANGED) |
| Normalization if pixel values exceed 255 | numpy & cv2 | if color_image.max() > 255:
color_image = (color_image / color_image.max()) * 255
color_image = color_image.astype(np.uint8) |
| Display color image | matplotlib.pyplot & cv2 | plt.imshow(cv2.cvtColor(color_image, cv2.COLOR_BGR2RGB))
plt.axis("off")
plt.show() |
| Cropping (selecting ROI interactively) | cv2 | roi = cv2.selectROI("Select Region", color_image, fromCenter=False, showCrosshair=True)
x, y, w, h = roi
cropped_color = color_image[y:y+h, x:x+w]
cv2.destroyAllWindows() |
| Split LAB channels | cv2 | lab_color = cv2.cvtColor(cropped_color, cv2.COLOR_BGR2LAB)
l_channel, a_channel, b_channel = cv2.split(lab_color) |
| Analyzing pixel distribution (histogram of intensities) | matplotlib.pyplot | plt.figure(figsize=(8,6))
plt.hist(l_channel.ravel(), bins=256, range=[0,255], color='black', alpha=0.7)
plt.title("Pixel Intensity Distribution")
plt.xlabel("Intensity Value")
plt.ylabel("Pixel Count")
plt.grid()
plt.show() |
| Applying CLAHE to spread pixel intensities | cv2 | clahe = cv2.createCLAHE(clipLimit=5.0, tileGridSize=(16,16))
l_channel_clahe = clahe.apply(l_channel)
lab_clahe = cv2.merge((l_channel_clahe, a_channel, b_channel))
cropped_color_clahe = cv2.cvtColor(lab_clahe, cv2.COLOR_LAB2RGB) |
| Plot CLAHE-enhanced image and histogram | matplotlib.pyplot | plt.figure(figsize=(15,5))
plt.subplot(1,2,1)
plt.title("CLAHE Enhanced Image")
plt.imshow(cropped_color_clahe)
plt.axis("off")
plt.subplot(1,2,2)
plt.hist(l_channel_clahe.ravel(), bins=256, range=[0,255], color='black', alpha=0.7)
plt.title("Pixel Distribution after CLAHE")
plt.xlabel("Intensity Value")
plt.ylabel("Pixel Count")
plt.grid()
plt.show() |
| Applying wavelet denoising to image | pywt, numpy & cv2 | coeffs = pywt.wavedec2(np.float32(l_channel_clahe)/255.0, 'db1', level=2)
coeffs_thresh = list(coeffs)
for i in range(1, len(coeffs_thresh)):
coeffs_thresh[i] = tuple(pywt.threshold(subband, 0.1, mode='soft') for subband in coeffs_thresh[i])
l_wavelet = np.uint8(pywt.waverec2(coeffs_thresh, 'db1') * 255)
lab_wavelet_denoised = cv2.merge((l_wavelet, a_channel, b_channel))
color_wavelet_denoised = cv2.cvtColor(lab_wavelet_denoised, cv2.COLOR_LAB2RGB) |
| Display original vs. wavelet-denoised image | matplotlib.pyplot & cv2 | plt.figure(figsize=(12,6))
plt.subplot(1,2,1)
plt.imshow(cv2.cvtColor(cropped_color, cv2.COLOR_BGR2RGB))
plt.title("Original Color Image")
plt.axis("off")
plt.subplot(1,2,2)
plt.imshow(color_wavelet_denoised)
plt.title("Wavelet Denoised Image")
plt.axis("off")
plt.show() |
| Thresholding for segmenting organs (Otsu’s method) | cv2 | otsu_val, _ = cv2.threshold(l_wavelet, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
bias_val = otsu_val - 15
_, otsu_adjusted = cv2.threshold(l_wavelet, bias_val, 255, cv2.THRESH_BINARY)
otsu_segmented = cv2.cvtColor(cv2.merge((otsu_adjusted, a_channel, b_channel)), cv2.COLOR_LAB2RGB)
plt.imshow(otsu_segmented)
plt.axis("off")
plt.show() |
Table 2: Image processing steps, libraries, and scripts.