我有一个plink R2 output file,我希望从这些输出获得系数。
plink输出文件有7个列:
CHR_A, BP_A, SNP_A, CHR_B, BP_B, SNP_B, R2
Plink计算每100kb的R2,现在我想在nls图中绘制这些值(在100kb内)并根据公式得到coef值:
Y = EXP(A * X)
y
将是100kb内的所有R2值,x
是标记之间的距离。与此类似的是this PowerPoint第9页上的图表。
我的文件由9条染色体组成,R2计算的每个SNP距离为100kb。所以距离从低到100kb再到下一个100kb再从低到100kb开始。所以在我的文件中有很多nls计算要做。我怎么能这样做,一次只需要一个100kb的距离,然后转到下一个。
我的想法是:
data<-read.table("myfile.ld",header=TRUE)
data$distance<-with(data,data$BP_B-data$BP_A)
for (i in "every 100kb apart")
{
fit[i]<-as.vector(coef(nls(y~exp(a*x,
control=list(wanOnly=TRUE),start=list(a=-0.05)))))
}
其中y=data$R2
每i
和x=data$distance
每i
。
然后,拟合将是一个列表,其中只有与我的plink文件每隔100kb距离的coef值。但是现在如何为每100kb获得这个?
任何人都知道如何?