У меня есть файл 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 не идеальны.