Biopython 简明教程

Biopython - Motif Objects

序列基序是一个核苷酸或氨基酸序列模式。序列基序是由可能不相邻的氨基酸的三维排列形成的。Biopython 提供了一个单独的模块 Bio.motifs,用于访问如下指定的序列基序的功能 −

from Bio import motifs

Creating Simple DNA Motif

让我们使用以下命令创建一个简单的 DNA 基序序列 −

>>> from Bio import motifs
>>> from Bio.Seq import Seq
>>> DNA_motif = [ Seq("AGCT"),
...               Seq("TCGA"),
...               Seq("AACT"),
...             ]
>>> seq = motifs.create(DNA_motif)
>>> print(seq) AGCT TCGA AACT

要计数序列值,请使用以下命令 −

>>> print(seq.counts)
         0       1      2       3
A:    2.00    1.00   0.00    1.00
C:    0.00    1.00   2.00    0.00
G:    0.00    1.00   1.00    0.00
T:    1.00    0.00   0.00    2.00

使用以下代码来计数序列中的“A” −

>>> seq.counts["A", :]
(2, 1, 0, 1)

如果您想访问计数列,请使用以下命令 −

>>> seq.counts[:, 3]
{'A': 1, 'C': 0, 'T': 2, 'G': 0}

我们现在将讨论如何创建序列标识。

考虑以下序列 −

AGCTTACG
ATCGTACC
TTCCGAAT
GGTACGTA
AAGCTTGG

您可以使用以下链接创建自己的标识 − http://weblogo.berkeley.edu/

添加上面序列并创建一个新标识,并将图像命名为 seq.png 保存到您的 Biopython 文件夹。

seq.png
sequence logo

在创建图像后,现在运行以下命令 −

>>> seq.weblogo("seq.png")

此 DNA 序列基序被表示为 LexA 结合基序的序列标识。

JASPAR Database

JASPAR 是最流行的数据库之一。它为阅读、写入和扫描序列提供了任何基序格式的设施。它为每个基序存储元信息。 The module Bio.motifs contains a specialized class jaspar.Motif to represent meta-information attributes

它拥有以下显著的属性类型 −

  1. matrix_id − 唯一的 JASPAR 基序 ID

  2. 名称 − 基序名称

  3. tf_family − 基序家族,例如“螺旋-环状-螺旋”

  4. data_type − 基序中使用的数据类型

让我们在 biopython 文件夹中创建一个名为 sample.sites 的 JASPAR 位点格式。它在下面定义 −

sample.sites
>MA0001 ARNT 1
AACGTGatgtccta
>MA0001 ARNT 2
CAGGTGggatgtac
>MA0001 ARNT 3
TACGTAgctcatgc
>MA0001 ARNT 4
AACGTGacagcgct
>MA0001 ARNT 5
CACGTGcacgtcgt
>MA0001 ARNT 6
cggcctCGCGTGc

在上面的文件中,我们创建了基序实例。现在,让我们从上述实例创建一个基序对象 −

>>> from Bio import motifs
>>> with open("sample.sites") as handle:
... data = motifs.read(handle,"sites")
...
>>> print(data)
TF name None
Matrix ID None
Matrix:
            0       1       2       3       4       5
A:       2.00    5.00    0.00    0.00    0.00    1.00
C:       3.00    0.00    5.00    0.00    0.00    0.00
G:       0.00    1.00    1.00    6.00    0.00    5.00
T:       1.00    0.00    0.00    0.00    6.00    0.00

此处,data 从 sample.sites 文件读取所有基序实例。

要打印 data 中的所有实例,请使用以下命令 −

>>> for instance in data.instances:
...    print(instance)
...
AACGTG
CAGGTG
TACGTA
AACGTG
CACGTG
CGCGTG

使用以下命令统计所有值 −

>>> print(data.counts)
            0       1       2       3       4       5
A:       2.00    5.00    0.00    0.00    0.00    1.00
C:       3.00    0.00    5.00    0.00    0.00    0.00
G:       0.00    1.00    1.00    6.00    0.00    5.00
T:       1.00    0.00    0.00    0.00    6.00    0.00
>>>