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リシン、 Cysteineと Tレオニン。

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

  • データ-実際のシーケンス文字列(AGCT)

  • アルファベット-シーケンスのタイプを表すために使用されます。たとえば、DNA配列、RNA配列など。デフォルトでは、配列を表すことはなく、本質的に一般的です。

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

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

>>> from Bio.Seq import Seq 
>>> myseq = Seq("AGCT") 
>>> myseq 
Seq('AGCT') 
>>> myseq.alphabet 
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-一般的な1文字のタンパク質アルファベット。

>>> 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コミュニティで定義されている基本的なシーケンスタイプを提供します。次のクラスが含まれています-

  • IUPACProtein (protein) −20個の標準アミノ酸のIUPACタンパク質アルファベット。

  • ExtendedIUPACProtein (extended_protein) −Xを含む拡張大文字IUPACタンパク質の1文字のアルファベット。

  • IUPACAmbiguousDNA (ambiguous_dna) −大文字のIUPACのあいまいなDNA。

  • IUPACUnambiguousDNA (unambiguous_dna) −大文字のIUPAC明確なDNA(GATC)。

  • ExtendedIUPACDNA (extended_dna) −拡張IUPACDNAアルファベット。

  • IUPACAmbiguousRNA (ambiguous_rna) −大文字のIUPACのあいまいなRNA。

  • IUPACUnambiguousRNA (unambiguous_rna) −大文字のIUPAC明確な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文字列操作を順番に実行できます。

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

To get the first value in sequence.

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

To print the first two values.

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

To print all the values.

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

To perform length and count operations.

>>> len(seq_string) 
8 
>>> seq_string.count('A') 
2

To add two sequences.

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

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

To change the case of sequence.

>>> from Bio.Alphabet import generic_rna 
>>> rna = Seq("agct", generic_rna) 
>>> rna.upper() 
Seq('AGCT', RNAAlphabet())

To check python membership and identity operator.

>>> rna = Seq("agct", generic_rna) 
>>> 'a' in rna 
True 
>>> 'A' in rna 
False 
>>> rna1 = Seq("AGCT", generic_dna) 
>>> rna is rna1 
False

To find single letter or sequence of letter inside the given sequence.

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

To perform splitting operation.

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

To perform strip operations in the sequence.

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