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.