Biopython - zaawansowane operacje sekwencyjne
W tym rozdziale omówimy niektóre z zaawansowanych funkcji sekwencji zapewnianych przez Biopython.
Uzupełnienie i dopełnienie odwrotne
Sekwencję nukleotydową można uzupełnić odwrotnie, aby uzyskać nową sekwencję. Ponadto, komplementowana sekwencja może być komplementowana odwrotnie, aby uzyskać oryginalną sekwencję. Biopython zapewnia dwie metody wykonania tej funkcji -complement i reverse_complement. Kod do tego jest podany poniżej -
>>> from Bio.Alphabet import IUPAC
>>> nucleotide = Seq('TCGAAGTCAGTC', IUPAC.ambiguous_dna)
>>> nucleotide.complement()
Seq('AGCTTCAGTCAG', IUPACAmbiguousDNA())
>>>
Tutaj metoda complement () pozwala na uzupełnienie sekwencji DNA lub RNA. Metoda reverse_complement () uzupełnia i odwraca wynikową sekwencję od lewej do prawej. Jest to pokazane poniżej -
>>> nucleotide.reverse_complement()
Seq('GACTGACTTCGA', IUPACAmbiguousDNA())
Biopython używa zmiennej ambiguous_dna_complement dostarczonej przez Bio.Data.IUPACData do wykonania operacji uzupełniania.
>>> 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'}
>>>
Zawartość GC
Przewiduje się, że skład zasad genomowego DNA (zawartość GC) znacząco wpłynie na funkcjonowanie genomu i ekologię gatunku. Zawartość GC to liczba nukleotydów GC podzielona przez całkowitą liczbę nukleotydów.
Aby uzyskać zawartość nukleotydów GC, zaimportuj następujący moduł i wykonaj następujące kroki -
>>> from Bio.SeqUtils import GC
>>> nucleotide = Seq("GACTGACTTCGA",IUPAC.unambiguous_dna)
>>> GC(nucleotide)
50.0
Transkrypcja
Transkrypcja to proces zamiany sekwencji DNA na sekwencję RNA. Faktyczny proces transkrypcji biologicznej polega na wykonaniu odwrotnego dopełniacza (TCAG → CUGA) w celu uzyskania mRNA, traktując DNA jako nić matrycową. Jednak w bioinformatyce, a więc w Biopythonie, zazwyczaj pracujemy bezpośrednio z nicią kodującą i możemy uzyskać sekwencję mRNA, zmieniając literę T na U.
Prosty przykład powyższego jest następujący -
>>> 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())
>>>
Aby odwrócić transkrypcję, T zmienia się na U, jak pokazano na poniższym kodzie -
>>> rna_seq = transcribe(dna_seq)
>>> rna_seq.back_transcribe()
Seq('ATGCCGATCGTAT', IUPACUnambiguousDNA())
Aby uzyskać nić matrycową DNA, reverse_complement the back transkrybowane RNA, jak podano poniżej -
>>> rna_seq.back_transcribe().reverse_complement()
Seq('ATACGATCGGCAT', IUPACUnambiguousDNA())
Tłumaczenie
Translacja to proces translacji sekwencji RNA na sekwencję białka. Rozważ sekwencję RNA, jak pokazano poniżej -
>>> rna_seq = Seq("AUGGCCAUUGUAAU",IUPAC.unambiguous_rna)
>>> rna_seq
Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGAUAG', IUPACUnambiguousRNA())
Teraz zastosuj funkcję translate () do powyższego kodu -
>>> rna_seq.translate()
Seq('MAIV', IUPACProtein())
Powyższa sekwencja RNA jest prosta. Rozważ sekwencję RNA, AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGA i zastosuj translate () -
>>> rna = Seq('AUGGCCAUUGUAAUGGGCCGCUGAAAGGGUGCCCGA', IUPAC.unambiguous_rna)
>>> rna.translate()
Seq('MAIVMGR*KGAR', HasStopCodon(IUPACProtein(), '*'))
Tutaj kodony stop są oznaczone gwiazdką „*”.
W metodzie translate () można zatrzymać się na pierwszym kodonie stop. Aby to zrobić, możesz przypisać to_stop = True w translate () w następujący sposób -
>>> rna.translate(to_stop = True)
Seq('MAIVMGR', IUPACProtein())
Tutaj kodon stop nie jest zawarty w wynikowej sekwencji, ponieważ go nie zawiera.
Tabela tłumaczeń
Strona Kody genetyczne NCBI zawiera pełną listę tabel tłumaczeń używanych przez Biopython. Zobaczmy przykład standardowej tabeli do wizualizacji kodu -
>>> 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 używa tej tabeli do przetłumaczenia DNA na białko, a także do znalezienia kodonu Stop.