Bio.Graphics.BasicChromosome 模块

绘制生物体染色体表示图,并添加信息。

这些类旨在模拟染色体图片的绘制。这在许多方面都很有用,包括在染色体上显示标记(例如,用于遗传作图)以及显示两个染色体之间的同源性。

这些类的结构旨在成为复合结构,以便可以轻松地插入和切换不同的部分,而不会破坏系统的总体绘制功能。类之间的关系是,所有内容都派生自 _ChromosomeComponent,它指定了总体接口。然后,这些部分相互关联,以便一个生物体包含染色体,而这些染色体包含染色体片段。这种表示与规范的复合结构不同,因为我们这里没有真正的“叶”节点——所有组件都可能包含子组件。

大多数情况下,ChromosomeSegment 类是您想要针对特定绘制任务进行自定义的类。

为了提供绘制功能,这些类使用 reportlab

http://www.reportlab.com

这提供了 PDF、SVG 和 Postscript 中的精美输出。如果您安装了 reportlab 的 renderPM 模块,您还可以使用 PNG 等。

class Bio.Graphics.BasicChromosome.Organism(output_format='pdf')

Bases: _ChromosomeComponent

绘制染色体的顶级类。

此类保存有关生物体及其所有染色体的的信息,并提供可以用于绘制生物体的染色体表示图的顶级对象。

应该通过添加和删除函数添加和删除染色体。

__init__(output_format='pdf')

初始化类。

draw(output_file, title)

绘制生物体的信息。

参数
  • output_file – 指定应将文档保存到的文件名称,或要写入的句柄。输出格式在创建生物体对象时设置。或者,output_file=None 将使用低级 ReportLab 对象返回绘图(用于进一步处理,例如在写入之前添加其他图形)。

  • title – 生成的文档的输出标题。

class Bio.Graphics.BasicChromosome.Chromosome(chromosome_name)

Bases: _ChromosomeComponent

绘制生物体染色体的类。

这组织了单个生物体染色体的绘制。可以实例化此类,但 draw 方法在生物体的上下文中调用最有意义。

__init__(chromosome_name)

初始化一个染色体以供绘制。

参数
  • chromosome_name - 染色体的标签。

属性
  • start_x_position, end_x_position - 页面上应绘制染色体的 x 位置。这允许在单个页面上绘制多个染色体。

  • start_y_position, end_y_position - 页面上应包含染色体的 y 位置。

配置属性
  • title_size - 染色体标题的大小。

  • scale_num - 用于缩放绘图的数字。如果您要按相同比例绘制大小不同的多个染色体,这将很有用。如果没有设置,则染色体绘制将按染色体中的片段数量进行缩放(因此每个染色体的最终大小都完全相同)。

subcomponent_size()

返回此组件的所有子组件的缩放大小。

draw(cur_drawing)

在指定的模板上绘制染色体。

理想情况下,应在绘制之前设置 x_position 和 y_*_position 属性——否则我们会遇到一些问题。

class Bio.Graphics.BasicChromosome.ChromosomeSegment

Bases: _ChromosomeComponent

绘制染色体片段。

此类提供了绘制染色体的重要的可配置功能。每个片段在此处有一些可用的自定义,或者可以对其进行子类化以定义其他功能。大多数有趣的绘图内容可能发生在 ChromosomeSegment 级别。

__init__()

初始化一个 ChromosomeSegment。

属性
  • start_x_position, end_x_position - 定义我们必须在其中绘制事物的 x 范围。

  • start_y_position, end_y_position - 定义我们必须在其中绘制事物的 y 范围。

配置属性
  • scale - 组件的缩放值。默认情况下,它设置为 1(即——与其他所有内容具有相同的比例)。较高的值使组件更大,较小的值使组件更小。

  • fill_color - 用于填充段的 color。颜色在 reportlab.lib.colors 中可用

  • label - 要放置在染色体段上的标签。这应该是一个文本字符串,指定要包含在标签中的内容。

  • label_size - 标签的大小。

  • chr_percent - 染色体段所占的区域百分比。

draw(cur_drawing)

绘制一个染色体片段。

在绘制之前,需要设置我们正在绘制的范围。

class Bio.Graphics.BasicChromosome.AnnotatedChromosomeSegment(bp_length, features, default_feature_color=colors.blue, name_qualifiers=('gene', 'label', 'name', 'locus_tag', 'product'))

Bases: ChromosomeSegment

带注释的染色体片段。

这与 ChromosomeSegment 类似,但接受一个特征列表。

__init__(bp_length, features, default_feature_color=colors.blue, name_qualifiers=('gene', 'label', 'name', 'locus_tag', 'product'))

初始化。

特征可以是 SeqFeature 对象,也可以是值的元组:start(int)、end(int)、strand(+1、-1、O 或 None)、label(string)、ReportLab color(string 或 object)以及可选的 ReportLab 填充颜色。

请注意,我们要求 0 <= start <= end <= bp_length,并且在分配给此段的垂直空间内,行将根据 start/end 坐标(从顶部开始)放置。

正链特征绘制在右侧,负链绘制在左侧,否则绘制在整个区域。

我们建议对所有段的比例值使用一致的单位(例如,它们的长度以碱基对表示)。

当以 SeqFeature 对象提供特征时,将使用默认颜色,除非特征的限定符包含 Artemis 颜色字符串(GenomeDiagram 中也具有此功能)。标题也遵循 GenomeDiagram 方法,并从 name_qualifiers 中指定的列表或元组中获取第一个限定符。

注意,附加属性 label_sep_percent 控制染色体片段占用的面积百分比,默认情况下为 chr_percent 属性的一半(25% 的一半,即 12.5%)。

class Bio.Graphics.BasicChromosome.TelomereSegment(inverted=0)

Bases: ChromosomeSegment

位于线性染色体末端的片段。

这与普通片段类似,但它绘制染色体的末端,该末端用半圆表示。这只是覆盖了 ChromosomeSegment 的 _draw_segment 类以提供该专门的绘图。

__init__(inverted=0)

初始化染色体末端的片段。

有关可以在 TelomereSegments 中自定义的所有属性,请参见 ChromosomeSegment。

参数
  • inverted – 端粒是否应该倒置(即绘制在染色体的底部)

class Bio.Graphics.BasicChromosome.SpacerSegment

Bases: ChromosomeSegment

位于线性染色体末端的片段。

不绘制任何内容,只是空白区域,这对于布局目的(例如为特征标签腾出空间)很有帮助。

draw(cur_diagram)

不对当前图绘制任何内容(虚拟方法)。

片段间隔符在图中没有实际图像,因此此方法不执行任何操作,但定义了以匹配其他片段对象的预期 API。