Biopython - Plotagem
Este capítulo explica como plotar sequências. Antes de passar para este tópico, vamos entender os fundamentos da plotagem.
Plotagem
Matplotlib é uma biblioteca de plotagem Python que produz figuras de qualidade em uma variedade de formatos. Podemos criar diferentes tipos de gráficos, como gráfico de linhas, histogramas, gráfico de barras, gráfico de pizza, gráfico de dispersão, etc.
pyLab is a module that belongs to the matplotlib which combines the numerical module numpy with the graphical plotting module pyplot.Biopython usa módulo pylab para plotar sequências. Para fazer isso, precisamos importar o código abaixo -
import pylab
Antes de importar, precisamos instalar o pacote matplotlib usando o comando pip com o comando fornecido abaixo -
pip install matplotlib
Arquivo de entrada de amostra
Crie um arquivo de amostra chamado plot.fasta em seu diretório Biopython e adicione as seguintes alterações -
>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 linha
Agora, vamos criar um gráfico de linha simples para o arquivo fasta acima.
Step 1 - Importe o módulo SeqIO para ler o arquivo fasta.
>>> from Bio import SeqIO
Step 2 - Analise o arquivo 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 importar o módulo pylab.
>>> import pylab
Step 4 - Configure o gráfico de linha atribuindo rótulos dos eixos xey.
>>> pylab.xlabel("sequence length")
Text(0.5, 0, 'sequence length')
>>> pylab.ylabel("count")
Text(0, 0.5, 'count')
>>>
Step 5 - Configure o gráfico de linha definindo a exibição da grade.
>>> pylab.grid()
Step 6 - Desenhe um gráfico de linha simples chamando o método de plotagem e fornecendo registros como entrada.
>>> pylab.plot(records)
[<matplotlib.lines.Line2D object at 0x10b6869d 0>]
Step 7 - Finalmente salve o gráfico usando o comando abaixo.
>>> pylab.savefig("lines.png")
Resultado
Após executar o comando acima, você poderá ver a seguinte imagem salva em seu diretório Biopython.
Gráfico de Histograma
Um histograma é usado para dados contínuos, onde as caixas representam intervalos de dados. O desenho do histograma é igual ao gráfico de linhas, exceto pylab.plot. Em vez disso, chame o método hist do módulo pylab com registros e algum valor de custum para as caixas (5). A codificação completa é a seguinte -
Step 1 - Importe o módulo SeqIO para ler o arquivo fasta.
>>> from Bio import SeqIO
Step 2 - Analise o arquivo 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 importar o módulo pylab.
>>> import pylab
Step 4 - Configure o gráfico de linha atribuindo rótulos dos eixos xey.
>>> pylab.xlabel("sequence length")
Text(0.5, 0, 'sequence length')
>>> pylab.ylabel("count")
Text(0, 0.5, 'count')
>>>
Step 5 - Configure o gráfico de linha definindo a exibição da grade.
>>> pylab.grid()
Step 6 - Desenhe um gráfico de linha simples chamando o método de plotagem e fornecendo 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 salve o gráfico usando o comando abaixo.
>>> pylab.savefig("hist.png")
Resultado
Após executar o comando acima, você poderá ver a seguinte imagem salva em seu diretório Biopython.
Porcentagem GC na sequência
A porcentagem de GC é um dos dados analíticos comumente usados para comparar diferentes sequências. Podemos fazer um gráfico de linhas simples usando a porcentagem GC de um conjunto de sequências e compará-lo imediatamente. Aqui, podemos apenas alterar os dados do comprimento da sequência para a porcentagem de GC. A codificação completa é fornecida abaixo -
Step 1 - Importe o módulo SeqIO para ler o arquivo fasta.
>>> from Bio import SeqIO
Step 2 - Analise o arquivo de entrada.
>>> from Bio.SeqUtils import GC
>>> gc = sorted(GC(rec.seq) for rec in SeqIO.parse("plot.fasta", "fasta"))
Step 3 - Vamos importar o módulo pylab.
>>> import pylab
Step 4 - Configure o gráfico de linha atribuindo rótulos dos eixos xey.
>>> pylab.xlabel("Genes")
Text(0.5, 0, 'Genes')
>>> pylab.ylabel("GC Percentage")
Text(0, 0.5, 'GC Percentage')
>>>
Step 5 - Configure o gráfico de linha definindo a exibição da grade.
>>> pylab.grid()
Step 6 - Desenhe um gráfico de linha simples chamando o método de plotagem e fornecendo registros como entrada.
>>> pylab.plot(gc)
[<matplotlib.lines.Line2D object at 0x10b6869d 0>]
Step 7 - Finalmente salve o gráfico usando o comando abaixo.
>>> pylab.savefig("gc.png")
Resultado
Após executar o comando acima, você poderá ver a seguinte imagem salva em seu diretório Biopython.