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

Calculating the minor allele frequency from a gds file?

我有一个 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] }
} 

我正在开发的一个解决方案是一个 for 循环来减去 (1 -af) if (i > 0.5) else {pass}。

我的数据集非常大,有超过 30,000 个变量,因此 for 循环并不理想。

给你:

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

# outcome
maf <- ifelse(af > 0.5, 1 - af, af)