Biopython - Plottaggio

Questo capitolo spiega come tracciare sequenze. Prima di passare a questo argomento, comprendiamo le basi della stampa.

Tracciare

Matplotlib è una libreria di plottaggio Python che produce figure di qualità in una varietà di formati. Possiamo creare diversi tipi di grafici come grafico a linee, istogrammi, grafico a barre, grafico a torta, grafico a dispersione, ecc.

pyLab is a module that belongs to the matplotlib which combines the numerical module numpy with the graphical plotting module pyplot.Biopython utilizza il modulo pylab per tracciare sequenze. Per fare ciò, dobbiamo importare il codice seguente:

import pylab

Prima di importare, dobbiamo installare il pacchetto matplotlib utilizzando il comando pip con il comando indicato di seguito -

pip install matplotlib

File di input di esempio

Crea un file di esempio denominato plot.fasta nella tua directory Biopython e aggiungi le seguenti modifiche:

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

Grafico a linee

Ora, creiamo un semplice grafico a linee per il file fasta sopra.

Step 1 - Importa il modulo SeqIO per leggere il file fasta.

>>> from Bio import SeqIO

Step 2 - Analizza il file di input.

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

Step 3 - Importiamo il modulo pylab.

>>> import pylab

Step 4 - Configurare il grafico a linee assegnando le etichette degli assi x e y.

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

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

Step 5 - Configurare il grafico a linee impostando la visualizzazione della griglia.

>>> pylab.grid()

Step 6 - Disegna un semplice grafico a linee chiamando il metodo di trama e fornendo i record come input.

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

Step 7 - Infine salva il grafico utilizzando il comando seguente.

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

Risultato

Dopo aver eseguito il comando precedente, potresti vedere la seguente immagine salvata nella tua directory Biopython.

Grafico istogramma

Un istogramma viene utilizzato per i dati continui, in cui i contenitori rappresentano intervalli di dati. L'istogramma del disegno è lo stesso del grafico a linee tranne pylab.plot. Invece, chiama il metodo hist del modulo pylab con i record e un po 'di valore custum per bins (5). La codifica completa è la seguente:

Step 1 - Importa il modulo SeqIO per leggere il file fasta.

>>> from Bio import SeqIO

Step 2 - Analizza il file di input.

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

Step 3 - Importiamo il modulo pylab.

>>> import pylab

Step 4 - Configurare il grafico a linee assegnando le etichette degli assi x e y.

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

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

Step 5 - Configurare il grafico a linee impostando la visualizzazione della griglia.

>>> pylab.grid()

Step 6 - Disegna un semplice grafico a linee chiamando il metodo di trama e fornendo i record come input.

>>> 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 - Infine salva il grafico utilizzando il comando seguente.

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

Risultato

Dopo aver eseguito il comando precedente, potresti vedere la seguente immagine salvata nella tua directory Biopython.

Percentuale GC in sequenza

La percentuale GC è uno dei dati analitici comunemente utilizzati per confrontare sequenze diverse. Possiamo fare un semplice grafico a linee usando GC Percentage di un insieme di sequenze e confrontarlo immediatamente. Qui, possiamo semplicemente cambiare i dati dalla lunghezza della sequenza alla percentuale GC. Di seguito viene fornita la codifica completa:

Step 1 - Importa il modulo SeqIO per leggere il file fasta.

>>> from Bio import SeqIO

Step 2 - Analizza il file di input.

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

Step 3 - Importiamo il modulo pylab.

>>> import pylab

Step 4 - Configurare il grafico a linee assegnando le etichette degli assi x e y.

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

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

Step 5 - Configurare il grafico a linee impostando la visualizzazione della griglia.

>>> pylab.grid()

Step 6 - Disegna un semplice grafico a linee chiamando il metodo di trama e fornendo i record come input.

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

Step 7 - Infine salva il grafico utilizzando il comando seguente.

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

Risultato

Dopo aver eseguito il comando precedente, potresti vedere la seguente immagine salvata nella tua directory Biopython.