繁体   English   中英

计算 R 中 DNA 多序列 Alignment 的熵

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM