Bio.phenotype 包
子模块
- Bio.phenotype.phen_micro 模块
PlateRecord
PlateRecord.__init__()
PlateRecord.__getitem__()
PlateRecord.__setitem__()
PlateRecord.__delitem__()
PlateRecord.__iter__()
PlateRecord.__contains__()
PlateRecord.__len__()
PlateRecord.__eq__()
PlateRecord.__add__()
PlateRecord.__sub__()
PlateRecord.get_row()
PlateRecord.get_column()
PlateRecord.subtract_control()
PlateRecord.__repr__()
PlateRecord.__str__()
PlateRecord.__hash__
WellRecord
WellRecord.__init__()
WellRecord.__setitem__()
WellRecord.__getitem__()
WellRecord.__iter__()
WellRecord.__eq__()
WellRecord.__add__()
WellRecord.__sub__()
WellRecord.__len__()
WellRecord.__repr__()
WellRecord.__str__()
WellRecord.get_raw()
WellRecord.get_times()
WellRecord.get_signals()
WellRecord.fit()
WellRecord.__hash__
JsonIterator()
CsvIterator()
JsonWriter
- Bio.phenotype.pm_fitting 模块
模块内容
表型数据输入/输出。
输入
主要函数是 Bio.phenotype.parse(…),它接收一个输入文件和一个格式字符串。它返回一个迭代器,生成 PlateRecord 对象。
>>> from Bio import phenotype
>>> for record in phenotype.parse("phenotype/Plates.csv", "pm-csv"):
... print("%s %i" % (record.id, len(record)))
...
PM01 96
PM09 96
请注意,parse() 函数将调用与格式相关的解析器,并使用其默认设置。你可能需要更多控制,在这种情况下,你需要直接创建特定格式的序列迭代器。
输入 - 单个记录
如果你期望你的文件只包含一个记录,那么我们提供以下“辅助”函数,它将返回一个 PlateRecord 对象,或者如果没有任何记录或有多个记录,则引发异常。
>>> from Bio import phenotype
>>> record = phenotype.read("phenotype/Plate.json", "pm-json")
>>> print("%s %i" % (record.id, len(record)))
PM01 96
这种风格在你只期望一个记录(并且认为多个记录是错误)时非常有用。例如,在处理由 opm 库保存的 PM JSON 文件时。
但是,如果你只想从包含多个记录的文件中获取第一个记录,请对迭代器使用 next() 函数。
>>> from Bio import phenotype
>>> record = next(phenotype.parse("phenotype/Plates.csv", "pm-csv"))
>>> print("%s %i" % (record.id, len(record)))
PM01 96
上面的代码将在文件至少包含一个记录的情况下正常工作。请注意,如果有多个记录,剩余的记录将被静默忽略。
输出
使用函数 Bio.phenotype.write(…),它接收一组完整的 PlateRecord 对象(作为列表或迭代器),一个输出文件句柄(或者在最近版本的 Biopython 中,作为字符串的输出文件名)以及文件格式。
from Bio import phenotype
records = ...
phenotype.write(records, "example.json", "pm-json")
或者,使用句柄
from Bio import phenotype
records = ...
with open("example.json", "w") as handle:
phenotype.write(records, handle, "pm-json")
你应该调用这个函数一次(使用所有记录),并且如果使用句柄,请确保关闭它以将数据刷新到硬盘。
文件格式
在指定文件格式时,请使用小写字符串。
pm-json - JSON 格式的表型微阵列板。
- pm-csv - CSV 格式的表型微阵列板,这是
机器厂商格式
请注意,虽然 Bio.phenotype 可以读取上述文件格式,但它只能以 JSON 格式写入。
- Bio.phenotype.write(plates, handle, format)
将一组完整的 PlateRecords 写入文件。
plates - PlateRecord 对象的列表(或迭代器)。
- handle - 要写入的文件句柄对象,或作为字符串的文件名
(注意,旧版本的 Biopython 只接受句柄)。
format - 描述要写入的文件格式的小写字符串。
你应该在调用这个函数后关闭句柄。
返回写入的记录数(作为整数)。
- Bio.phenotype.parse(handle, format)
将一个表型文件转换为返回 PlateRecords 的迭代器。
- handle - 文件句柄,或作为字符串的文件名
(注意,旧版本的 Biopython 只接受句柄)。
format - 描述文件格式的小写字符串。
典型用法,打开一个文件以读取,并遍历记录(s)
>>> from Bio import phenotype >>> filename = "phenotype/Plates.csv" >>> for record in phenotype.parse(filename, "pm-csv"): ... print("ID %s" % record.id) ... print("Number of wells %i" % len(record)) ... ID PM01 Number of wells 96 ID PM09 Number of wells 96
当你只期望一个记录时,请使用 Bio.phenotype.read(…) 函数。
- Bio.phenotype.read(handle, format)
将一个表型文件转换为一个 PlateRecord。
- handle - 文件句柄,或作为字符串的文件名
(注意,旧版本的 Biopython 只接受句柄)。
format - 描述文件格式的字符串。
此函数用于解析恰好包含一个记录的表型文件。例如,读取 PM JSON 文件
>>> from Bio import phenotype >>> record = phenotype.read("phenotype/Plate.json", "pm-json") >>> print("ID %s" % record.id) ID PM01 >>> print("Number of wells %i" % len(record)) Number of wells 96
如果句柄不包含任何记录,或者包含多个记录,则会引发异常。例如
from Bio import phenotype record = phenotype.read("plates.csv", "pm-csv") Traceback (most recent call last): ... ValueError: More than one record found in handle
但是,如果你想要从包含多个记录的文件中获取第一个记录,则此函数会引发异常(如上面的示例所示)。相反,请使用
>>> from Bio import phenotype >>> record = next(phenotype.parse("phenotype/Plates.csv", "pm-csv")) >>> print("First record's ID %s" % record.id) First record's ID PM01
如果你想要从句柄中读取多个记录,请使用 Bio.phenotype.parse(handle, format) 函数。