How to create a (total) Ghrelin calibration curve?
- Version 9
- by (unknown)
- Version 10
- by (unknown)
Deletions or items before changed
Additions or items after changed
1 | == Computing Ghrelin calibration curve using R == | |||
---|---|---|---|---|
2 | ||cell1||cell2|| | |||
3 | ||cell3||cell4|| | |||
4 | ||||
5 | ||||
6 | The calibration curve can be created using R, and libracy "drc". Optionally, one can use library "sfmisc" for formatting of the labels on plot axis. | |||
7 | The R code is attached below. | |||
8 | ||||
9 | The example assumes the data to be available in file "ghrelin_conc std_a std_b avg.csv" | |||
10 | ||||
11 | The measured data: | |||
12 | ||||
13 | - | + | || border="1" class="sortable"
|
|
14 | !Ghrelin (ng/ml)!!Standard a!!Standard b | |||
15 | |- | |||
16 | |1000000||-0.040596823||-0.052699697 | |||
17 | |- | |||
18 | |100000||0.136105144||0.119766263 | |||
19 | |- | |||
20 | |10000||0.61356354||0.606906959 | |||
21 | |- | |||
22 | |1000||0.846543873||0.839887292 | |||
23 | |- | |||
24 | |100||0.887693646||0.88345764 | |||
25 | |- | |||
26 | |0||0.896770802||0.896165658 | |||
27 | - | | |
+ | ||
|
28 | ||||
29 | {{{ | |||
30 | ||||
31 | ##### Install libraries | |||
32 | install.packages("drc") | |||
33 | install.packages("sfsmisc") | |||
34 | require(drc) | |||
35 | library(sfsmisc) | |||
36 | ||||
37 | ##### Read the data | |||
38 | hormone.data <- read.csv("ghrelin_conc std_a std_b avg.csv") | |||
39 | hormone.data <- hormone.data[,1:3] | |||
40 | colnames(hormone.data)[1:3] <- c("Concentration","Response_1", "Response_2") | |||
41 | ||||
42 | ##### Reorganize the data | |||
43 | hormone.data <- reshape(hormone.data, varying=c("Response_1","Response_2"), direction="long", v.names=c("Response")) | |||
44 | hormone.data <- hormone.data[,c("Concentration", "Response")] | |||
45 | ||||
46 | ##### Fitting the model (4-parameter log-logistic function) | |||
47 | hormone.data.model <- drm(Response ~ Concentration, data = hormone.data, fct = LL.4()) | |||
48 | summary(hormone.data.model) | |||
49 | ||||
50 | }}} | |||
51 | ||||
52 | The calibration curve can be plotted using the commands below: | |||
53 | ||||
54 | {{{ | |||
55 | ##### Plotting a nice plot | |||
56 | par(pty="s", mar=c(5,5,1,1)) | |||
57 | plot(hormone.data.model, type="confidence", cex.lab=2, axes=F, xlim=c(-10,10^6)) | |||
58 | axis(side=1, at=hormone.data[1:6,1], labels=pretty10exp(hormone.data[1:6,1]), cex.axis=1.2) | |||
59 | axis(side=2, at=seq(0,1,0.2), labels=seq(0,1,0.2)) | |||
60 | plot(hormone.data.model, type="all", add=T, pch=21, col="red", lwd=1, cex=2, bg="green") | |||
61 | }}} | |||
62 | ||||
63 | ||||
64 | ||||
65 | ||||
66 | ##### Computing the concentration from the response, for instance for a response=0.1, and alpha=1-0.95 | |||
67 | ED(hormone.data.model, respLev=0.1, interval="delta", type="absolute", level=0.95) |