Biopython - Fenotipo Microarray
Il fenotipo è definito come un carattere o tratto osservabile esibito da un organismo contro una particolare sostanza chimica o ambiente. Il fenotipo microarray misura simultaneamente la reazione di un organismo contro un numero maggiore di sostanze chimiche e ambiente e analizza i dati per comprendere la mutazione genetica, i caratteri del gene, ecc.
Biopython fornisce un modulo eccellente, Bio.Phenotype per analizzare i dati fenotipici. Impariamo come analizzare, interpolare, estrarre e analizzare i dati di microarray del fenotipo in questo capitolo.
Analisi
I dati del microarray del fenotipo possono essere in due formati: CSV e JSON. Biopython supporta entrambi i formati. Il parser Biopython analizza i dati del microarray del fenotipo e restituisce una raccolta di oggetti PlateRecord. Ogni oggetto PlateRecord contiene una raccolta di oggetti WellRecord. Ogni oggetto WellRecord contiene i dati in formato 8 righe e 12 colonne. Le otto righe sono rappresentate da A ad H e 12 colonne sono rappresentate da 01 a 12. Ad esempio, la quarta riga e la sesta colonna sono rappresentate da D06.
Comprendiamo il formato e il concetto di analisi con il seguente esempio:
Step 1 - Scarica il file Plates.csv fornito dal team di Biopython - https://raw.githubusercontent.com/biopython/biopython/master/Doc/examples/Plates.csv
Step 2 - Carica il modulo fenotipo come sotto -
>>> from Bio import phenotype
Step 3- Richiamare il metodo phenotype.parse passando il file di dati e l'opzione di formato ("pm-csv"). Restituisce il PlateRecord iterabile come di seguito,
>>> 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 - Accedi alla prima targa dalla lista come sotto -
>>> plate = plates[0]
>>> plate
PlateRecord('WellRecord['A01'], WellRecord['A02'], WellRecord['A03'], ...,
WellRecord['H12']')
>>>
Step 5- Come discusso in precedenza, un piatto contiene 8 file ciascuna con 12 elementi. È possibile accedere a WellRecord in due modi, come specificato di seguito:
>>> 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 - Ogni pozzetto avrà serie di misurazioni in diversi momenti ed è possibile accedervi utilizzando il ciclo for come specificato di seguito
>>> 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
>>>
Interpolazione
L'interpolazione offre una visione più approfondita dei dati. Biopython fornisce metodi per interpolare i dati WellRecord per ottenere informazioni per punti temporali intermedi. La sintassi è simile all'indicizzazione delle liste e quindi è facile da imparare.
Per ottenere i dati a 20,1 ore, basta passare come valori di indice come specificato di seguito -
>>> well[20.10]
69.40000000000003
>>>
Possiamo passare l'ora di inizio e l'ora di fine così come specificato di seguito -
>>> well[20:30]
[67.0, 84.0, 102.0, 119.0, 135.0, 147.0, 158.0, 168.0, 179.0, 186.0]
>>>
Il comando precedente interpola i dati da 20 ore a 30 ore con intervallo di 1 ora. Per impostazione predefinita, l'intervallo è di 1 ora e possiamo modificarlo con qualsiasi valore. Ad esempio, forniamo un intervallo di 15 minuti (0,25 ore) come specificato di seguito:
>>> well[20:21:0.25]
[67.0, 73.0, 75.0, 81.0]
>>>
Analizza ed estrai
Biopython fornisce un metodo adatto per analizzare i dati WellRecord utilizzando le funzioni Gompertz, Logistic e Richards sigmoid. Per impostazione predefinita, il metodo di adattamento utilizza la funzione Gompertz. Dobbiamo chiamare il metodo fit dell'oggetto WellRecord per portare a termine l'attività. La codifica è la seguente:
>>> 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 dipende dal modulo scipy per eseguire analisi avanzate. Calcolerà i dettagli min, max e average_height senza utilizzare il modulo scipy.