Bio.PopGen.GenePop.FileParser 模块

解析 BIG GenePop 文件的代码。

此类与标准 Bio.PopGen.GenePop.Record 类之间的区别在于,此类不会将整个文件读入内存。它提供了一个迭代器接口,速度较慢,但占用内存更少。应该与大型文件(数千个标记和个体)一起使用。

参见 http://wbiomed.curtin.edu.au/genepop/,该格式在以下位置有说明: http://wbiomed.curtin.edu.au/genepop/help_input.html

  • FileRecord 持有 GenePop 数据。

函数

Bio.PopGen.GenePop.FileParser.read(fname)

解析包含 GenePop 文件的文件。

fname 是包含 GenePop 记录的文件名。

class Bio.PopGen.GenePop.FileParser.FileRecord(fname)

基类:object

持有来自 GenePop 记录的信息。

属性: - marker_len 标记长度(每个等位基因 2 或 3 位数字代码)。 - comment_line 注释行。 - loci_list 标记名称列表。

方法: - get_individual 返回当前种群的下一个个体。 - skip_population 跳过当前种群。

skip_population 跳过当前种群的个体,如果还有更多种群则返回 True。

get_individual 返回当前种群的个体(如果列表结束则返回 None)。

每个个体都是一个对,由个体名称和等位基因列表(每个标记 2 个或单倍体数据 1 个)组成。示例

('Ind1', [(1,2),    (3,3), (200,201)]
('Ind2', [(2,None), (3,3), (None,None)]
('Other1', [(1,1),  (4,3), (200,200)]
__init__(fname)

初始化类。

__str__()

返回(重建)GenePop 文本表示。

这可能会占用大量内存。标记长度将为 3。

start_read()

开始解析包含 GenePop 文件的文件。

skip_header()

跳过标题。重新打开后执行。

seek_position(pop, indiv)

在文件中查找特定位置。

参数
  • pop - 种群位置(0 是第一个)

  • indiv - 种群中的个体

skip_population()

跳过当前种群。如果还有其他种群则返回 true。

get_individual()

获取下一个个体。

如果当前种群中还有更多个体,则返回个体信息。如果当前种群中没有更多个体,但还有更多种群,则返回 True。下次读取将从下一个种群开始。如果到达文件末尾,则返回 False。

remove_population(pos, fname)

删除一个种群(按位置)。

参数
  • pos - 位置

  • fname - 要创建的删除了种群的文件

remove_locus_by_position(pos, fname)

按位置删除标记。

参数
  • pos - 位置

  • fname - 要创建的删除了标记的文件

remove_loci_by_position(positions, fname)

按位置删除一组标记。

参数
  • positions - 位置

  • fname - 要创建的删除了标记的文件

remove_locus_by_name(name, fname)

按名称删除标记。

参数
  • name - 名称

  • fname - 要创建的删除了标记的文件

remove_loci_by_name(names, fname)

删除标记列表(按名称)。

参数
  • names - 名称

  • fname - 要创建的删除了标记的文件