Biopython-sequence

提供:Dev Guides
移動先:案内検索

Biopython-シーケンス

シーケンスは、生物のタンパク質、DNA、またはRNAを表すために使用される一連の文字です。 Seqクラスで表されます。 SeqクラスはBio.Seqモジュールで定義されています。

以下に示すように、Biopythonで簡単なシーケンスを作成しましょう-

>>> from Bio.Seq import Seq
>>> seq = Seq("AGCT")
>>> seq
Seq('AGCT')
>>> print(seq)
AGCT

ここでは、単純なタンパク質シーケンス AGCT を作成し、各文字は* A ラニン、 G リシン、 C システイン、 T *レオニンを表します。

各Seqオブジェクトには2つの重要な属性があります-

  • データ-実際のシーケンス文字列(AGCT)
  • アルファベット-シーケンスのタイプを表すために使用されます。 e.g. DNA配列、RNA配列など デフォルトでは、シーケンスを表しておらず、本質的に汎用です。

アルファベットモジュール

Seqオブジェクトには、シーケンスタイプ、文字、および可能な操作を指定するAlphabet属性が含まれています。 Bio.Alphabetモジュールで定義されています。 アルファベットは以下のように定義できます-

>>> from Bio.Seq import Seq
>>> myseq = Seq("AGCT")
>>> myseq
Seq('AGCT')
>>> myseq.alphabet
Alphabet()

アルファベットモジュールは、さまざまなタイプのシーケンスを表す以下のクラスを提供します。 アルファベット-すべてのタイプのアルファベットの基本クラス。

SingleLetterAlphabet-サイズ1の文字を含む汎用アルファベット。 それはアルファベットから派生し、他のすべてのアルファベットタイプはそれから派生します。

>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import single_letter_alphabet
>>> test_seq = Seq('AGTACACTGGT', single_letter_alphabet)
>>> test_seq
Seq('AGTACACTGGT', SingleLetterAlphabet())

ProteinAlphabet-一般的な単一文字のタンパク質アルファベット。

>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_protein
>>> test_seq = Seq('AGTACACTGGT', generic_protein)
>>> test_seq
Seq('AGTACACTGGT', ProteinAlphabet())

NucleotideAlphabet-一般的な1文字のヌクレオチドアルファベット。

>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_nucleotide
>>> test_seq = Seq('AGTACACTGGT', generic_nucleotide) >>> test_seq
Seq('AGTACACTGGT', NucleotideAlphabet())

DNAAlphabet-一般的な1文字のDNAアルファベット。

>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_dna
>>> test_seq = Seq('AGTACACTGGT', generic_dna)
>>> test_seq
Seq('AGTACACTGGT', DNAAlphabet())

RNAAlphabet-一般的な1文字のRNAアルファベット。

>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_rna
>>> test_seq = Seq('AGTACACTGGT', generic_rna)
>>> test_seq
Seq('AGTACACTGGT', RNAAlphabet())

BiopythonモジュールのBio.Alphabet.IUPACは、IUPACコミュニティで定義されている基本的なシーケンスタイプを提供します。 次のクラスが含まれています-

  • * IUPACタンパク質(タンパク質)*-20個の標準アミノ酸のIUPACタンパク質アルファベット。
  • * ExtendedIUPACProtein(extended_protein)*-Xを含む拡張大文字IUPACタンパク質1文字アルファベット。
  • * IUPACAmbiguousDNA(ambiguous_dna)*-大文字のIUPACあいまいなDNA。
  • * IUPACUnambiguousDNA(unambiguous_dna)*-大文字のIUPAC unambiguous DNA(GATC)。
  • * ExtendedIUPACDNA(extended_dna)*-拡張IUPAC DNAアルファベット。
  • * IUPACAmbiguousRNA(ambiguous_rna)*-大文字のIUPAC ambiguous RNA。
  • * IUPACUnambiguousRNA(unambiguous_rna)*-大文字のIUPAC unambiguous RNA(GAUC)。

以下に示すように、IUPACProteinクラスの簡単な例を考えてください-

