melting.curves: Melting curves for HRM curve analysis

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/melting.curves.R

Description

Function draws melting curves for selected standards and samples. The number of standards is specified by number_of_standards. If all standards have the same number of replicates (balanced design), the mean for each standard can be drawn by specifying sample_size_standards; however, replicates should always be drawn individually first. The sample numbers of samples for which difference curves will be drawn can be specified as a vector of integers by specifying sample_number. The function allows to normalize relative fluorescence values (RFUs) by scaling between 0 to 1 (see normalization) within the selected temperature range (temp_range_min, and temp_range_max). Please cite Schiwek et. al (2020) <https://doi.org/10.3390/pathogens9040270> if you use this function in your work.

Usage

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
melting.curves(RFU_data,
               derivative = "minus_1st_derivative",
               normalization = FALSE,
               number_of_standards = 1,
               sample_size_standards = 1,
               sample_number = 1,
               temp_range_min = 65,
               temp_range_max = 95,
               draw_peaks = FALSE,
               xlab = "temperature", 
               ylab = "-d(RFU)",
               col_samples = "forestgreen",
               col_standards = "black",
               lwd_standards = 1.5,
               lwd_samples = 0.75,
               lty = 1,
               lty_peaks_standards = 1,
               lty_peaks_samples = 3,
               xlim = c(temp_range_min, temp_range_max),
               ...)

Arguments

RFU_data

Data frame containing RFU data. Data must be numeric and arranged columnwise. The first column must contain the temperature steps. Standards must start in the second column. Samples must start following the standards. An example of input data can be found here: <https://github.com/LukasBeule/HRM/blob/main/HRM_example_data.txt>

derivative

Character, selection of the derivative of the RFU data. For the negative first derivative, enter "minus_1st_derivative”, for the second derivative, enter "2nd_derivative”. Default is "minus_1st_derivative”.

normalization

Logical, RFUs within the selected temperature range (temp_range_min, and temp_range_max) of each sample are scaled (0, 1). Default is FALSE.

number_of_standards

Integer, total number of standards. Default is 1.

sample_size_standards

Integer, if all standards have the same number of replicates (balanced design) and sample_size_standards is > 1, the mean of all standards will be plotted instead of each individual standard. Default is 1.

sample_number

Vector of integer(s), specifying sample number(s) of samples that will be analyzed. Default is 1.

temp_range_min, temp_range_max

Numeric, minimum (temp_range_min) and maximum (temp_range_min) temperature for analysis. Default temp_range_min is 65 and temp_range_max is 95.

draw_peaks

Logical, draws vertical lines from the maximum (and minimum if derivative is "2nd_derivative"") of the melting curves to the x-axis. Default is FALSE.

xlab, ylab, col_standards, col_samples, lwd_standards, lwd_samples, lty, lty_peaks_standards, lty_peaks_samples, xlim, ...

Graphical parameters.

Details

melting.curves draws melting curves for selected standards and samples.

Value

melting.curves returns a plot of difference curves.

Author(s)

Lukas Beule, Simon Schiwek, Charlotte Rodemann, Petr Karlovsky

References

Schiwek, S, Beule, L, Vinas, M, Pfordt, A, von Tiedemann, A, & Karlovsky, P (2020). High-Resolution Melting (HRM) Curve Assay for the Identification of Eight Fusarium Species Causing Ear Rot in Maize. Pathogens, 9(4), 270.

<https://doi.org/10.3390/pathogens9040270>

See Also

See also denaturation.curves and difference.curves for further HRM curve analysis.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
##Input data must be numeric and arranged columnwise.
##Input data should not contain any categorial data.
##An example dataset containing input data with 8 standards
##with 3 technical replicates each and 10 samples can be found here:
##<https://github.com/LukasBeule/HRM/blob/main/HRM_example_data.txt>

##load example RFU data:
RFU_data <- read.table("https://raw.githubusercontent.com/LukasBeule/HRM/main/HRM_example_data.txt",
                       sep="\t", dec=".", header=TRUE)

##generate non-normalized melting curves from 81 to 92 degrees Celcius 
##using negative first derivative
melting.curves(RFU_data,
               derivative = "minus_1st_derivative",
               normalization = FALSE,
               number_of_standards = 24,
               sample_size_standards = 1,
               sample_number = c(1:10),
               temp_range_min = 81,
               temp_range_max = 92,
               col_samples = "#000000",
               col_standards = c(rep(c("#999999", "#E69F00", "#56B4E9", "#009E73", 
                                      "#F0E442", "#0072B2", "#D55E00", "#CC79A7"), each = 3))
               )
                                      
##generate normalized melting curves from 81 to 92 degrees Celcius 
##using negative first derivative and draw_peak = TRUE
melting.curves(RFU_data,
               derivative = "minus_1st_derivative",
               normalization = TRUE,
               number_of_standards = 24,
               sample_size_standards = 1,
               sample_number = c(1:10),
               temp_range_min = 81,
               temp_range_max = 92,
               draw_peaks = TRUE,
               col_samples = "#000000",
               col_standards = c(rep(c("#999999", "#E69F00", "#56B4E9", "#009E73", 
                                      "#F0E442", "#0072B2", "#D55E00", "#CC79A7"), each = 3))
               )
                                      
##generate non-normalized melting curves from 81 to 92 degrees Celcius 
##using second derivative and draw_peak = TRUE
melting.curves(RFU_data,
               derivative = "2nd_derivative",
               normalization = FALSE,
               number_of_standards = 24,
               sample_size_standards = 1,
               sample_number = c(1:10),
               temp_range_min = 81,
               temp_range_max = 92,
               draw_peaks = TRUE,
               ylab = "d2(RFU)",
               col_samples = "#000000",
               col_standards = c(rep(c("#999999", "#E69F00", "#56B4E9", "#009E73", 
                                      "#F0E442", "#0072B2", "#D55E00", "#CC79A7"), each = 3))
               )

HRM.curve documentation built on Dec. 19, 2020, 5:06 p.m.