Biopython-motif-objects
Biopython-Motifオブジェクト
配列モチーフは、ヌクレオチドまたはアミノ酸の配列パターンです。 配列モチーフは、隣接していない可能性のあるアミノ酸の三次元配列によって形成されます。 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データベース
JASPARは最も人気のあるデータベースの1つです。 シーケンスの読み取り、書き込み、スキャンのためのモチーフ形式のいずれかの機能を提供します。 各モチーフのメタ情報を保存します。 モジュールBio.motifsには、メタ情報の属性を表す特別なクラスjaspar.Motifが含まれています。
次の注目すべき属性タイプがあります-
- matrix_id-一意のJASPARモチーフID
- name-モチーフの名前
- tf_family-モチーフのファミリー、例えば 「ヘリックス-ループ-ヘリックス」
- 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
>>>