Biopython - 图案对象


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

from Bio import motifs

创建简单的 DNA 基序

让我们使用以下命令创建一个简单的 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

序列标志

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

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

该 DNA 序列基序表示为 LexA 结合基序的序列标志。

贾斯帕数据库

JASPAR 是最流行的数据库之一。它提供了用于读取、写入和扫描序列的任何主题格式的设施。它存储每个主题的元信息。Bio.motifs 模块包含一个专门的类 jaspar.Motif 来表示元信息属性

它具有以下值得注意的属性类型 -

  • Matrix_id - 唯一的 JASPAR 图案 ID
  • name - 主题的名称
  • tf_family - 主题家族,例如“Helix-Loop-Helix”
  • 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

在这里,数据从sample.sites 文件中读取所有主题实例。

要打印数据中的所有实例,请使用以下命令 -

>>> 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
>>>