skbio.sequence.Sequence.frequencies¶
- Sequence.frequencies(chars=None, relative=False)[源代码]¶
计算序列中字符的频率。
状态:从0.4.1开始试验。
- 参数:
chars (str or set of str, optional) -- 要计算其频率的字符。可能是
str
包含单个字符或set
单字符字符串。如果None
,将计算序列中所有字符的频率。relative (bool, optional) -- 如果
True
,返回每个字符的相对频率,而不是其计数。如果 chars 将根据序列中的字符数计算相对频率, not 中观察到的字符总数 chars . 因此,如果 chars 提供。
- 返回:
序列中字符的频率。
- 返回类型:
dict
- 抛出:
TypeError -- 如果 chars 不是一个
str
或set
属于str
.ValueError -- 如果 chars 不是一个字符
str
或Aset
单字符字符串。ValueError -- 如果 chars 包含的字符超出了
Sequence
对象。
备注
如果序列为空(即长度为零),
relative=True
, and chars ,则每个指定字符的相对频率将为np.nan
.如果 chars 不提供,此方法相当于,但比,
seq.kmer_frequencies(k=1)
.如果 chars 不提供,它相当于,但比通过快
chars=seq.observed_chars
.示例
计算序列的字符频率:
>>> from pprint import pprint >>> from skbio import Sequence >>> seq = Sequence('AGAAGACC') >>> freqs = seq.frequencies() >>> pprint(freqs) # using pprint to display dict in sorted order {'A': 4, 'C': 2, 'G': 2}
计算相对字符频率:
>>> freqs = seq.frequencies(relative=True) >>> pprint(freqs) {'A': 0.5, 'C': 0.25, 'G': 0.25}
计算字符A、C和T的相对频率:
>>> freqs = seq.frequencies(chars={'A', 'C', 'T'}, relative=True) >>> pprint(freqs) {'A': 0.5, 'C': 0.25, 'T': 0.0}
注意,由于字符T不在序列中,我们接收到的相对频率为0.0。与C中的字符数相对应, not A和C字符的数目(4+2=6)。