Учебники

Biopython — Расширенные операции с последовательностями

В этой главе мы обсудим некоторые расширенные функции последовательности, предоставляемые Biopython.

Дополнение и обратное дополнение

Нуклеотидная последовательность может быть обратно дополнена, чтобы получить новую последовательность. Кроме того, дополненная последовательность может быть обратно дополнена, чтобы получить исходную последовательность. Biopython предоставляет два метода для выполнения этой функции — дополнение и reverse_complement . Код для этого приведен ниже —

>>> from Bio.Alphabet import IUPAC 
>>> nucleotide = Seq('TCGAAGTCAGTC', IUPAC.ambiguous_dna) 
>>> nucleotide.complement() 
Seq('AGCTTCAGTCAG', IUPACAmbiguousDNA()) 
>>>

Здесь метод комплемента () позволяет дополнить последовательность ДНК или РНК. Метод reverse_complement () дополняет и переворачивает результирующую последовательность слева направо. Это показано ниже —

>>> nucleotide.reverse_complement() 
Seq('GACTGACTTCGA', IUPACAmbiguousDNA())

Biopython использует переменную ambiguous_dna_complement, предоставленную Bio.Data.IUPACData, для выполнения операции дополнения.

>>> from Bio.Data import IUPACData 
>>> import pprint 
>>> pprint.pprint(IUPACData.ambiguous_dna_complement) {
   'A': 'T',
   'B': 'V',
   'C': 'G',
   'D': 'H',
   'G': 'C',
   'H': 'D',
   'K': 'M',
   'M': 'K',
   'N': 'N',
   'R': 'Y',
   'S': 'S',
   'T': 'A',
   'V': 'B',
   'W': 'W',
   'X': 'X',
   'Y': 'R'} 
>>>

GC Content

Прогнозируется, что базовый состав геномной ДНК (содержание GC) существенно влияет на функционирование генома и экологию видов. Содержание GC представляет собой количество нуклеотидов GC, деленное на общее количество нуклеотидов.

Чтобы получить содержание нуклеотидов ГХ, импортируйте следующий модуль и выполните следующие шаги:

>>> from Bio.SeqUtils import GC 
>>> nucleotide = Seq("GACTGACTTCGA",IUPAC.unambiguous_dna) 
>>> GC(nucleotide) 
50.0

транскрипция

Транскрипция — это процесс изменения последовательности ДНК в последовательность РНК. Фактический процесс биологической транскрипции выполняет обратный комплемент (TCAG → CUGA), чтобы получить мРНК, рассматривая ДНК как матричную цепь. Однако в биоинформатике и так далее в Biopython мы обычно работаем напрямую с кодирующей цепью и можем получить последовательность мРНК, изменив букву Т на U.

Простой пример для вышесказанного выглядит следующим образом —

>>> from Bio.Seq import Seq 
>>> from Bio.Seq import transcribe 
>>> from Bio.Alphabet import IUPAC 
>>> dna_seq = Seq("ATGCCGATCGTAT",IUPAC.unambiguous_dna) >>> transcribe(dna_seq) 
Seq('AUGCCGAUCGUAU', IUPACUnambiguousRNA()) 
>>>

Чтобы изменить транскрипцию, T изменяется на U, как показано в коде ниже —

>>> rna_seq = transcribe(dna_seq) 
>>> rna_seq.back_transcribe() 
Seq('ATGCCGATCGTAT', IUPACUnambiguousDNA())

Чтобы получить ДНК-матрицу, переверните обратно транскрибированную РНК, как показано ниже —

>>> rna_seq.back_transcribe().reverse_complement() 
Seq('ATACGATCGGCAT', IUPACUnambiguousDNA())

Перевод

Трансляция — это процесс трансляции последовательности РНК в последовательность белка. Рассмотрим последовательность РНК, как показано ниже —

>>> rna_seq = Seq("AUGGCCAUUGUAAU",IUPAC.unambiguous_rna) 
>>> rna_seq 
Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG', IUPACUnambiguousRNA())

Теперь примените функцию translate () к коду выше —

>>> rna_seq.translate() 
Seq('MAIV', IUPACProtein())

Вышеуказанная последовательность РНК проста. Рассмотрим последовательность РНК, AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGA и примените translate () —

>>> rna = Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGA', IUPAC.unambiguous_rna) 
>>> rna.translate() 
Seq('MAIVMGR*KGAR', HasStopCodon(IUPACProtein(), '*'))

Здесь стоп-кодоны обозначены звездочкой «*».

В методе translate () возможно остановиться на первом стоп-кодоне. Для этого вы можете назначить to_stop = True в translate () следующим образом:

>>> rna.translate(to_stop = True) 
Seq('MAIVMGR', IUPACProtein())

Здесь стоп-кодон не включен в результирующую последовательность, потому что он не содержит такового.

Таблица перевода

На странице Генетических кодов NCBI представлен полный список таблиц перевода, используемых Biopython. Давайте посмотрим пример стандартной таблицы для визуализации кода —

>>> from Bio.Data import CodonTable 
>>> table = CodonTable.unambiguous_dna_by_name["Standard"] 
>>> print(table) 
Table 1 Standard, SGC0
   | T       | C       | A       | G       | 
 --+---------+---------+---------+---------+-- 
 T | TTT F   | TCT S   | TAT Y   | TGT C   | T
 T | TTC F   | TCC S   | TAC Y   | TGC C   | C
 T | TTA L   | TCA S   | TAA Stop| TGA Stop| A
 T | TTG L(s)| TCG S   | TAG Stop| TGG W   | G 
 --+---------+---------+---------+---------+--
 C | CTT L   | CCT P   | CAT H   | CGT R   | T
 C | CTC L   | CCC P   | CAC H   | CGC R   | C
 C | CTA L   | CCA P   | CAA Q   | CGA R   | A
 C | CTG L(s)| CCG P   | CAG Q   | CGG R   | G 
 --+---------+---------+---------+---------+--
 A | ATT I   | ACT T   | AAT N   | AGT S   | T
 A | ATC I   | ACC T   | AAC N   | AGC S   | C
 A | ATA I   | ACA T   | AAA K   | AGA R   | A
 A | ATG M(s)| ACG T   | AAG K   | AGG R   | G 
 --+---------+---------+---------+---------+--
 G | GTT V   | GCT A   | GAT D   | GGT G   | T
 G | GTC V   | GCC A   | GAC D   | GGC G   | C
 G | GTA V   | GCA A   | GAA E   | GGA G   | A
 G | GTG V   | GCG A   | GAG E   | GGG G   | G 
 --+---------+---------+---------+---------+-- 
>>>

Biopython использует эту таблицу для перевода ДНК в белок, а также для поиска стоп-кодона.