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