Biopython - Popülasyon Genetiği
Popülasyon genetiği, evrim teorisinde önemli bir rol oynar. Türler arasındaki genetik farkı ve aynı türdeki iki veya daha fazla bireyi analiz eder.
Biopython, popülasyon genetiği için Bio.PopGen modülü sağlar ve esas olarak Michel Raymond ve Francois Rousset tarafından geliştirilen popüler bir genetik paketi olan GenePop'u destekler.
Basit bir ayrıştırıcı
GenePop formatını ayrıştırmak ve kavramı anlamak için basit bir uygulama yazalım.
Aşağıda verilen bağlantıdan Biopython ekibi tarafından sağlanan genePop dosyasını indirin -https://raw.githubusercontent.com/biopython/biopython/master/Tests/PopGen/c3line.gen
Aşağıdaki kod parçacığını kullanarak GenePop modülünü yükleyin -
from Bio.PopGen import GenePop
Dosyayı GenePop.read yöntemini kullanarak aşağıdaki gibi ayrıştırın -
record = GenePop.read(open("c3line.gen"))
Lokus ve popülasyon bilgilerini aşağıda verildiği gibi gösterin -
>>> record.loci_list
['136255903', '136257048', '136257636']
>>> record.pop_list
['4', 'b3', '5']
>>> record.populations
[[('1', [(3, 3), (4, 4), (2, 2)]), ('2', [(3, 3), (3, 4), (2, 2)]),
('3', [(3, 3), (4, 4), (2, 2)]), ('4', [(3, 3), (4, 3), (None, None)])],
[('b1', [(None, None), (4, 4), (2, 2)]), ('b2', [(None, None), (4, 4), (2, 2)]),
('b3', [(None, None), (4, 4), (2, 2)])],
[('1', [(3, 3), (4, 4), (2, 2)]), ('2', [(3, 3), (1, 4), (2, 2)]),
('3', [(3, 2), (1, 1), (2, 2)]), ('4',
[(None, None), (4, 4), (2, 2)]), ('5', [(3, 3), (4, 4), (2, 2)])]]
>>>
Burada, dosyada mevcut üç lokus ve üç set popülasyon vardır: İlk popülasyonda 4 kayıt, ikinci popülasyonda 3 kayıt ve üçüncü popülasyonda 5 kayıt vardır. kayıt. popülasyonlar, her lokus için alel verileriyle tüm popülasyon kümelerini gösterir.
GenePop dosyasını işleyin
Biopython, lokus ve popülasyon verilerini kaldırmak için seçenekler sunar.
Remove a population set by position,
>>> record.remove_population(0)
>>> record.populations
[[('b1', [(None, None), (4, 4), (2, 2)]),
('b2', [(None, None), (4, 4), (2, 2)]),
('b3', [(None, None), (4, 4), (2, 2)])],
[('1', [(3, 3), (4, 4), (2, 2)]),
('2', [(3, 3), (1, 4), (2, 2)]),
('3', [(3, 2), (1, 1), (2, 2)]),
('4', [(None, None), (4, 4), (2, 2)]),
('5', [(3, 3), (4, 4), (2, 2)])]]
>>>
Remove a locus by position,
>>> record.remove_locus_by_position(0)
>>> record.loci_list
['136257048', '136257636']
>>> record.populations
[[('b1', [(4, 4), (2, 2)]), ('b2', [(4, 4), (2, 2)]), ('b3', [(4, 4), (2, 2)])],
[('1', [(4, 4), (2, 2)]), ('2', [(1, 4), (2, 2)]),
('3', [(1, 1), (2, 2)]), ('4', [(4, 4), (2, 2)]), ('5', [(4, 4), (2, 2)])]]
>>>
Remove a locus by name,
>>> record.remove_locus_by_name('136257636') >>> record.loci_list
['136257048']
>>> record.populations
[[('b1', [(4, 4)]), ('b2', [(4, 4)]), ('b3', [(4, 4)])],
[('1', [(4, 4)]), ('2', [(1, 4)]),
('3', [(1, 1)]), ('4', [(4, 4)]), ('5', [(4, 4)])]]
>>>
GenePop Yazılımı ile Arayüz
Biopython, GenePop yazılımıyla etkileşim için arayüzler sağlar ve böylece ondan çok sayıda işlevselliği ortaya çıkarır. Bio.PopGen.GenePop modülü bu amaçla kullanılmaktadır. Kolay kullanımlı bir arayüz EasyController'dır. GenePop dosyasını nasıl ayrıştıracağımızı kontrol edelim ve EasyController'ı kullanarak bazı analizler yapalım.
İlk olarak, GenePop yazılımını kurun ve kurulum klasörünü sistem yoluna yerleştirin. GenePop dosyası hakkında temel bilgileri almak için, bir EasyController nesnesi oluşturun ve ardından aşağıda belirtildiği gibi get_basic_info yöntemini çağırın -
>>> from Bio.PopGen.GenePop.EasyController import EasyController
>>> ec = EasyController('c3line.gen')
>>> print(ec.get_basic_info())
(['4', 'b3', '5'], ['136255903', '136257048', '136257636'])
>>>
Burada ilk öğe popülasyon listesi ve ikinci öğe lokus listesidir.
Belirli bir lokusun tüm alel listesini almak için lokus adını aşağıda belirtildiği gibi ileterek get_alleles_all_pops yöntemini çağırın -
>>> allele_list = ec.get_alleles_all_pops("136255903")
>>> print(allele_list)
[2, 3]
Alel listesini belirli popülasyon ve lokusa göre almak için, lokus adını ve popülasyon pozisyonunu aşağıda verildiği gibi geçerek get_alleles çağırın -
>>> allele_list = ec.get_alleles(0, "136255903")
>>> print(allele_list)
[]
>>> allele_list = ec.get_alleles(1, "136255903")
>>> print(allele_list)
[]
>>> allele_list = ec.get_alleles(2, "136255903")
>>> print(allele_list)
[2, 3]
>>>
Benzer şekilde, EasyController birçok işlevi ortaya çıkarır: alel frekansı, genotip frekansı, çoklu odak F istatistikleri, Hardy-Weinberg dengesi, Bağlantı Dengesizliği, vb.