Las secuencias son simplemente cadenas de texto como por ejemplo “GGTCGGTGGTCG”, que representan algún tipo de información de índole biológico. Se debe distinguir algunas características de las cadenas y las secuencias en Biopython, tienen diferentes métodos. Aun que el objeto Seq admite algunos de los métodos de una cadena simple.
Una diferencia sumamente importante es que un objeto Seq tiene, es que depende de un alfabeto (Alphabet), el cual describe exactamente muchas de las características que posee la secuencia en estudio, esta es su gran ventaja de uso ya que así nos permite limitar la información que contiene el objeto Seq. En esta introducción notaremos algunas similitudes de una secuencia y una cadena simple en python.
>>> cadena = "AGAGAGACTGCTCG" >>> from Bio.Seq import Seq >>> secuencia = Seq ("AGAGAGACTGCTCG") >>> ### al aplicar el comando type notamos la diferencia >>> print(type(cadena)) <class 'str'> >>> print(type(secuencia)) <class 'Bio.Seq.Seq'> >>> ### podemos conocer la magnitud de cada una >>> print(len(secuencia)) 14 >>> print(len(cadena)) 14 >>> ### tambien los elementos q la componen >>> secuencia[6] 'A' >>> cadena[6] 'A' >>> ### se puede extrer un segmento de cada una como si fuera una cadena normal >>> cadena2 = cadena[1:3] >>> secuencia2 = secuencia[1:3] >>> #### hacer operaciones basicas como un string >>> total = secuencia + secuencia2 >>> print (total) AGAGAGACTGCTCGGA >>> TOTAL = cadena + cadena2 >>> print(TOTAL) AGAGAGACTGCTCGGA >>> ### podemos invertir una cadena >>> cadena_invertidad = cadena[::-1] >>> cadena_invertidad 'GCTCGTCAGAGAGA' >>> #### de la misma forma se puede invertir una secuencia >>> secuencia_invertida = secuencia[::-1] >>> secuencia_invertida Seq('GCTCGTCAGAGAGA', Alphabet()) >>> #### empleando count >>> ######### aplicado a una cadena >>> cadena 'AGAGAGACTGCTCG' >>> cadena.count("A") 4 >>> #### esto qiere decir que en nuestra cadena aparece 4 veces A >>> ######### lo mismo se puede hacer auna secuencia >>> secuencia.count("A") 4
Este sencillo ejemplo nos hace ver que muchos de nuestros comandos usados a diario cuando programamos en python son aplicados en una secuencia. Para demostrarlo crearemos un pequeño programa donde trataremos con el objeto secuencia y como una cadena normal y notaremos que el resultado es el mismo.
La gráfica generada es:from Bio.Seq import Seq import matplotlib.pyplot as plt from matplotlib import font_manager as fm secuencia = Seq ("ACGCTGCTCGATCGCTGATGCTCGCCGATCGCTCGATGCTGCTGCTGCTAGA") a = secuencia.count("A") g = secuencia.count("G") c = secuencia.count("C") t = secuencia.count("T") D = len(secuencia) dato = [a,g,c,t] pa = a/D *100 pg = g/D *100 pc = c/D * 100 pt = t/D * 100 fraccion = [pa, pg, pc, pt] nombres = 'A', 'G', 'C', 'T' fig = plt.figure(1,figsize= (5,5)) ax = fig.add_axes([0.1,0.1,0.8,0.8]) plt.title('Composicion de la Secuencia') p, texto, dtexto = ax.pie(fraccion, labels = nombres, autopct = '%1.1f%%') propiedades = fm.FontProperties() propiedades.set_size('x-large') plt.setp(dtexto, fontproperties= propiedades) plt.setp (texto, fontproperties = propiedades) plt.show()
Ahora trataremos nuestra secuencia como si fuera una cadena simple en python
la gráfica como cadena es:from Bio.Seq import Seq import matplotlib.pyplot as plt from matplotlib import font_manager as fm cadena = "ACGCTGCTCGATCGCTGATGCTCGCCGATCGCTCGATGCTGCTGCTGCTAGA" a = cadena.count("A") g = cadena.count("G") c = cadena.count("C") t = cadena.count("T") D = len(cadena) dato = [a,g,c,t] pa = a/D *100 pg = g/D *100 pc = c/D * 100 pt = t/D * 100 fraccion = [pa, pg, pc, pt] nombres = 'A', 'G', 'C', 'T' fig = plt.figure(1,figsize= (5,5)) ax = fig.add_axes([0.1,0.1,0.8,0.8]) plt.title('Composicion de la Secuencia como cadena') p, texto, dtexto = ax.pie(fraccion, labels = nombres, autopct = '%1.1f%%') propiedades = fm.FontProperties() propiedades.set_size('x-large') plt.setp(dtexto, fontproperties= propiedades) plt.setp (texto, fontproperties = propiedades) plt.show()
No hay comentarios:
Publicar un comentario