Учебники

Биопайтон — последовательность

Последовательность — это серия букв, используемых для представления белка, ДНК или РНК организма. Он представлен классом Seq. Класс Seq определен в модуле Bio.Seq.

Давайте создадим простую последовательность в Biopython, как показано ниже —

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

Здесь мы создали простую белковую последовательность AGCT, и каждая буква представляет собой ланин, G- лизин, цистеин и т- хреонин.

Каждый объект Seq имеет два важных атрибута:

  • данные — фактическая последовательность строк (AGCT)

  • алфавит — используется для представления типа последовательности. например, последовательность ДНК, последовательность РНК и т. д. По умолчанию она не представляет какую-либо последовательность и носит общий характер.

данные — фактическая последовательность строк (AGCT)

алфавит — используется для представления типа последовательности. например, последовательность ДНК, последовательность РНК и т. д. По умолчанию она не представляет какую-либо последовательность и носит общий характер.

Алфавитный модуль

Объекты Seq содержат атрибут Alphabet для указания типа последовательности, букв и возможных операций. Это определяется в модуле Bio.Alphabet. Алфавит может быть определен как ниже —

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

Алфавитный модуль предоставляет ниже классы для представления различных типов последовательностей. Алфавит — базовый класс для всех типов алфавитов.

SingleLetterAlphabet — Общий алфавит с буквами размера один. Это происходит от Алфавита, и все другие типы алфавитов происходят из него.

>>> 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 — Общий однобуквенный нуклеотидный алфавит.

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

DNAAlphabet — Общий однобуквенный алфавит ДНК.

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

RNAAlphabet — Общий однобуквенный алфавит РНК.

>>> 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. Он содержит следующие классы —

  • ИЮПАКПротеин (белок) — белок ИЮПАК алфавит из 20 стандартных аминокислот.

  • ExtendedIUPACProtein (extended_protein) — расширенный заглавный алфавит с одним буквой IUPAC, включая X.

  • IUPACAmbiguousDNA (ambiguous_dna) — Прописная IUPAC неоднозначная ДНК.

  • IUPACUnambiguousDNA (unambiguous_dna) — Прописная IUPAC однозначная ДНК (GATC).

  • ExtendedIUPACDNA (extended_dna) — расширенный алфавит ДНК IUPAC.

  • IUPACAmbiguousRNA (ambiguous_rna) — Прописная IUPAC неоднозначная РНК.

  • IUPACUnambiguousRNA (однозначная_рна) — прописная IUPAC однозначная РНК (GAUC).

ИЮПАКПротеин (белок) — белок ИЮПАК алфавит из 20 стандартных аминокислот.

ExtendedIUPACProtein (extended_protein) — расширенный заглавный алфавит с одним буквой IUPAC, включая X.

IUPACAmbiguousDNA (ambiguous_dna) — Прописная IUPAC неоднозначная ДНК.

IUPACUnambiguousDNA (unambiguous_dna) — Прописная IUPAC однозначная ДНК (GATC).

ExtendedIUPACDNA (extended_dna) — расширенный алфавит ДНК IUPAC.

IUPACAmbiguousRNA (ambiguous_rna) — Прописная IUPAC неоднозначная РНК.

IUPACUnambiguousRNA (однозначная_рна) — прописная IUPAC однозначная РНК (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'

Для печати первых двух значений.

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

Чтобы распечатать все значения.

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

Выполнять операции длины и счета.

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

Добавить две последовательности.

>>> from Bio.Alphabet import generic_dna, generic_protein 
>>> seq1 = Seq("AGCT", generic_dna) 
>>> seq2 = Seq("TCGA", generic_dna)
>>> seq1+seq2 
Seq('AGCTTCGA', DNAAlphabet())

Здесь два вышеупомянутых объекта последовательности, seq1, seq2, являются общими последовательностями ДНК, поэтому вы можете добавить их и создать новую последовательность. Вы не можете добавлять последовательности с несовместимыми алфавитами, такими как последовательность белка и последовательность ДНК, как указано ниже —

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

Чтобы добавить две или более последовательности, сначала сохраните его в списке 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 и личность оператора.

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

Для выполнения полосовых операций в последовательности.