Tajima 的 D 用于不同长度的序列
Tajimas D for sequences of different length
我正在尝试使用 R 中的试剂来计算 Tajima 的 D。我有一个 DNA.bin 对象,其中包含我来自不同群体的序列。由于其中的 SNP 和插入缺失,序列的长度不同。 运行 tajima.test 函数时出现以下错误:
as.matrix.DNAbin(x) 中的错误:
列表中的 DNA 序列长度不同。
如何计算不同长度序列的 Tajima 的 D?
这是我目前所做的:
x <- structure(c("55548", "43297", "35309", "34468", "AATTCAATGCTCGGGAAGCAAGGAAAGCTGGGGACCAACTTCTCTTGGAGACATGAGCTTAGTGCAGTTAGATCGGAAGAGCA", "AATTCCTAAAACACCAATCAAGTTGGTGTTGCTAATTTCAACACCAACTTGTTGATCTTCACGTTCACAACCGTCTTCACGTT", "AATTCACCACCACCACTAGCATACCATCCACCTCCATCACCACCACCGGTTAAGATCGGAAGAGCACACTCTGAACTGTAAACCCAGTC", "AATTCTATTGGTCATCACAATGGTGGTCCGTGGCTCACGTGCGTTCCTTGTGCAGGTCAACAGGTCAAGTTAAGATCGGAAGA"), .Dim = c(4L, 2L))
y <- t(sapply(strsplit(x[,2],""), tolower))
my.dnabin <- as.DNAbin(y)
tajima.test(my.dnabin)
田岛的 D 使用核苷酸的成对比较,因此需要您的 DNA is properly aligned 在 运行ning 之前。你的目前不是,所以你得到一个错误。大多数 DNA.bin 方法假设您的 DNA 是对齐的 - 这应该是您的第一步。
要对齐您的 DNA,请尝试使用 ape 的 clustal
命令 - 您需要安装 clustal。我使用 clustal omega 因为我认为 R 不是进行 DNA 比对的最佳方法。
您将得到一个对齐的 DNA 序列,现在适合田岛的 D(注意间隙,用于对齐序列):
x <- structure(c("55548", "43297", "35309", "34468",
"AATTCAATGCTCGGGAAGCAAGGAAAGCT---GGGGACCAACTTCTCTTGGAGACATGAGCTTAGTGCAGTTAGATCGGAAGAGCA-----------------------",
"AATTCCTAAAACACCAATCAAGT----TG---------GTGTTGCTAATTTCAACACCAACTTGTTGAT------------CTTCACGTTCACAACCGTCTTCACGTT-",
"-----AATTCACCA-------------CCACCACTAGCATACCATCCACCT--CCATCACCACCACCGGTTAAGATCGGAAGAGCACACTCTGAACTGTAAACCCAGTC",
"AATTCTATTGGTCATCACAATGGTGGTCCGTGGCTCACGTGCGTTCCTTGTGCAGGTCAACAGGTCAAGTTAAGATCGGAAGA--------------------------"), .Dim = c(4L, 2L))
现在您的测试将 运行:
y <- t(sapply(strsplit(x[,2],""), tolower))
my.dnabin <- as.DNAbin(y)
tajima.test(my.dnabin)
$D
[1] -5.624054
$Pval.normal
[1] 1.865271e-08
$Pval.beta
[1] 0
我正在尝试使用 R 中的试剂来计算 Tajima 的 D。我有一个 DNA.bin 对象,其中包含我来自不同群体的序列。由于其中的 SNP 和插入缺失,序列的长度不同。 运行 tajima.test 函数时出现以下错误:
as.matrix.DNAbin(x) 中的错误: 列表中的 DNA 序列长度不同。
如何计算不同长度序列的 Tajima 的 D?
这是我目前所做的:
x <- structure(c("55548", "43297", "35309", "34468", "AATTCAATGCTCGGGAAGCAAGGAAAGCTGGGGACCAACTTCTCTTGGAGACATGAGCTTAGTGCAGTTAGATCGGAAGAGCA", "AATTCCTAAAACACCAATCAAGTTGGTGTTGCTAATTTCAACACCAACTTGTTGATCTTCACGTTCACAACCGTCTTCACGTT", "AATTCACCACCACCACTAGCATACCATCCACCTCCATCACCACCACCGGTTAAGATCGGAAGAGCACACTCTGAACTGTAAACCCAGTC", "AATTCTATTGGTCATCACAATGGTGGTCCGTGGCTCACGTGCGTTCCTTGTGCAGGTCAACAGGTCAAGTTAAGATCGGAAGA"), .Dim = c(4L, 2L))
y <- t(sapply(strsplit(x[,2],""), tolower))
my.dnabin <- as.DNAbin(y)
tajima.test(my.dnabin)
田岛的 D 使用核苷酸的成对比较,因此需要您的 DNA is properly aligned 在 运行ning 之前。你的目前不是,所以你得到一个错误。大多数 DNA.bin 方法假设您的 DNA 是对齐的 - 这应该是您的第一步。
要对齐您的 DNA,请尝试使用 ape 的 clustal
命令 - 您需要安装 clustal。我使用 clustal omega 因为我认为 R 不是进行 DNA 比对的最佳方法。
您将得到一个对齐的 DNA 序列,现在适合田岛的 D(注意间隙,用于对齐序列):
x <- structure(c("55548", "43297", "35309", "34468",
"AATTCAATGCTCGGGAAGCAAGGAAAGCT---GGGGACCAACTTCTCTTGGAGACATGAGCTTAGTGCAGTTAGATCGGAAGAGCA-----------------------",
"AATTCCTAAAACACCAATCAAGT----TG---------GTGTTGCTAATTTCAACACCAACTTGTTGAT------------CTTCACGTTCACAACCGTCTTCACGTT-",
"-----AATTCACCA-------------CCACCACTAGCATACCATCCACCT--CCATCACCACCACCGGTTAAGATCGGAAGAGCACACTCTGAACTGTAAACCCAGTC",
"AATTCTATTGGTCATCACAATGGTGGTCCGTGGCTCACGTGCGTTCCTTGTGCAGGTCAACAGGTCAAGTTAAGATCGGAAGA--------------------------"), .Dim = c(4L, 2L))
现在您的测试将 运行:
y <- t(sapply(strsplit(x[,2],""), tolower))
my.dnabin <- as.DNAbin(y)
tajima.test(my.dnabin)
$D
[1] -5.624054
$Pval.normal
[1] 1.865271e-08
$Pval.beta
[1] 0