skinoptics.absorption_coefficient module

SkinOptics
Copyright (C) 2024 Victor Lima
This program 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.
This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
Victor Lima
victorporto@ifsc.usp.br
victor.lima@ufscar.br
Release Date:
October 2024
Last Modification:
October 2024
References:
[HQ73] Hale & Querry 1973.
Optical Constants of Water in the 200-nm to 200-μm Wavelength Region.
[S81] Segelstein 1981.
The complex refractive index of water.
[AF90] Agati & Fusi 1990.
New trends in photobiology recent advances in bilirubin photophysics.
[B90] Billett 1990.
Hemoglobin and Hematocrit.
[v*05] van Veen, Sterenborg, Pifferi, Torricelli, Chikoidze & Cubeddu 2005.
Determination of visible near-IR absorption coefficients of mammalian fat using time- and spatially resolved
diffuse reflectance and transmission spectroscopy.
[H02] Hecht 2002.
Optics. (4th Edition)
[S*06] Salomatina, Jiang, Novak & Yaroslavsky 2006.
Optical properties of normal and cancerous human skin in the visible and near-infrared spectral range.
[SS06] Sarna & Swartz 2006.
The Physical Properties of Melanins.
[DJV11] Delgado Atencio, Jacques & Vázquez y Montiel 2011.
Monte Carlo Modeling of Light Propagation in Neonatal Skin.
[J13] Jacques 2013.
Optical properties of biological tissues: a review.
[B*14] Bosschaart, Edelman, Aalders, van Leeuwen & Faber 2014.
A literature review and novel theoretical approach on the optical properties of whole blood.
[G17] Griffiths 2017.
Introduction to Electrodynamics. (4th Edition)
[TL23] Taniguchi & Lindsey 2023.
Absorption and fluorescence spectra of open-chain tetrapyrrole pigments – bilirubins, biliverdins, phycobilins, and synthetic analogues.
[S*23] Sá, Bacal, Gomes, Silva, Gonçalves & Malta 2023.
Blood count reference intervals for the Brazilian adult population: National Health Survey.
skinoptics.absorption_coefficient.Cmass_from_Cmolar(Cmolar, molar_mass)

Calculate the mass concentration from the molar concentration and the molar mass.

\(C_{mass} = M \mbox{ } C_{molar}\)

Parameters:
  • Cmolar (float or np.ndarray) – molar concentration [M]

  • molar_mass (float) – molar mass [g mol^-1]

Returns:

  • Cmass (float or np.ndarray) – mass concentration [g L^-1]

skinoptics.absorption_coefficient.Cmolar_from_Cmass(Cmass, molar_mass)

Calculate the molar concentration from the mass concentration and the molar mass.

\(C_{molar} = \frac{C_{mass}}{M}\)

Parameters:
  • Cmass (float or np.ndarray) – mass concentration [g L^-1]

  • molar_mass (float) – molar mass [g mol^-1]

Returns:

  • Cmolar (float or np.ndarray) – molar concentration [M]

