skbio.sequence.Sequence.iter_contiguous

Sequence.iter_contiguous(included, min_length=1, invert=False)[源代码]

生成连续的子序列基于 included .

状态:0.4.0稳定。

参数:
  • included (1D array_like (bool) or iterable (slices or ints)) -- included 转换为一个平面布尔向量,其中每个位置将被包含或跳过。所有相邻的包含位置将作为一个区域生成。

  • min_length (int, optional) -- 子序列产生的最小长度。默认值为1。

  • invert (bool, optional) -- 是否反转 included 因此它描述了应该跳过而不是包含的内容。默认值为False。

生成器:

序列 --相邻的子序列如所示 included .

备注

如果切片提供相邻范围,则它们将被视为相同的连续子序列。

示例

这里我们使用 iter_contiguous 使用从我们的DNA序列中导出的布尔向量来寻找所有相邻的无上限序列。

>>> from skbio import DNA
>>> s = DNA('AAA--TT-CCCC-G-')
>>> no_gaps = ~s.gaps()
>>> for ungapped_subsequence in s.iter_contiguous(no_gaps,
...                                               min_length=2):
...     print(ungapped_subsequence)
AAA
TT
CCCC

注意最后一个潜在的子序列是如何被跳过的,因为它会比 min_length 设置为2。

我们也可以使用 iter_contiguous 在切片生成器上 find_motifs (和 find_with_regex

>>> from skbio import Protein
>>> s = Protein('ACDFNASANFTACGNPNRTESL')
>>> for subseq in s.iter_contiguous(s.find_motifs('N-glycosylation')):
...     print(subseq)
NASANFTA
NRTE

注意第一个子序列如何包含两个N-糖基化位点。这是因为它们是相邻的。