Biopython - Mikromacierz fenotypowa

Fenotyp jest definiowany jako obserwowalny charakter lub cecha wykazywana przez organizm w stosunku do określonej substancji chemicznej lub środowiska. Mikromacierz fenotypowa jednocześnie mierzy reakcję organizmu na większą liczbę chemikaliów i środowiska oraz analizuje dane w celu zrozumienia mutacji genów, cech genów itp.

Biopython zapewnia doskonały moduł Bio.Phenotype do analizy danych fenotypowych. W tym rozdziale nauczmy się analizować, interpolować, wyodrębniać i analizować dane z mikromacierzy fenotypowej.

Rozbiór gramatyczny zdania

Dane z mikromacierzy fenotypowej mogą mieć dwa formaty: CSV i JSON. Biopython obsługuje oba formaty. Parser Biopython analizuje dane z mikromacierzy fenotypu i zwraca je jako zbiór obiektów PlateRecord. Każdy obiekt PlateRecord zawiera kolekcję obiektów WellRecord. Każdy obiekt WellRecord przechowuje dane w 8 wierszach i 12 kolumnach. Osiem rzędów są reprezentowane przez A do H i 12 kolumny są reprezentowane przez 01 do 12. Na przykład, 4 p rzędów i 6 p kolumny są reprezentowane przez D06.

Rozumiemy format i koncepcję analizowania na następującym przykładzie -

Step 1 - Pobierz plik Plates.csv dostarczony przez zespół Biopython - https://raw.githubusercontent.com/biopython/biopython/master/Doc/examples/Plates.csv

Step 2 - Załaduj moduł Phenotpe jak poniżej -

>>> from Bio import phenotype

Step 3- Wywołaj metodę phenotype.parse przekazując plik danych i opcję formatu („pm-csv”). Zwraca iterowalny PlateRecord, jak poniżej,

>>> plates = list(phenotype.parse('Plates.csv', "pm-csv")) 
>>> plates 
[PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ..., WellRecord['H12']'), 
PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ..., WellRecord['H12']'), 
PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ..., WellRecord['H12']'), 
PlateRecord('WellRecord['A01'], WellRecord['A02'],WellRecord['A03'], ..., WellRecord['H12']')] 
>>>

Step 4 - Uzyskaj dostęp do pierwszej płyty z listy, jak poniżej -

>>> plate = plates[0] 
>>> plate 
PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ...,
WellRecord['H12']')
>>>

Step 5- Jak wspomniano wcześniej, płyta zawiera 8 rzędów, z których każdy ma 12 elementów. Dostęp do WellRecord można uzyskać na dwa sposoby, jak określono poniżej -

>>> well = plate["A04"] 
>>> well = plate[0, 4] 
>>> well WellRecord('(0.0, 0.0), (0.25, 0.0), (0.5, 0.0), (0.75, 0.0), 
   (1.0, 0.0), ..., (71.75, 388.0)')
>>>

Step 6 - Każdy dołek będzie miał serię pomiarów w różnych punktach czasowych i można uzyskać do niego dostęp za pomocą pętli for, jak określono poniżej -

>>> for v1, v2 in well: 
... print(v1, v2) 
... 
0.0 0.0 
0.25 0.0 
0.5 0.0 
0.75 0.0 
1.0 0.0 
... 
71.25 388.0 
71.5 388.0 
71.75 388.0
>>>

Interpolacja

Interpolacja zapewnia lepszy wgląd w dane. Biopython zapewnia metody interpolacji danych WellRecord w celu uzyskania informacji o pośrednich punktach czasowych. Składnia jest podobna do indeksowania list i dlatego jest łatwa do nauczenia.

Aby uzyskać dane po 20,1 godzinie, po prostu przekaż jako wartości indeksu, jak określono poniżej -

>>> well[20.10] 
69.40000000000003
>>>

Możemy przekroczyć punkt początkowy i końcowy, jak również określono poniżej -

>>> well[20:30] 
[67.0, 84.0, 102.0, 119.0, 135.0, 147.0, 158.0, 168.0, 179.0, 186.0]
>>>

Powyższe polecenie interpoluje dane od 20 do 30 godzin z 1-godzinnym odstępem. Domyślnie interwał to 1 godzina i możemy go zmienić na dowolną wartość. Na przykład dajmy 15 minut (0,25 godziny) interwał, jak określono poniżej -

>>> well[20:21:0.25] 
[67.0, 73.0, 75.0, 81.0]
>>>

Analizuj i wyodrębnij

Biopython zapewnia metodę odpowiednią do analizy danych WellRecord przy użyciu funkcji sigmoidalnych Gompertza, Logistic i Richardsa. Domyślnie metoda fit wykorzystuje funkcję Gompertz. Aby wykonać zadanie, musimy wywołać metodę dopasowania obiektu WellRecord. Kodowanie jest następujące -

>>> well.fit() 
Traceback (most recent call last): 
... 
Bio.MissingPythonDependencyError: Install scipy to extract curve parameters. 
>>> well.model 
>>> getattr(well, 'min') 0.0 
>>> getattr(well, 'max') 388.0 
>>> getattr(well, 'average_height') 
205.42708333333334
>>>

Biopython korzysta z modułu Scipy, aby przeprowadzić zaawansowaną analizę. Oblicza szczegóły min, max i Average_height bez użycia modułu scipy.