Вычисление малой частоты аллелей из файла GDS? - PullRequest
0 голосов
/ 26 сентября 2019

У меня есть файл gds, описывающий варианты SNP для ряда индивидуумов по отношению к эталонному геному.Я использовал функцию hwe () из пакета SeqVarTools в R. Это дало мне эталонные частоты аллелей для каждого варианта.Я хочу получить меньшую частоту аллелей и не знаю, как решить эту проблему, так как многие пакеты требуют преобразования данных в неясную матричную классификацию, которая бесполезна для дальнейшего анализа.

Мой главный вопрос: как получить второстепенные частоты аллелей по частотам моих эталонных аллелей?

Ниже приведен небольшой пример, помогающий визуализировать мою проблему.

# 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), если (i> 0.5) else {pass}.

Мои наборы данных очень большие, с более чем 30 000 переменных, поэтому циклы for не идеальны.

1 Ответ

0 голосов
/ 26 сентября 2019

Вот, пожалуйста:

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

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