Note of Pediatric Surgery

腸内細菌、R、ときどき小児外科

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

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

[code lang=r] summary(LL4) [/code]

で結果を抽出すると

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()を使用します。

[code lang=r] coef(LL4) [/code]

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

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

[code lang=r] SP <- coef(LL4)[1] MIN <- coef(LL4)[2] MAX <- coef(LL4)[3] EC50 <- coef(LL4)[4] [/code]

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

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

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

[code lang=r] pl4 <- function(x){ED50**11/SP} [/code]

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

[code lang=r]

測定値の奇数列と偶数列をそれぞれ読み込む

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) [/code]

すると

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

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

*1:MAX-x)/(x-MIN