skinoptics.absorption_coefficient.ext_eum_Sarna(lambda0)
The extinction coefficient of EUMELANIN in phosphate buffer as a function of wavelength.
Linear interpolation of data from Sarna & Swartz 2006 [SS06] (see their Fig. 16.3-a)
graphically deduced by Jacques and publicly available at
wavelength range: [210 nm, 820 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • ext (float or np.ndarray) – extinction coefficient [cm^-1 mL mg^-1]

skinoptics.absorption_coefficient.ext_from_Abs_and_Cmass(Abs, Cmass, pathlength)
Calculate the extinction coefficient from the absorbance, the mass concentration
and the pathlength.

\(\varepsilon_{mass}(\lambda) = \frac{Abs(\lambda)}{L \mbox{ } C_{mass}}\)

Parameters:
  • Abs (float or np.ndarray) – absorbance [-]

  • Cmass (float) – mass concentration [g L^-1]

  • pathlength (float) – pathlength [cm]

Returns:

  • ext (float or np.ndarray) – extinction coefficient [cm^-1 mL mg^-1]

skinoptics.absorption_coefficient.ext_from_molarext(molarext, molar_mass)
Calculate the extinction coefficient from the molar extinction coefficient
and the molar mass.

\(\varepsilon_{mass}(\lambda) = \frac{\varepsilon_{molar}(\lambda)}{M}\)

Parameters:
  • molarext (float or np.ndarray) – molar extinction coefficient [cm^-1 M^-1]

  • molar_mass (float) – molar mass [g mol^-1]

Returns:

  • ext (float or np.ndarray) – extinction coefficient [cm^-1 mL mg^-1]

skinoptics.absorption_coefficient.ext_from_mua_and_Cmass(mua, Cmass)
Calculate the extinction coefficient from the absorption coefficient
and the mass concentration.
For details please check Jacques 2013 [J13].

\(\varepsilon_{mass}(\lambda) = \frac{1}{\mbox{ln}(10)}\frac{\mu_a(\lambda)}{C_{mass}}\)

Parameters:
  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

  • Cmass (float) – mass concentration [g L^-1]

Returns:

  • ext (float or np.ndarray) – extinction coefficient [cm^-1 mL mg^-1]

skinoptics.absorption_coefficient.ext_phe_Sarna(lambda0)
The extinction coefficient of PHEOMELANIN in phosphate buffer as a function of wavelength.
Linear interpolation of data from Sarna & Swartz 2006 [SS06] (see their Fig. 16.3-a)
graphically deduced by Jacques and publicly available at
wavelength range: [210 nm, 820 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • ext (float or np.ndarray) – extinction coefficient [cm^-1 mL mg^-1]

skinoptics.absorption_coefficient.k_from_mua(mua, lambda0)
Calculate the imaginary part of the complex refractive index from the absorption coefficient
and the wavelength.
For details please check Hecht 2002 [H02], Jacques 2013 [J13] and Griffiths 2017 [G17].

\(k(\lambda) = \frac{\mu_a(\lambda)}{4\pi}\lambda\)

Parameters:
  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

  • lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • k (float or np.ndarray) – imaginary part of the complex refractive index [-]

skinoptics.absorption_coefficient.k_wat_Hale(lambda0)
The imaginary part of the complex refractive index of WATER as a function of wavelength.
Linear interpolation of data from Hale & Querry 1973 [HQ73] (see their Table I).
wavelength range: [200 nm, 200 μm]
temperature: 25 ºC
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • k (float or np.ndarray) – imaginary part of the complex refractive index [-]

skinoptics.absorption_coefficient.k_wat_Segelstein(lambda0)
The imaginary part of the complex refractive index of WATER as a function of wavelength.
Linear interpolation of data from D. J. Segelstein’s M.S. Thesis 1981 [S81] collected
by S. Prahl and publicly available at <https://omlc.org/spectra/water/abs/index.html>.
wavelength range: [10 nm, 10 m]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • k (float or np.ndarray) – imaginary part of the complex refractive index [-]

skinoptics.absorption_coefficient.molarext_bil_Li(lambda0)
The molar extinction coefficient of BILIRUBIN in chloroform as a function of wavelength.
Linear interpolation of experimental data obtained with a Cary 3 by J. Li on 1997,
scaled to match 55,000 cm^-1 M^-1 at 450.8 nm [AF90] and publicly available by S. Prahl
The data is also available at PhotochemCAD [TL23]
wavelength range: [239.75 nm, 700 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • molarext (float or np.ndarray) – molar extinction coefficient [cm^-1 M^-1]

skinoptics.absorption_coefficient.molarext_deo_Prahl(lambda0)
The molar extinction coefficient for DEOXYHEMOGLOBIN in water as a function of wavelength.
Linear interpolation of data from various sources compiled by S. Prahl and publicly
wavelength range: [250 nm, 1000 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • molarext (float or np.ndarray) – molar extinction coefficient [cm^-1 M^-1]

skinoptics.absorption_coefficient.molarext_eum_Sarna(lambda0)
The molar extinction coefficient of EUMELANIN in phosphate buffer as a function of wavelength.
Linear interpolation of data from Sarna & Swartz 2006 [SS06] (see their Fig. 16.3-a)
graphically deduced by Jacques and publicly available at
wavelength range: [210 nm, 820 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • molarext (float or np.ndarray) – molar extinction coefficient [cm^-1 M^-1]

skinoptics.absorption_coefficient.molarext_from_Abs_and_Cmolar(Abs, Cmolar, pathlength)
Calculate the molar extinction coefficient from the absorbance, the molar concentration
and the pathlength.

\(\varepsilon_{molar}(\lambda) = \frac{Abs(\lambda)}{L \mbox{ } C_{molar}}\)

Parameters:
  • Abs (float or np.ndarray) – absorbance [-]

  • Cmolar (float) – molar concentration [g L^-1]

  • pathlength (float) – pathlength [cm]

Returns:

  • molarext (float or np.ndarray) – molar extinction coefficient [cm^-1 M^-1]

skinoptics.absorption_coefficient.molarext_from_ext(ext, molar_mass)
Calculate the molar extinction coefficient from the extinction coefficient
and the molar mass.

\(\varepsilon_{molar}(\lambda) = M \mbox{ } \varepsilon_{mass}(\lambda)\)

Parameters:
  • ext (float or np.ndarray) – extinction coefficient [cm^-1 mL mg^-1]

  • molar_mass (float) – molar mass [g mol^-1]

Returns:

  • molarext (float or np.ndarray) – molar extinction coefficient [cm^-1 M^-1]

skinoptics.absorption_coefficient.molarext_from_mua_Cmolar(mua, Cmolar)
Calculate the molar extinction coefficient from the absorption coefficient
and the molar concentration.
For details please check Jacques 2013 [J13].

\(\varepsilon_{molar}(\lambda) = \frac{1}{\mbox{ln}(10)}\frac{\mu_a(\lambda)}{C_{molar}}\)

Parameters:
  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

  • Cmolar (float) – molar concentration [M]

Returns:

  • molarext (float or np.ndarray) – molar extinction coefficient [cm^-1 M^-1]

skinoptics.absorption_coefficient.molarext_oxy_Prahl(lambda0)
The molar extinction coefficient of OXYHEMOGLOBIN in water as a function of wavelength.
Linear interpolation of data from various sources compiled by S. Prahl and publicly
wavelength range: [250 nm, 1000 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • molarext (float or np.ndarray) – molar extinction coefficient [cm^-1 M^-1]

skinoptics.absorption_coefficient.molarext_phe_Sarna(lambda0)
The molar extinction coefficient of PHEOMELANIN in phosphate buffer as a function of wavelength.
Linear interpolation of data from Sarna & Swartz 2006 [SS06] (see their Fig. 16.3-a)
graphically deduced by Jacques and publicly available at
wavelength range: [210 nm, 820 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • molarext (float or np.ndarray) – molar extinction coefficient [cm^-1 M^-1]

skinoptics.absorption_coefficient.mua_DE_Salomatina(lambda0)
The absoption coefficient of human DERMIS as a function of wavelength.
Linear interpolation of experimental data from Salomatina et al. 2006 [S*06],
wavelength range: [370 nm, 1600 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_EP_Salomatina(lambda0)
The absoption coefficient of human EPIDERMIS as a function of wavelength.
Linear interpolation of experimental data from Salomatina et al. 2006 [S*06],
wavelength range: [370 nm, 1600 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_HY_Salomatina(lambda0)
The absoption coefficient of human HYPODERMIS as a function of wavelength.
Linear interpolation of experimental data from Salomatina et al. 2006 [S*06],
wavelength range: [374 nm, 1600 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_SCC_Salomatina(lambda0)
The absoption coefficient of SQUAMOUS CELL CARCINOMA as a function of wavelength.
Linear interpolation of experimental data from Salomatina et al. 2006 [S*06],
wavelength range: [370 nm, 1600 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_baseline(lambda0)
The baseline absorption coefficient as a function of wavelength.
Equation proposed by S. Jacques based on data for bloodless rat skin.

\(\mu_a^{bas}(\lambda) = 0.0244 + 8.53\mbox{ exp}(-(\lambda-154)/66.2)\)

wavelength range: [350 nm, 1100 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_baseline2(lambda0)
The baseline absorption coefficient as a function of wavelength.
Equation based on data for neonatal skin.

\(\mu_a^{bas}(\lambda) = 7.84 \times 10^7 \times \lambda^{-3.255}\)

wavelength range: [450 nm, 750 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_bil_Li(lambda0, Cmass_bil, molar_mass_bil=585)
The absorption coefficient of BILIRUBIN in chloroform as a function of wavelength.
bilirubin mass concentration.
wavelength range: [239.75 nm, 700 nm]
Parameters:
  • lambda0 (float or np.ndarray) – wavelength [nm]

  • Cmass_bil (float) – bilirubin mass concentration [g/L]

  • molarmass_bil (float) – molar mass of bilirubin [g/mol] (default to 585. [DJV11])

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_deo_Bosschaart(lambda0)
The absorption coefficient of DEOXIGENIZED BLOOD (saturation = 0%) as a function of wavelength.
Linear interpolation of data from Bosschaart et. al. 2014 [B*14].
wavelength range: [251 nm, 1995 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_deo_Prahl(lambda0, Cmass_deo=150, molar_mass_deo=64500)
The absorption coefficient of DEOXYHEMOGLOBIN in water as a function of wavelength.
deoxyhemoglobin mass concentration.
wavelength range: [250 nm, 1000 nm]
Parameters:
  • lambda0 (float or np.ndarray.) – wavelength [nm]

  • Cmass_oxy (float) – deoxyhemoglobin mass concentration [g/L] (default to 150. [S*23])

  • molar_mass_deo (float) – molar mass of deoxyhemoglobin [g/mol] (default to 64500. [B90])

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_fat_vanVeen(lambda0)
The absorption coefficient of (pig lard) FAT as a function of wavelength.
Linear interpolation of data from van Veen et al. 2005 [v*05] collected and processed
by S. Prahl and publicly available at <https://omlc.org/spectra/fat/>.
wavelength range: [429 nm, 1098 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_from_ext_and_Cmass(ext, Cmass)
Calculate the absorption coefficient from the extinction coefficient and the mass concentration.
For details please check Jacques 2013 [J13].

\(\mu_a(\lambda) = \mbox{ln}(10) \mbox{ } C_{mass} \mbox{ } \varepsilon_{mass}(\lambda)\)

Parameters:
  • ext (float or np.ndarray) – extinction coefficient [cm^-1 mL mg^-1]

  • Cmass (float) – mass concentration [g L^-1]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_from_k(k, lambda0)
Calculate the absorption coefficient from the imaginary part of the complex refractive index
and the wavelength.
For details please check Hecht 2002 [H02], Jacques 2013 [J13] and Griffiths 2017 [G17].

\(\mu_a(\lambda) = 4\pi \frac{k(\lambda)}{\lambda}\)

Parameters:
  • k (float or np.ndarray) – imaginary part of the complex refractive index [-]

  • lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_from_molarext_and_Cmolar(molarext, Cmolar)
Calculate the absorption coefficient from the molar extinction coefficient
and the molar concentration.
For details please check Jacques 2013 [J13].

\(\mu_a(\lambda) = \mbox{ln}(10) \mbox{ } C_{molar} \mbox{ } \varepsilon_{molar}(\lambda)\)

Parameters:
  • molarext (float or np.ndarray) – molar extinction coefficient [cm^-1 M^-1]

  • Cmolar (float) – molar concentration [M]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_iBCC_Salomatina(lambda0)
The absoption coefficient of INFILTRATIVE BASAL CELL CARCINOMA as a function of wavelength.
Linear interpolation of experimental data from Salomatina et al. 2006 [S*06],
wavelength range: [370 nm, 1600 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_mel_Jacques(lambda0)
The absoption coefficient of a MELANOSOME as a function of wavelength.
Equation proposed by S. Jacques based on data from various sources.

\(\mu_a^{mel} (\lambda) = 6.6 \times 10^{10} \times \lambda^{-3.33}\)

Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_nBCC_Salomatina(lambda0)
The absoption coefficient of NODULAR BASAL CELL CARCINOMA as a function of wavelength.
Linear interpolation of experimental data from Salomatina et al. 2006 [S*06],
wavelength range: [370 nm, 1600 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_oxy_Bosschaart(lambda0)
The absorption coefficient of OXYGENIZED BLOOD (saturation > 98%) as a function of wavelength.
Linear interpolation of data from Bosschaart et. al. 2014 [B*14].
wavelength range: [251 nm, 1995 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_oxy_Prahl(lambda0, Cmass_oxy=150, molar_mass_oxy=64500)
The absorption coefficient of OXYHEMOGLOBIN in water as a function of wavelength.
oxyhemoglobin mass concentration.
wavelength range: [250 nm, 1000 nm]
Parameters:
  • lambda0 (float or np.ndarray) – wavelength [nm]

  • Cmass_oxy (float) – oxyhemoglobin mass concentration [g/L] (default to 150. [S*23])

  • molar_mass_oxy (float) – molar mass of oxyhemoglobin [g/mol] (default to 64500. [B90])

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_wat_Hale(lambda0)
The absorption coefficient of WATER as a function of wavelength.
Linear interpolation of data from Hale & Querry 1973 [HQ73] collected and processed
by S. Prahl and publicly available at <https://omlc.org/spectra/water/abs/index.html>.

wavelength range: [200 nm, 200 μm]

Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.mua_wat_Segelstein(lambda0)
The absorption coefficient of WATER as a function of wavelength.
Linear interpolation of data from D. J. Segelstein’s M.S. Thesis 1981 [S81],
collected by S. Prahl and publicly available at <https://omlc.org/spectra/water/abs/index.html>.
wavelength range: [10 nm, 10 m].
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • mua (float or np.ndarray) – absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.std_mua_DE_Salomatina(lambda0)
The standard deviation respective to skinoptics.absorption_coefficient.mua_DE_Salomatina().
Linear interpolation of experimental data from Salomatina et al. 2006 [S*06],
wavelength range: [370 nm, 1600 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • std_mua (float or np.ndarray) – standard deviation of the absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.std_mua_EP_Salomatina(lambda0)
The standard deviation respective to skinoptics.absorption_coefficient.mua_EP_Salomatina().
Linear interpolation of experimental data from Salomatina et al. 2006 [S*06],
wavelength range: [370 nm, 1600 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • std_mua (float or np.ndarray) – standard deviation of the absorption coefficient [mm^-1]

skinoptics.absorption_coefficient.std_mua_HY_Salomatina(lambda0)
The standard deviation respective to skinoptics.absorption_coefficient.mua_HY_Salomatina().
Linear interpolation of experimental data from Salomatina et al. 2006 [S*06],
wavelength range: [370 nm, 1600 nm]
Parameters:

lambda0 (float or np.ndarray) – wavelength [nm]

Returns:

  • std_mua (float or np.ndarray) – standard deviation of the absorption coefficient [mm^-1]