Skip to main content

A python library for calculating/looking up various tissue properties for laser bioeffect calculations

To simulate the exposure of tissue (skin or retina) to laser radiation, several properties characterizing the thermo-optical response of the tissue are needed. These include absorption coefficients, transmission coefficients, conductivity, density, specific heat, etc. This library is a collection of tissue property data sets that have been reported in the literature.

Installing

Install with pip (or your favorite virtual environment manager)

pip install tissue-properties

Usage

All models accept wavelength as a pint Quantity object or a plain string such as "532 nm". Results are always Quantity objects with appropriate units. Every model also exposes a .get_reference() method that returns the source paper as a BibTeX string.

from tissue_properties.units import Q_

Absorption Coefficient

Mainster (1970) — tabulated, 400–1361 nm

Data extracted from Figure 3 of Mainster et al., JOSA 60(2), 1970.

from tissue_properties.optical.absorption_coefficient import mainster

rpe = mainster.RPE()
choroid = mainster.Choroid()

print("# wavelength (nm)  RPE (1/cm)  Choroid (1/cm)")
for wavelength in range(400, 1405, 5):
    l = Q_(wavelength, "nm")
    print(l, rpe(l), choroid(l))

print(rpe.get_reference())

Schulmeister (2017) — analytic formulas

from tissue_properties.optical.absorption_coefficient import schulmeister

rpe = schulmeister.RPE()                     # melanin power-law
choroid = schulmeister.Choroid()             # melanin + blood composite
henles = schulmeister.HenlesFiberLayer()     # macular pigment

wavelength = Q_(532, "nm")
print(rpe(wavelength))
print(choroid(wavelength))
print(henles(wavelength))

Ocular Transmission

CIE 203 (2012) — tabulated

from tissue_properties.optical.ocular_transmission import cie203

total = cie203.TotalTransmission()
direct = cie203.DirectTransmission()

wavelength = Q_(532, "nm")
print(total(wavelength))             # dimensionless fraction
print(total(wavelength).to("percent"))
print(direct(wavelength))

Mainster (1970) — tabulated, 400–1400 nm

from tissue_properties.optical.ocular_transmission import mainster

transmission = mainster.Transmission()

print(transmission("532 nm"))
print(transmission("1064 nm"))

Schulmeister (2017) — effective transmission

Accounts for scattered light reaching the retina for finite beam spot sizes. As spot_size → ∞ the result approaches total transmission; as spot_size → 0 it approaches direct transmission.

from tissue_properties.optical.ocular_transmission import schulmeister

T_eff = schulmeister.EffectiveTransmission()

wavelength = Q_(532, "nm")
print(T_eff(wavelength, Q_(0, "um")))       # zero spot → ~direct transmission
print(T_eff(wavelength, Q_(200, "um")))     # typical focused beam
print(T_eff(wavelength, Q_(10000, "um")))   # large spot → ~total transmission

Refractive Index

Navarro (1985) — analytic Herzberger dispersion

Four ocular media components from Navarro, Santamaría & Bescós, JOSA A 2(8), 1985.

from tissue_properties.optical.refractive_index import navarro

cornea = navarro.Cornea()
aqueous = navarro.Aqueous()
lens = navarro.Lens()
vitreous = navarro.Vitreous()

wavelength = Q_(550, "nm")
print(cornea(wavelength))
print(aqueous(wavelength))
print(lens(wavelength))
print(vitreous(wavelength))

Vincelette (2008) — Sellmeier formula for reduced eye

Validated for the 1150–1350 nm near-infrared region (Vincelette et al., JBO 13, 2008).

from tissue_properties.optical.refractive_index import vincelette

reduced_eye = vincelette.ReducedEye()

print(reduced_eye("1064 nm"))
print(reduced_eye("1200 nm"))

Metadata

Release files for tissue-properties 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tissue-properties 0.4.0
File Size Uploaded
tissue_properties-0.4.0.tar.gz 79.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tissue-properties 0.4.0
File Interpreter ABI Platform
tissue_properties-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 159.4 kB

Release files / tissue_properties-0.4.0.tar.gz

Download URL tissue_properties-0.4.0.tar.gz
Size 79.2 kB
Tags Source
SHA-256 checksum
How to use checksums
ea26bbfc335ef031276ddd0c3a7c59646d020b060fcb3724fcdc957e8c382086
BLAKE2b-256 checksum
How to use checksums
1e2217fc36d6e4f94d9081036ebb7df87f602c666934b5d1287ee84a82298bf3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / tissue_properties-0.4.0-py3-none-any.whl

Download URL tissue_properties-0.4.0-py3-none-any.whl
Size 80.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
bfe68afeb203589214a5ea334e8bf2d994e3e69783d85ff70b14680b69f066d4
BLAKE2b-256 checksum
How to use checksums
9c12e7e241240aa9ec3390900a1f37f45a60b5c9224e7d9837a75df8348114ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page