Biopython - Sekwencja

Sekwencja to seria liter używanych do reprezentowania białka organizmu, DNA lub RNA. Jest reprezentowany przez klasę Seq. Klasa Seq jest zdefiniowana w module Bio.Seq.

Utwórzmy prostą sekwencję w Biopythonie, jak pokazano poniżej -

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

Tutaj stworzyliśmy prostą sekwencję białek AGCT a każda litera reprezentuje Alanine, Glicyna, Cysteine ​​i Threonina.

Każdy obiekt Seq ma dwa ważne atrybuty -

  • data - rzeczywisty ciąg sekwencji (AGCT)

  • alfabet - używany do reprezentowania typu sekwencji. np. sekwencja DNA, sekwencja RNA itp. Domyślnie nie reprezentuje żadnej sekwencji i ma charakter generyczny.

Moduł alfabetu

Obiekty Seq zawierają atrybut Alphabet do określenia typu sekwencji, liter i możliwych operacji. Jest zdefiniowany w module Bio.Alphabet. Alfabet można zdefiniować jak poniżej -

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

Moduł Alphabet zawiera poniższe klasy reprezentujące różne typy sekwencji. Alphabet - klasa bazowa dla wszystkich typów alfabetów.

SingleLetterAlphabet - Ogólny alfabet z literami o rozmiarze jeden. Wywodzi się z Alphabet i wszystkie inne typy alfabetów wywodzą się z niego.

>>> 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 - Ogólny jednoliterowy alfabet białkowy.

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

NucleotideAlphabet - Ogólny jednoliterowy alfabet nukleotydów.

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

DNAAlphabet - rodzajowy jednoliterowy alfabet DNA.

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

RNAAlphabet - Ogólny jednoliterowy alfabet RNA.

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

Moduł Biopython, Bio.Alphabet.IUPAC zapewnia podstawowe typy sekwencji zdefiniowane przez społeczność IUPAC. Zawiera następujące klasy -

  • IUPACProtein (protein) - Alfabet białek IUPAC składający się z 20 standardowych aminokwasów.

  • ExtendedIUPACProtein (extended_protein) - Rozszerzony jednoliterowy alfabet białka IUPAC, zawierający litery X.

  • IUPACAmbiguousDNA (ambiguous_dna) - Wieloznaczne DNA IUPAC.

  • IUPACUnambiguousDNA (unambiguous_dna) - Wielkie litery jednoznaczne DNA IUPAC (GATC).

  • ExtendedIUPACDNA (extended_dna) - Rozszerzony alfabet DNA IUPAC.

  • IUPACAmbiguousRNA (ambiguous_rna) - Wieloznaczne RNA IUPAC wielkimi literami.

  • IUPACUnambiguousRNA (unambiguous_rna) - Wielkie litery jednoznaczne RNA IUPAC (GAUC).

Rozważmy prosty przykład klasy IUPACProtein, jak pokazano poniżej -

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

Ponadto Biopython udostępnia wszystkie dane konfiguracyjne związane z bioinformatyką za pośrednictwem modułu Bio.Data. Na przykład IUPACData.protein_letters zawiera możliwe litery alfabetu IUPACProtein.

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

Podstawowe operacje

Ta sekcja w skrócie wyjaśnia wszystkie podstawowe operacje dostępne w klasie Seq. Sekwencje są podobne do ciągów znaków w Pythonie. Możemy wykonywać operacje na łańcuchach w Pythonie, takie jak dzielenie, liczenie, łączenie, znajdowanie, dzielenie i rozbieranie w sekwencjach.

Użyj poniższych kodów, aby uzyskać różne wyniki.

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

Tutaj dwa powyższe obiekty sekwencji, seq1, seq2 są rodzajowymi sekwencjami DNA, więc możesz je dodać i stworzyć nową sekwencję. Nie można dodawać sekwencji z niekompatybilnymi alfabetami, takich jak sekwencja białka i sekwencja DNA, jak określono poniżej -

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

Aby dodać dwie lub więcej sekwencji, najpierw zapisz je na liście Pythona, a następnie pobierz za pomocą „pętli for” i na koniec dodaj razem, jak pokazano poniżej -

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

W poniższej sekcji podano różne kody, aby uzyskać dane wyjściowe w oparciu o wymagania.

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