ポアソン対数正規分布でDNA鑑定データを眺める

  • 2015/06/10@法医学会年会の前日企画『法数学勉強会〜番外編』
  • 前記事を基ネタとして
  • DNA多型マーカーテンプレート量(ホモ・ヘテロ)が試料調整において、マーカー間ばらつき・アレル間ばらつきが入るとして、その上で、マーカーごとの単位DNAコピー数依存性のシグナル強度がexp(kxコピー数+ばらつきによる増分)を期待値とするポアソン対数正規分布に従うと考えることにする。そのうえで、ショットノイズとの大小比較をしつつ、ヘテロなのにアレルドロップアウトするとは、どういうことか、について考える…的な内容。
  • 大雑把にいうと
  • qRT-PCRでは、テンプレートの対数によって、サイクル数に対するRFUのシグモイド様カーブが平行移動する
  • それをある特定のサイクル数で切ると、テンプレート濃度に対して、RFUがシグモイド様カーブになる
  • まずそれをRでグラフ化することを考える
min.rfu <- 0
max.rfu <- 5000

cycle <- 1

my.sig.curve <- function(x,m=0,M=5000,b=5,a=5){
	y <- m + M/(1+exp(-a*(x-b)))
	return(list(x=x,rfu=y))
}

cycles <- 10^(seq(from=0,to=10,length=101))
x <- log10(cycles)

concs <- seq(from=0,to=10^(-4),length=50000)
concs <- concs[-1]
bs <- -log10(concs)
#bs <- seq(from=2,to=8,by=0.1)
log10.concs <- -bs
outs <- matrix(0,length(x),length(bs))
for(i in 1:length(bs)){
	outs[,i] <- my.sig.curve(x,b=bs[i])[[2]]
}

matplot(x,outs,type="l")

matplot(log10.concs,t(outs),type="l")
matplot(concs,t(outs),type="l")

plot(log10.concs,outs[which(x==5),])
plot(concs,outs[which(x==5),])
plot(concs,outs[which(x==5),],xlim=c(0,10^(-5)),ylim=c(0,100))