表型定义为生物体针对特定化学物质或环境表现出的可观察的特征或性状。表型微阵列可同时测量生物体对大量化学物质和环境的反应,并分析数据以了解基因突变,基因特性等。
Biopython提供了一个出色的模块Bio.Phenotype
来分析表型数据。本小节中我们将学习如何在本章中解析,内插,提取和分析表型微阵列数据。
表型微阵列数据可以采用两种格式:CSV和JSON。Biopython支持两种格式。Biopython解析器解析表型微阵列数据并作为PlateRecord
对象的集合返回。每个PlateRecord
对象都包含WellRecord
对象的集合。每个WellRecord
对象均以8行12列的格式保存数据。八行由A到H表示,而12列由01到12表示。例如,第四行和第六列由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步 - 每个well
在不同时间点都会进行一系列测量,可以使用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
详细信息。