我正在使用SNP的大型数据集,目前正在使用R 封装SNPRelate即可。计算差异矩阵SNPRelate 使用snpgdsDiss。但是,我找不到它使用哪种方法。我想使用曼哈顿距离来计算距离。
snpgdsDiss(https://www.rdocumentation.org/packages/SNPRelate/versions/1.6.4/topics/snpgdsDiss)的R文档没有显示有关使用哪种方法以及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文件和曼哈顿距离的替代方法的建议非常受欢迎。