ELISAの測定結果をRで計算する ( 3 ) 回帰式を使って濃度を求める

それでは実際に吸光度の値からIgAの濃度を求めていきたいと思います。4パラメーターlogロジスティック回帰の結果を見てみましょう。summary()を使用します。

summary(LL4)

で結果を抽出すると

Model fitted: Log-logistic (ED50 as parameter) (4 parms)

Parameter estimates:

Estimate Std. Error t-value p-value
b:(Intercept) -1.4325677 0.0629344 -22.7628783 0
c:(Intercept) 0.0676138 0.0070559 9.5825505 0
d:(Intercept) 1.0206477 0.0175031 58.3124948 0
e:(Intercept) 186.8606681 6.6307507 28.1809219 0

と返って来ます。欲しい情報は前の記事で書いた4つの係数です。summary()から係数だけを取り出すときはcoef()を使用します。

coef(LL4)

b:(Intercept) c:(Intercept) d:(Intercept) e:(Intercept)
-1.43256774 0.06761381 1.02064766 186.86066811

と返って来ます。前の記事ではABCDだったのが、bcdeと微妙にずれていますが、
b:スロープ・パラメーター
c:下方漸近線
d:上方漸近線
e:EC50 ( 半数有効濃度 )
がそれぞれ対応しています。これを

SP <- coef(LL4)[1]
MIN <- coef(LL4)[2]
MAX <- coef(LL4)[3]
EC50 <- coef(LL4)[4]

と代入しておきます。ところで4パラメーターロジスティック回帰曲線の回帰式は

y=MIN+(MAX-MIN)/(1+(x/ED50)^SP

でした。吸光度がyで求めたいIgA濃度がxになりますので、この方程式をx=の形に直します。さらにfunction(x){}を使用して自作の関数を定義しておきます。

pl4 <- function(x){ED50*((MAX-x)/(x-MIN))^(1/SP)}

あとは前の記事で読み込んだプレートのデータXの測定値の列を読み込みますが、duplicateにしてあるので一工夫必要です。

# 測定値の奇数列と偶数列をそれぞれ読み込む
Abs1 <- c(X[,3],X[,5],X[,7],X[,9],X[,11])
Abs2 <- c(X[,4],X[,6],X[,8],X[,10],X[,12])

# 自作したpl4()を使用して濃度を求める
Conc1 <- pl4(Abs1)
Conc2 <- pl4(Abs2)

# duplicationの列ベクトルを結合して検体ごとに平均値を出す
Conc <- cbind(Conc1,Conc2)
Mean <- apply(Conc,1,mean)

# それぞれの値を横に結合してデータフレームを作成
Number <- 1:40
ELISA <- as.data.frame(cbind(Number,Abs1,Abs2,Conc1,Conc2,Mean))
colnames(ELISA) <- c("Number","Absorbance1","Absorbance2","Concentration1","Concentration2","Mean")
head(ELISA)

すると

Number Absorbance1 Absorbance2 Concentration1 Concentration2 Mean
1 1 0.2707 0.2687 75.07241 74.41709 74.74475
2 2 0.3158 0.3160 90.17388 90.24247 90.20817
3 3 0.2190 0.2310 58.37184 62.21590 60.29387
4 4 0.1891 0.1932 48.79743 50.11385 49.45564
5 5 0.2236 0.2154 59.84426 57.22012 58.53219
6 6 0.2721 0.2722 75.53175 75.56458 75.54816

こんな感じで返ってくると思います。あとは希釈濃度の計算をするなど調整をして、解析を行って下さい。以上です!

Share on Facebook0Share on Google+0Share on Tumblr0Tweet about this on TwitterEmail this to someone

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です