R 从gds文件计算次要等位基因频率?

R 从gds文件计算次要等位基因频率?,r,frequency,R,Frequency,我有一个gds文件,描述了与参考基因组相关的许多个体的SNP变体。我在R中使用了SeqVarTools包中的hwe()函数。这给了我每个变体的参考等位基因频率。我想获得次要等位基因频率,但我不知道如何处理这个问题,因为许多软件包要求将数据转换为模糊的矩阵分类,这对进一步分析没有用处 我的主要问题是:如何根据我的参考等位基因频率获得次要等位基因频率 下面是一个小例子,有助于形象化我的问题 # Allele frequencies af <- c(0.082, 0.765, 0.125, 0.

我有一个gds文件,描述了与参考基因组相关的许多个体的SNP变体。我在R中使用了SeqVarTools包中的hwe()函数。这给了我每个变体的参考等位基因频率。我想获得次要等位基因频率,但我不知道如何处理这个问题,因为许多软件包要求将数据转换为模糊的矩阵分类,这对进一步分析没有用处

我的主要问题是:如何根据我的参考等位基因频率获得次要等位基因频率

下面是一个小例子,有助于形象化我的问题

# Allele frequencies
af <- c(0.082, 0.765, 0.125, 0.986)

# Desired outcome
maf <- c(0.082, 0.235, 0.125, 0.014)

# List for outcome
maf <- c()

# Loop to take 1-af 
for (i in 1:length(af)) {
  if (af[i] > 0.501) {
    maf[i] <- 1-af[i]
  } else {maf[i] <- af[i] }
} 
等位基因频率 af给你:

# Allele frequencies
af <- c(0.082, 0.765, 0.125, 0.986)

# outcome
maf <- ifelse(af > 0.5, 1 - af, af)
等位基因频率
af参见
maf基本上,如果值超过0.5,我需要它取1-af。你提供的解决方案有没有办法实现这一点?我想我刚刚找到了这个问题的解决方案,我发布了一个更新作为for循环。如果有一种方法可以使它成为一个更有效的代码行,并且具有相同的结果,那就太好了。