Я работаю с большим набором данных SNP и в настоящее время использую R
Пакет SNPRelate для этого. Вычислить матрицу несходства SNPRelate
использует snpgdsDiss. Однако я не могу найти, какой метод он использует. Я хотел бы рассчитать расстояния, используя манхэттенские расстояния.
Документация R snpgdsDiss (https://www.rdocumentation.org/packages/SNPRelate/versions/1.6.4/topics/snpgdsDiss) не содержит подробностей о том, какой метод используется, а также руководство по SNPRelate (http://bioconductor.riken.jp/packages/3.4/bioc/manuals/SNPRelate/man/SNPRelate.pdf).
Исходный код (https://rdrr.io/bioc/SNPRelate/src/R/IBD.R)
показывает следующий код для функции snpgdsDiss, но это
мне не кажется полезным.
#######################################################################
#######################################################################
# Calculate the genetic dissimilarity matrix
#
snpgdsDiss <- function(gdsobj, sample.id=NULL, snp.id=NULL, autosome.only=TRUE,
remove.monosnp=TRUE, maf=NaN, missing.rate=NaN, num.thread=1, verbose=TRUE)
{
# check
ws <- .InitFile2(
cmd="Individual dissimilarity analysis on genotypes:",
gdsobj=gdsobj, sample.id=sample.id, snp.id=snp.id,
autosome.only=autosome.only, remove.monosnp=remove.monosnp,
maf=maf, missing.rate=missing.rate, num.thread=num.thread,
verbose=verbose)
# call C function
d <- .Call(gnrDiss, ws$num.thread, verbose)
# return
ans <- list(sample.id=ws$sample.id, snp.id=ws$snp.id, diss=d)
class(ans) <- "snpgdsDissClass"
return(ans)
}
Итак, какой метод использует snpgdsDiss для расчета матрицы расстояний и можно ли это настроить?
Предложения по альтернативным подходам с использованием файлов .gds и расстояния до Манхэттена приветствуются.