Skip to contents

Calculate the phytochrome photoequilibrium for monochromatic light from its wavelength or from a spectrum expressed as spectral irradiance.

Usage

Pfr_Ptot(x, ...)

# Default S3 method
Pfr_Ptot(x, ...)

# S3 method for class 'numeric'
Pfr_Ptot(x, spct.out = length(x) > 20, ...)

# S3 method for class 'source_spct'
Pfr_Ptot(x, return.tb = !is.null(attr2tb), attr2tb = NULL, ..., na.rm = FALSE)

# S3 method for class 'source_mspct'
Pfr_Ptot(
  x,
  return.tb = TRUE,
  attr2tb = NULL,
  ...,
  na.rm = FALSE,
  idx = "spct.idx",
  .parallel = FALSE,
  .paropts = NULL
)

Arguments

x

an R object. A numeric vector

...

currently ignored.

spct.out

logical Flag indicating if the returned object should be of class response_spct instead of numeric.

return.tb

logical If TRUE force return of a data frame for a single spectrum, to match the returned class for collections of spectra.

attr2tb

character vector, see add_attr2tb() the syntax for attr2tb passed as is to formal parameter col.names.

na.rm

logical. If TRUE link[stats]{na.omit} is first called on x.

idx

character Name of the column with the names of the members of the collection of spectra.

.parallel

if TRUE, apply function in parallel, using parallel backend provided by foreach

.paropts

a list of additional options passed into the foreach function when parallel computation is enabled. This is important if (for example) your code relies on external data or packages: use the .export and .packages arguments to supply them so that all cluster nodes have the correct environment set up for computing.

Value

When input is spectral data, a numeric vector of values giving the \(P_{fr} / P_{tot}\) or a data frame are returned, possibly with attributes extracted from the spectral objects as additional columns. When input is a numeric vector of wavelengths, the returned object is either a numeric vector or a generic_spct object with giving the \(P_{fr} / P_{tot}\) for each wavelength in the input.

Details

The calculations are based on data describing the photochemical constants for the plant photoreceptor phytochrome measured in vitro and available for wavelengths in the range 380 nm to 770 nm as published by Mancinelli (1994). For reliable estimates of \(P_{fr} / P_{tot}\) from spectral irradiance, the spectrum should cover all these wavelengths with reasonably high wavelength resolution.

Two approaches are possible, using wavelength for monochromatic radiation or spectral irradiance data. Spectral irradiance data are accepted either as individual spectra or collections of spectra.

Note

If you use these data in a publication, please cite also the original source as given under references.

References

Mancinelli, A.L. (1994) The physiology of phytochrome action. In Photomorphogenesis in plants, 2nd edition. R.E. Kendrick and G.H.M. Kronenberg, eds. Kluwer Academic Publishers, Dordrecht, pp. 211-269. ISBN 978-0-7923-2551-2 (print), 978-94-011-1884-2 (on-line). doi:10.1007/978-94-011-1884-2_10

See also

Other phytochrome-related functions and data: PHYs.mspct, Pfr_Ptot_R_FR(), Phy_Sigma(), Phy_Sigma_FR(), Phy_Sigma_R(), Phy_reaction_rates()

Examples

# monochromatic light
Pfr_Ptot(620) # one wavelength in nm
#> [1] 0.8746565
Pfr_Ptot(c(570, 600, 630, 660, 690, 735, 760)) # six wavelengths
#> [1] 0.84842692 0.88805135 0.86463731 0.86964902 0.60819793 0.01749967 0.02079894
# spectral irradiance
Pfr_Ptot(sun.spct) # one spectrum
#> [1] 0.68341
Pfr_Ptot(sun.spct, attr2tb = "when.measured")
#> # A tibble: 1 × 3
#>   spct.idx  Pfr_Ptot when.measured      
#>   <fct>        <dbl> <dttm>             
#> 1 spct.name    0.683 2010-06-22 09:51:00
Pfr_Ptot(sun_evening.spct) # five spectra
#> # A tibble: 5 × 2
#>   spct.idx Pfr_Ptot
#>   <fct>       <dbl>
#> 1 time.01     0.671
#> 2 time.02     0.672
#> 3 time.03     0.670
#> 4 time.04     0.669
#> 5 time.05     0.664
Pfr_Ptot(sun_evening.mspct)
#> # A tibble: 5 × 2
#>   spct.idx Pfr_Ptot
#>   <fct>       <dbl>
#> 1 time.01     0.671
#> 2 time.02     0.672
#> 3 time.03     0.670
#> 4 time.04     0.669
#> 5 time.05     0.664
Pfr_Ptot(sun_evening.mspct, attr2tb = "when.measured")
#> # A tibble: 5 × 3
#>   spct.idx Pfr_Ptot when.measured      
#>   <fct>       <dbl> <dttm>             
#> 1 time.01     0.671 2023-06-12 18:38:00
#> 2 time.02     0.672 2023-06-12 18:39:00
#> 3 time.03     0.670 2023-06-12 18:40:00
#> 4 time.04     0.669 2023-06-12 18:41:00
#> 5 time.05     0.664 2023-06-12 18:42:00