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

Plink输出:从R中的单个表获取多个nls输出,r,bioinformatics,R,Bioinformatics,我有一个,我想从中得到coef-nls输出 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是标记之间的距离。与此类似的是第9页的图表 我的文件由9条染色体组成,R2是在每100kb的SNP距离上计算的。因此,距离从低到最大100kb,然后从低到100

我有一个,我想从中得到coef-nls输出

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
是标记之间的距离。与此类似的是第9页的图表

我的文件由9条染色体组成,R2是在每100kb的SNP距离上计算的。因此,距离从低到最大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)))))
 }

data您可以看看这篇文章:您必须将距离和LD值输入到其中的R函数中,然后进行计算。然而,我不认为您的数据集是最佳的。您提到的ppt幻灯片9的距离高达几Mb,而您仅提供距离小于100Kb的LD计算。您首先需要计算不同距离的SNP之间的LD,包括>100Kb。嗨,Fabio,谢谢您的回复,但是由于我的数据非常大,如何以简单的方式将距离和LD值提供给R函数呢。我可以为此写一个for循环吗,但问题是如何写?对于我的研究问题来说,100kb是最大的,所以如果我能保持这样的距离就太好了。