Biopython - Trazado

Este capítulo explica cómo trazar secuencias. Antes de pasar a este tema, comprendamos los conceptos básicos del trazado.

Graficado

Matplotlib es una biblioteca de trazado de Python que produce figuras de calidad en una variedad de formatos. Podemos crear diferentes tipos de gráficos como gráfico de líneas, histogramas, gráfico de barras, gráfico circular, gráfico de dispersión, etc.

pyLab is a module that belongs to the matplotlib which combines the numerical module numpy with the graphical plotting module pyplot.Biopython usa el módulo pylab para trazar secuencias. Para hacer esto, necesitamos importar el siguiente código:

import pylab

Antes de importar, necesitamos instalar el paquete matplotlib usando el comando pip con el comando que se proporciona a continuación:

pip install matplotlib

Archivo de entrada de muestra

Crea un archivo de muestra llamado plot.fasta en su directorio Biopython y agregue los siguientes cambios:

>seq0 FQTWEEFSRAAEKLYLADPMKVRVVLKYRHVDGNLCIKVTDDLVCLVYRTDQAQDVKKIEKF 
>seq1 KYRTWEEFTRAAEKLYQADPMKVRVVLKYRHCDGNLCIKVTDDVVCLLYRTDQAQDVKKIEKFHSQLMRLME 
>seq2 EEYQTWEEFARAAEKLYLTDPMKVRVVLKYRHCDGNLCMKVTDDAVCLQYKTDQAQDVKKVEKLHGK 
>seq3 MYQVWEEFSRAVEKLYLTDPMKVRVVLKYRHCDGNLCIKVTDNSVCLQYKTDQAQDV
>seq4 EEFSRAVEKLYLTDPMKVRVVLKYRHCDGNLCIKVTDNSVVSYEMRLFGVQKDNFALEHSLL 
>seq5 SWEEFAKAAEVLYLEDPMKCRMCTKYRHVDHKLVVKLTDNHTVLKYVTDMAQDVKKIEKLTTLLMR 
>seq6 FTNWEEFAKAAERLHSANPEKCRFVTKYNHTKGELVLKLTDDVVCLQYSTNQLQDVKKLEKLSSTLLRSI 
>seq7 SWEEFVERSVQLFRGDPNATRYVMKYRHCEGKLVLKVTDDRECLKFKTDQAQDAKKMEKLNNIFF 
>seq8 SWDEFVDRSVQLFRADPESTRYVMKYRHCDGKLVLKVTDNKECLKFKTDQAQEAKKMEKLNNIFFTLM 
>seq9 KNWEDFEIAAENMYMANPQNCRYTMKYVHSKGHILLKMSDNVKCVQYRAENMPDLKK
>seq10 FDSWDEFVSKSVELFRNHPDTTRYVVKYRHCEGKLVLKVTDNHECLKFKTDQAQDAKKMEK

Gráfico de línea

Ahora, creemos un diagrama de línea simple para el archivo fasta anterior.

Step 1 - Importar módulo SeqIO para leer el archivo fasta.

>>> from Bio import SeqIO

Step 2 - Analizar el archivo de entrada.

>>> records = [len(rec) for rec in SeqIO.parse("plot.fasta", "fasta")] 
>>> len(records) 
11 
>>> max(records) 
72 
>>> min(records) 
57

Step 3 - Vamos a importar el módulo de pylab.

>>> import pylab

Step 4 - Configure el gráfico de líneas asignando etiquetas a los ejes xey.

>>> pylab.xlabel("sequence length") 
Text(0.5, 0, 'sequence length') 

>>> pylab.ylabel("count") 
Text(0, 0.5, 'count') 
>>>

Step 5 - Configure el gráfico de líneas configurando la visualización de la cuadrícula.

>>> pylab.grid()

Step 6 - Dibujar un gráfico de líneas simple llamando al método de trazado y proporcionando registros como entrada.

>>> pylab.plot(records) 
[<matplotlib.lines.Line2D object at 0x10b6869d 0>]

Step 7 - Finalmente guarde el gráfico usando el siguiente comando.

>>> pylab.savefig("lines.png")

Resultado

Después de ejecutar el comando anterior, podría ver la siguiente imagen guardada en su directorio Biopython.

Gráfico de histograma

Se utiliza un histograma para datos continuos, donde los contenedores representan rangos de datos. El histograma de dibujo es el mismo que el gráfico de líneas, excepto pylab.plot. En su lugar, llame al método hist del módulo pylab con registros y algún valor personalizado para bins (5). La codificación completa es la siguiente:

Step 1 - Importar módulo SeqIO para leer el archivo fasta.

>>> from Bio import SeqIO

Step 2 - Analizar el archivo de entrada.

>>> records = [len(rec) for rec in SeqIO.parse("plot.fasta", "fasta")] 
>>> len(records) 
11 
>>> max(records) 
72 
>>> min(records) 
57

Step 3 - Vamos a importar el módulo de pylab.

>>> import pylab

Step 4 - Configure el gráfico de líneas asignando etiquetas a los ejes xey.

>>> pylab.xlabel("sequence length") 
Text(0.5, 0, 'sequence length') 

>>> pylab.ylabel("count") 
Text(0, 0.5, 'count') 
>>>

Step 5 - Configure el gráfico de líneas configurando la visualización de la cuadrícula.

>>> pylab.grid()

Step 6 - Dibujar un gráfico de líneas simple llamando al método de trazado y proporcionando registros como entrada.

>>> pylab.hist(records,bins=5) 
(array([2., 3., 1., 3., 2.]), array([57., 60., 63., 66., 69., 72.]), <a list 
of 5 Patch objects>) 
>>>

Step 7 - Finalmente guarde el gráfico usando el siguiente comando.

>>> pylab.savefig("hist.png")

Resultado

Después de ejecutar el comando anterior, podría ver la siguiente imagen guardada en su directorio Biopython.

Porcentaje de GC en secuencia

El porcentaje de GC es uno de los datos analíticos más utilizados para comparar diferentes secuencias. Podemos hacer un gráfico de líneas simple usando el porcentaje GC de un conjunto de secuencias y compararlo inmediatamente. Aquí, podemos simplemente cambiar los datos de la longitud de la secuencia al porcentaje de GC. La codificación completa se da a continuación:

Step 1 - Importar módulo SeqIO para leer el archivo fasta.

>>> from Bio import SeqIO

Step 2 - Analizar el archivo de entrada.

>>> from Bio.SeqUtils import GC 
>>> gc = sorted(GC(rec.seq) for rec in SeqIO.parse("plot.fasta", "fasta"))

Step 3 - Vamos a importar el módulo de pylab.

>>> import pylab

Step 4 - Configure el gráfico de líneas asignando etiquetas a los ejes xey.

>>> pylab.xlabel("Genes") 
Text(0.5, 0, 'Genes') 

>>> pylab.ylabel("GC Percentage") 
Text(0, 0.5, 'GC Percentage') 
>>>

Step 5 - Configure el gráfico de líneas configurando la visualización de la cuadrícula.

>>> pylab.grid()

Step 6 - Dibujar un gráfico de líneas simple llamando al método de trazado y proporcionando registros como entrada.

>>> pylab.plot(gc) 
[<matplotlib.lines.Line2D object at 0x10b6869d 0>]

Step 7 - Finalmente guarde el gráfico usando el siguiente comando.

>>> pylab.savefig("gc.png")

Resultado

Después de ejecutar el comando anterior, podría ver la siguiente imagen guardada en su directorio Biopython.