【问题标题】:how to calculate the entropy of a dna sequence in a fasta file如何计算fasta文件中dna序列的熵
【发布时间】:2016-06-19 17:22:54
【问题描述】:

我需要计算 fasta 文件中 dna 序列的熵,从 10000 到 11000 这是我所知道的,但我需要计算第 10,000 到第 11,000 个碱基之间序列的熵

from math import log  

def logent(x):  
    if x<=0:     
        return 0  
    else:  
        return -x*log(x)  

def entropy(lis):   
    return sum([logent(elem) for elem in lis])

for i in SeqIO.parse("hsvs.fasta", "fasta"):
    lisfreq1=[i.seq.count(base)*1.0/len(i.seq) for base in ["A", "C","G","T"]]

entropy(lisfreq1)

【问题讨论】:

  • 您只需要得到序列的第 10,000 到 11,000 个碱基吗?
  • 提供您尝试过的代码
  • 我需要计算第 10,000 到第 11,000 个碱基之间序列的熵。这就是我所知道的
  • 什么是确定性序列的熵?
  • H = − ∑ p*log(p) p= 碱基频率

标签: biopython


【解决方案1】:

您的序列只是一个字符串,因此您可以简单地slice 它,例如

seq_start = 10000
seq_end = 11000 + 1
for i in SeqIO.parse("hsvs.fasta", "fasta"):
    sub_seq = i.seq[seq_start:seq_end]
    lisfreq1=[sub_seq.count(base)*1.0/len(sub_seq) for base in ["A", "C","G","T"]]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-31
    相关资源
    最近更新 更多