[英]Calculate Entropy for DNA Multiple Sequence Alignment in R
我对 R 很陌生。 所以我很抱歉问了一个非常基本的问题。 假设我有一个 fasta 文件,其顺序如下:
>sequence_1
ACCTGC--A
>sequence_2
ACC-GCTTA
>sequence_3
ACCTGCTTA
是否有 function 或方法来计算 R 中每一列的熵? 我做了一些研究,发现了一个 function 可以计算氨基酸的熵,但不能计算 DNA 核苷酸的熵。
我想让 output 存储在向量或列表中。
我在这里先向您的帮助表示感谢!
package HDMD
具有MolecularEntropy
function,它也以非常简单的方式作用于 DNA。 它忽略了非 ACGT 字符或间隙,似乎使用公式 H = - ∑ p*log(p) p= 基数来计算熵。 所以我不确定这就是你所追求的。
您的简单示例会产生类似这样的结果(频率始终为 1,因此熵均为 0):
library(HDMD)
#> Loading required package: psych
#> Loading required package: MASS
fa <- c(">sequence_1", "ACCTGC--A", ">sequence_2", "ACC-GCTTA", ">sequence_3",
"ACCTGCTTA")
fa <- grep(">",fa, invert = TRUE, value = TRUE)
MolecularEntropy(fa, type="DNA")
#> [1] "Warning: Data set contains non-nucleotide elements"
#> $counts
#> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
#> A 3 0 0 0 0 0 0 0 3
#> C 0 3 3 0 0 3 0 0 0
#> G 0 0 0 0 3 0 0 0 0
#> T 0 0 0 2 0 0 2 2 0
#>
#> $freq
#> [,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
#> A 1 0 0 0 0 0 0 0 1
#> C 0 1 1 0 0 1 0 0 0
#> G 0 0 0 0 1 0 0 0 0
#> T 0 0 0 1 0 0 1 1 0
#>
#> $H
#> [1] 0 0 0 0 0 0 0 0 0
由代表 package (v0.3.0) 于 2020 年 6 月 26 日创建
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.