📜  Biopython-表型微阵列

📅  最后修改于: 2020-11-09 05:06:11             🧑  作者: Mango


表型被定义为生物体针对特定化学物质或环境表现出的可观察字符。表型微阵列可同时测量生物体对大量化学物质和环境的反应,并分析数据以了解基因突变,基因字符等。

Biopython提供了一个出色的模块Bio.Phenotype来分析表型数据。让我们学习本章中如何解析,内插,提取和分析表型微阵列数据。

解析中

表型微阵列数据可以采用两种格式:CSV和JSON。 Biopython支持两种格式。 Biopython解析器解析表型微阵列数据并作为PlateRecord对象的集合返回。每个PlateRecord对象都包含WellRecord对象的集合。每个WellRecord对象均以8行12列的格式保存数据。八行由A到H表示,12列由01到12表示。例如,4行和6列由D06表示。

让我们通过以下示例了解解析的格式和概念:

第1步-下载由Biopython团队提供的Plates.csv文件- https://raw.githubusercontent.com/biopython/biopython/master/Doc/examples/Plates.csv

步骤2-如下所示加载表型模块-

>>> from Bio import phenotype

步骤3-调用phenotype.parse方法,并传递数据文件和格式选项(“ pm-csv”)。它返回如下可迭代的PlateRecord,

>>> 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']')] 
>>>

步骤4-从列表中访问第一板,如下所示-

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

步骤5-如前所述,一个板包含8行,每行包含12个项目。可以通过以下两种方式访问WellRecord-

>>> 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)')
>>>

步骤6-每个井在不同时间点将进行一系列测量,可以使用如下指定的for循环进行访问-

>>> 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
>>>

插补

插值可让您更深入地了解数据。 Biopython提供了插值WellRecord数据以获取中间时间点信息的方法。语法类似于列表索引,因此易于学习。

要在20.1小时获取数据,只需将其作为索引值传递即可,如下所示:

>>> well[20.10] 
69.40000000000003
>>>

我们可以传递开始时间点和结束时间点以及下面指定的内容-

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

上面的命令以1小时为间隔从20小时到30小时内插值数据。默认情况下,间隔为1小时,我们可以将其更改为任何值。例如,让我们给15分钟(0.25小时)的间隔,如下所示-

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

分析和提取

Biopython提供了一种适合使用Gompertz,Logistic和Richards Sigmoid函数分析WellRecord数据的方法。默认情况下,fit方法使用Gompertz函数。我们需要调用WellRecord对象的fit方法来完成任务。编码如下-

>>> 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依靠scipy模块进行高级分析。它将不使用scipy模块来计算min,max和average_height详细信息。