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