>>> from Bio.Alphabet import IUPAC
>>> protein_seq = Seq("AGCT", IUPAC.protein)
>>> protein_seq
Seq('AGCT', IUPACProtein())
>>> protein_seq.alphabet

また、BiopythonはBio.Dataモジュールを通じてすべてのバイオインフォマティクス関連の構成データを公開します。 たとえば、IUPACData.protein_lettersにはIUPACProteinアルファベットの可能な文字があります。

>>> from Bio.Data import IUPACData
>>> IUPACData.protein_letters
'ACDEFGHIKLMNPQRSTVWY'

基本操作

このセクションでは、Seqクラスで使用可能なすべての基本操作について簡単に説明します。 シーケンスはPython文字列に似ています。 シーケンスのスライス、カウント、連結、検索、分割、ストリップなどのPython文字列操作を実行できます。

以下のコードを使用して、さまざまな出力を取得します。

シーケンスの最初の値を取得するには

>>> seq_string = Seq("AGCTAGCT")
>>> seq_string[0]
'A'

最初の2つの値を印刷するには。

>>> seq_string[0:2]
Seq('AG')

すべての値を印刷するには

>>> seq_string[ : ]
Seq('AGCTAGCT')

長さとカウントの操作を実行します。

>>> len(seq_string)
8
>>> seq_string.count('A')
2
  • 2つのシーケンスを追加します。*
>>> from Bio.Alphabet import generic_dna, generic_protein
>>> seq1 = Seq("AGCT", generic_dna)
>>> seq2 = Seq("TCGA", generic_dna)
>>> seq1+seq2
Seq('AGCTTCGA', DNAAlphabet())

ここで、上記の2つのシーケンスオブジェクト、seq1、seq2は汎用のDNAシーケンスであるため、それらを追加して新しいシーケンスを作成できます。 以下に指定されているタンパク質配列やDNA配列など、互換性のないアルファベットを含む配列を追加することはできません-

>>> dna_seq = Seq('AGTACACTGGT', generic_dna)
>>> protein_seq = Seq('AGUACACUGGU', generic_protein)
>>> dna_seq + protein_seq
.....
.....
TypeError: Incompatible alphabets DNAAlphabet() and ProteinAlphabet()
>>>

2つ以上のシーケンスを追加するには、まずPythonリストに保存し、次に「forループ」を使用して取得し、最後に以下に示すように一緒に追加します-

>>> from Bio.Alphabet import generic_dna
>>> list = [Seq("AGCT",generic_dna),Seq("TCGA",generic_dna),Seq("AAA",generic_dna)]
>>> for s in list:
... print(s)
...
AGCT
TCGA
AAA
>>> final_seq = Seq(" ",generic_dna)
>>> for s in list:
... final_seq = final_seq + s
...
>>> final_seq
Seq('AGCTTCGAAAA', DNAAlphabet())

以下のセクションでは、要件に基づいて出力を取得するためのさまざまなコードを示します。

シーケンスの大文字小文字を変更するには

>>> from Bio.Alphabet import generic_rna
>>> rna = Seq("agct", generic_rna)
>>> rna.upper()
Seq('AGCT', RNAAlphabet())
  • PythonメンバーシップとID演算子を確認するには。*
>>> rna = Seq("agct", generic_rna)
>>> 'a' in rna
True
>>> 'A' in rna
False
>>> rna1 = Seq("AGCT", generic_dna)
>>> rna is rna1
False

指定されたシーケンス内の単一の文字または文字のシーケンスを検索します。

>>> protein_seq = Seq('AGUACACUGGU', generic_protein)
>>> protein_seq.find('G')
1
>>> protein_seq.find('GG')
8

分割操作を実行します。

>>> protein_seq = Seq('AGUACACUGGU', generic_protein)
>>> protein_seq.split('A')
[Seq('', ProteinAlphabet()), Seq('GU', ProteinAlphabet()),
   Seq('C', ProteinAlphabet()), Seq('CUGGU', ProteinAlphabet())]

シーケンスでストリップ操作を実行します。

>>> strip_seq = Seq(" AGCT ")
>>> strip_seq
Seq(' AGCT ')
>>> strip_seq.strip()
Seq('AGCT')