Biopython - Secuencia
Una secuencia es una serie de letras que se utilizan para representar la proteína, el ADN o el ARN de un organismo. Está representado por la clase Seq. La clase de secuencia se define en el módulo Bio.Seq.
Creemos una secuencia simple en Biopython como se muestra a continuación:
>>> from Bio.Seq import Seq
>>> seq = Seq("AGCT")
>>> seq
Seq('AGCT')
>>> print(seq)
AGCT
Aquí, hemos creado una secuencia de proteínas simple. AGCT y cada letra representa Alanina, Glicina Cysteine y Threonina.
Cada objeto Seq tiene dos atributos importantes:
datos: la cadena de secuencia real (AGCT)
alfabeto: se utiliza para representar el tipo de secuencia. por ejemplo, secuencia de ADN, secuencia de ARN, etc. Por defecto, no representa ninguna secuencia y es de naturaleza genérica.
Módulo Alfabeto
Los objetos Seq contienen el atributo Alphabet para especificar el tipo de secuencia, letras y posibles operaciones. Se define en el módulo Bio.Alphabet. El alfabeto se puede definir de la siguiente manera:
>>> from Bio.Seq import Seq
>>> myseq = Seq("AGCT")
>>> myseq
Seq('AGCT')
>>> myseq.alphabet
Alphabet()
El módulo Alfabeto proporciona las siguientes clases para representar diferentes tipos de secuencias. Alfabeto: clase básica para todo tipo de alfabetos.
SingleLetterAlphabet: alfabeto genérico con letras de tamaño uno. Se deriva de Alphabet y todos los demás tipos de alfabetos derivan de él.
>>> 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 - Alfabeto genérico de proteínas de una sola letra.
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_protein
>>> test_seq = Seq('AGTACACTGGT', generic_protein)
>>> test_seq
Seq('AGTACACTGGT', ProteinAlphabet())
NucleotideAlphabet - Alfabeto genérico de nucleótidos de una sola letra.
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_nucleotide
>>> test_seq = Seq('AGTACACTGGT', generic_nucleotide) >>> test_seq
Seq('AGTACACTGGT', NucleotideAlphabet())
DNAAlphabet - Alfabeto genérico de ADN de una sola letra.
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_dna
>>> test_seq = Seq('AGTACACTGGT', generic_dna)
>>> test_seq
Seq('AGTACACTGGT', DNAAlphabet())
RNAAlphabet - Alfabeto genérico de RNA de una sola letra.
>>> from Bio.Seq import Seq
>>> from Bio.Alphabet import generic_rna
>>> test_seq = Seq('AGTACACTGGT', generic_rna)
>>> test_seq
Seq('AGTACACTGGT', RNAAlphabet())
El módulo Biopython, Bio.Alphabet.IUPAC proporciona tipos de secuencia básicos según lo definido por la comunidad IUPAC. Contiene las siguientes clases:
IUPACProtein (protein) - Alfabeto de proteínas IUPAC de 20 aminoácidos estándar.
ExtendedIUPACProtein (extended_protein) - Alfabeto de una sola letra de proteína IUPAC mayúscula extendida que incluye X.
IUPACAmbiguousDNA (ambiguous_dna) - ADN ambiguo IUPAC en mayúsculas.
IUPACUnambiguousDNA (unambiguous_dna) - ADN inequívoco IUPAC en mayúsculas (GATC).
ExtendedIUPACDNA (extended_dna) - Alfabeto de ADN IUPAC extendido.
IUPACAmbiguousRNA (ambiguous_rna) - ARN ambiguo IUPAC en mayúsculas.
IUPACUnambiguousRNA (unambiguous_rna) - ARN inequívoco IUPAC en mayúsculas (GAUC).
Considere un ejemplo simple para la clase IUPACProtein como se muestra a continuación:
>>> from Bio.Alphabet import IUPAC
>>> protein_seq = Seq("AGCT", IUPAC.protein)
>>> protein_seq
Seq('AGCT', IUPACProtein())
>>> protein_seq.alphabet
Además, Biopython expone todos los datos de configuración relacionados con la bioinformática a través del módulo Bio.Data. Por ejemplo, IUPACData.protein_letters tiene las posibles letras del alfabeto IUPACProtein.
>>> from Bio.Data import IUPACData
>>> IUPACData.protein_letters
'ACDEFGHIKLMNPQRSTVWY'
Operaciones básicas
Esta sección explica brevemente todas las operaciones básicas disponibles en la clase Seq. Las secuencias son similares a las cadenas de Python. Podemos realizar operaciones de cadena de Python como cortar, contar, concatenación, buscar, dividir y eliminar en secuencias.
Utilice los siguientes códigos para obtener varias salidas.
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())
Aquí, los dos objetos de secuencia anteriores, seq1, seq2 son secuencias de ADN genéricas, por lo que puede agregarlas y producir una nueva secuencia. No puede agregar secuencias con alfabetos incompatibles, como una secuencia de proteínas y una secuencia de ADN como se especifica a continuación:
>>> dna_seq = Seq('AGTACACTGGT', generic_dna)
>>> protein_seq = Seq('AGUACACUGGU', generic_protein)
>>> dna_seq + protein_seq
.....
.....
TypeError: Incompatible alphabets DNAAlphabet() and ProteinAlphabet()
>>>
Para agregar dos o más secuencias, primero guárdelo en una lista de Python, luego recupérelo usando 'for loop' y finalmente agréguelos como se muestra a continuación
>>> 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())
En la siguiente sección, se proporcionan varios códigos para obtener resultados según el requisito.
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')