Plink输出:从R中的单个表中获取多个nls输出

时间:2015-02-23 14:26:20

标签: r bioinformatics

我有一个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$R2ix=data$distancei

然后,拟合将是一个列表,其中只有与我的plink文件每隔100kb距离的coef值。但是现在如何为每100kb获得这个?

任何人都知道如何?

0 个答案:

没有答案