Biopython - Çizim

Bu bölüm sekansların nasıl çizileceğini açıklar. Bu konuya geçmeden önce, çizim yapmanın temellerini anlayalım.

Çizim

Matplotlib, çeşitli formatlarda kaliteli rakamlar üreten bir Python çizim kitaplığıdır. Çizgi grafik, histogramlar, çubuk grafik, pasta grafik, dağılım grafiği vb. Gibi farklı grafik türleri oluşturabiliriz.

pyLab is a module that belongs to the matplotlib which combines the numerical module numpy with the graphical plotting module pyplot.Biopython, dizileri çizmek için pylab modülünü kullanır. Bunu yapmak için aşağıdaki kodu içe aktarmamız gerekiyor -

import pylab

İçe aktarmadan önce, matplotlib paketini aşağıdaki komutla pip komutunu kullanarak kurmamız gerekir -

pip install matplotlib

Örnek Giriş Dosyası

Adlı bir örnek dosya oluşturun plot.fasta Biopython dizininizde ve aşağıdaki değişiklikleri ekleyin -

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

Çizgi Grafiği

Şimdi, yukarıdaki fasta dosyası için basit bir çizgi grafiği oluşturalım.

Step 1 - fasta dosyasını okumak için SeqIO modülünü içe aktarın.

>>> from Bio import SeqIO

Step 2 - Girdi dosyasını ayrıştırın.

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

Step 3 - Pilab modülünü ithal edelim.

>>> import pylab

Step 4 - x ve y ekseni etiketleri atayarak çizgi grafiğini yapılandırın.

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

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

Step 5 - Izgara görünümünü ayarlayarak çizgi grafiğini yapılandırın.

>>> pylab.grid()

Step 6 - Plot yöntemini çağırarak ve kayıtları girdi olarak sağlayarak basit çizgi grafiği çizin.

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

Step 7 - Son olarak aşağıdaki komutu kullanarak grafiği kaydedin.

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

Sonuç

Yukarıdaki komutu uyguladıktan sonra, aşağıdaki görüntünün Biopython dizininize kaydedildiğini görebilirsiniz.

Histogram Grafiği

Bölmelerin veri aralıklarını temsil ettiği sürekli veriler için bir histogram kullanılır. Çizim histogramı, pylab.plot dışında çizgi grafikle aynıdır. Bunun yerine, kayıtlarla pilab modülünün hist yöntemini ve kutular için bazı custum değerini çağırın (5). Tam kodlama aşağıdaki gibidir -

Step 1 - fasta dosyasını okumak için SeqIO modülünü içe aktarın.

>>> from Bio import SeqIO

Step 2 - Girdi dosyasını ayrıştırın.

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

Step 3 - Pilab modülünü ithal edelim.

>>> import pylab

Step 4 - x ve y ekseni etiketleri atayarak çizgi grafiğini yapılandırın.

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

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

Step 5 - Izgara görünümünü ayarlayarak çizgi grafiğini yapılandırın.

>>> pylab.grid()

Step 6 - Plot yöntemini çağırarak ve kayıtları girdi olarak sağlayarak basit çizgi grafiği çizin.

>>> 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 - Son olarak aşağıdaki komutu kullanarak grafiği kaydedin.

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

Sonuç

Yukarıdaki komutu uyguladıktan sonra, aşağıdaki görüntünün Biopython dizininize kaydedildiğini görebilirsiniz.

Sıradaki GC Yüzdesi

GC yüzdesi, farklı dizileri karşılaştırmak için yaygın olarak kullanılan analitik verilerden biridir. Bir dizi dizinin GC Yüzdesini kullanarak basit bir çizgi grafik oluşturabilir ve hemen karşılaştırabiliriz. Burada, verileri sıra uzunluğundan GC yüzdesine değiştirebiliriz. Kodlamanın tamamı aşağıda verilmiştir -

Step 1 - fasta dosyasını okumak için SeqIO modülünü içe aktarın.

>>> from Bio import SeqIO

Step 2 - Girdi dosyasını ayrıştırın.

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

Step 3 - Pilab modülünü ithal edelim.

>>> import pylab

Step 4 - x ve y ekseni etiketleri atayarak çizgi grafiğini yapılandırın.

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

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

Step 5 - Izgara görünümünü ayarlayarak çizgi grafiğini yapılandırın.

>>> pylab.grid()

Step 6 - Plot yöntemini çağırarak ve kayıtları girdi olarak sağlayarak basit çizgi grafiği çizin.

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

Step 7 - Son olarak aşağıdaki komutu kullanarak grafiği kaydedin.

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

Sonuç

Yukarıdaki komutu uyguladıktan sonra, aşağıdaki görüntünün Biopython dizininize kaydedildiğini görebilirsiniz.