文档库 最新最全的文档下载
当前位置:文档库 › 基因组作图软件GenomeDiagram

基因组作图软件GenomeDiagram

基因组作图软件GenomeDiagram
基因组作图软件GenomeDiagram

第17章Graphics模块中的基

因组可视化包—GenomeDiagram

Bio.Graphics模块基于Python的第三方扩展库ReportLab,ReportLab主要生成PDF文件,同时也能生成EPS(Encapsulated Postscript)文件和SVG文件。ReportLa可以导出矢量图,如果安装依赖关系(Dependencies),比如PIL(Python Imaging Library),ReportLab也可以导出JPEG, PNG, GIF, BMP和PICT格式的位图(Bitmap image)。

17.1 基因组可视化包—GenomeDiagram

17.1.1 GenomeDiagram简介

Bio.Graphics.GenomeDiagram包被整合到Biopython 1.50版之前,就已经是Biopython 的独立模块。GenomeDiagram包首次出现在2006年Pritchard等人在Bioinformatics杂志的一篇文章[:ref:`2 `] ,文中展示了一些图像示例,更多图像示例请查看GenomeDiagram手

册https://www.wendangku.net/doc/9718873337.html,/DIST/docs/GenomeDiagram/userguide.pdf。正如

―GenomeDiagram‖名称所指,它主要用于可视化全基因组(特别是原核生物基因组),即可绘制线型图也可绘制环形图,Toth等人在2006年发表的文章[:ref:`3

`] 中图2就是一个示例。Van der Auwera 等人在2009年发表的文章[:ref:`4 `] 中图1和图2也进一步说明,GenomeDiagram适用于噬菌体、质粒和线粒体等微小基因组的可视化。

如果存储基因组信息的是从GenBank文件中下载的SeqRecord话,它会包含许

多SeqFeature,那么用这个模块处理就很简单(详见第:ref:`4

`章和第:ref:`5 `章)。

17.1.2 图形,轨迹, 特征集和特征

GenomeDiagram使用一组嵌套的对象,图层中沿着水平轴或圆圈的图形对象(diagram object)表示一个序列(sequence)或序列区域(sequence region)。一个图形可以包含多个轨迹(track),呈现为横向排列或者环形放射图。这些轨迹的长度通常相等,代表相同的序列区域。可用一个轨迹表示基因的位置,另一个轨迹表示调节区域,第三个轨迹表示GC含量。可将最常用轨迹的特征打包为一个特征集(feature-sets)。CDS的特征可以用一个特征集,而tRNA的特征可以用另外一个特征集。这不是强制性的要求,你可以在diagram中用同样的特征集。如果diagram中用不同的特征集,修改一个特征会很容易,比如把所有tRNA的特征都变为红色,你只需选择tRNA的特征就行。

新建图形主要有两种方式。第一种是自上而下的方法(Top-Down),首先新建diagram对象,然后用diagram的方法来添加track(s),最后用track的方法添加特征。第二种是自下而上的方法(Bottom-Up),首先单独新建对象,然后再将其进行组合。

17.1.3 自上而下的实例

我们用一个从GenBank文件中读取出来的SeqRecord来绘制全基因组(详见

第:ref:`5 `章)。这里用鼠疫杆菌Yersinia pestis biovar Microtus的pPCP1质粒,元数据文件NC_005816.gb在Biopython中GenBank

的tests目录下,NC_005816.gb也可下载

这里用自上而下的方法,导入目标序列后,新建一个diagram,然后新建一个track,最后新建一个特征集(feature set):

接下来的部分最有趣,提取SeqRecord中每个基因的SeqFeature对象,就会为diagram 生成一个相应的特征(feature),将其颜色设置为蓝色,分别用深蓝和浅蓝表示。

创建导出文件需要两步,首先是draw方法,它用ReportLab对象生成全部图形。然后是write方法,将图形存储到格式文件。注意:输出文件格式不止一种。

如果安装了依赖关系(Dependencies),也可以生成位图(Bitmap image),代码如下:

注意,我们将代码中的fragments变量设置为―4‖,基因组就会被分为―4‖个片段。如果想要环形图,可以试试以下的代码:

示例图不是非常精彩,但这仅仅是精彩的开始。

17.1.4 自下而上的实例

现在,用―自下而上‖的方法来创建相同的图形。首先新建不同的对象(可以是任何顺序),然后将其组合。

同样,利用draw和write方法来创建线形图或者环形图,结果应该完全相同(―draw‖和―write‖部分的代码见17.1.3)。

17.1.5 简单的Feature

以上示例中,创建diagram使用的SeqRecord的SeqFeature对象(详见:ref:`4.3

`章节)。如果你不需要SeqFeature对象,只将目标feature定位在坐标轴,仅需要创建minimal SeqFeature对象,方法很简单,代码如下:

对于序列来说,+1代表正向,-1代表反向,None代表两者都有,下面举个简单的示例:

图形示例结果请见下一节图中的第一个图,缺省的feature为浅绿色。

注意,这里用name参数作为feature的―说明文本‖(caption text)。下文将会讲述更多细节。

17.1.6 Feature说明

下面代码中,feature作为SeqFeature的对象添加到diagram。

前面的示例用SeqFeature的注释为feature做了恰当的文字说明。SeqFeature对象的限定符(qualifiers dictionary)缺省值是:gene, label, name, locus_tag, 和product。简单地说,你可以定义一个名称:

每个feature标签的说明文本可以设置字体、位置和方向。说明文本默认的位置在图形符号(sigil)的左边,可选择在中间或者右边,线形图中文本的默认方向是45°旋转。

用前面示例的代码将这三个片段组合之后应该可以得到如下的结果:

除此之外,还可以设置―label_color‖来调节标签的颜色(第:ref:`17.1.9

`节也将用到这一步),这里没有进行演示。

示例中默认的字体很小,这是比较明智的,因为通常我们会把许多Feature同时展示,而不像这里只展示了几个比较大的feature。

17.1.7 表示Feature的图形符号

以上示例中Feature的图形符号(sigil)默认是一个方框(plain box),GenomeDiagram第一版中只有这一选项,后来GenomeDiagram被整合到Biopython1.50时,新增了箭头状的图形符号(sigil)。

Biopython 1.61又新增3个图形形状(sigil)。

下面就是这些新增的图形形状(sigil),多数的图形形状都在边界框(bounding box)内部,在坐标轴的上/下位置代表序列(Strand)方向的正/反向,或者上下跨越坐标轴,高度是其他图形形状的两倍。―BIGARROW‖有所不同,它总是跨越坐标轴,方向由feature的序列决定。

17.1.8 箭头形状

上一部分我们简单引出了箭头形状。还有两个选项可以对箭头形状进行设置:首先根据边界框的高度比例来设置箭杆宽度。

结果见下图:

其次,根据边界框的高度比例设置箭头长度(默认为0.5或50%):

结果见下图:

Biopython1.61新增BIGARROW箭头形状,它经常跨越坐标轴,箭头指向‖左边―代表‖反向―,指向‖右边―代表‖正向―。

上述ARROW形状中的箭杆和箭头设置选项都适用于BIGARROW。

17.1.9 完美示例

回到‖自上而下的示例Section :ref:`17.1.3 `中鼠疫杆

菌Yersinia pestis biovar Microtus的pPCP1质粒,现在使用‖图形符号―的高级选项。箭头表示基因,窄框穿越箭头表示限制性内切酶的切割位点。

输出结果见下图:

17.1.10 多重轨迹

前面实例中都是单独的track,我们可以创建多个track,比如,一个track展示基因,另一个track展示重复序列。Proux等人2002年报道的文章[5] 中图6是一个很好的范例,下面我们将三个噬菌体基因组依次进行展示。首先需要三个噬菌体的GenBank文件。

?NC_002703– Lactococcus phage Tuc2009, 全基因组大小(38347 bp)

?AF323668– Bacteriophage bIL285, 全基因组大小(35538 bp)

?NC_003212–Listeria innocua Clip11262,我们将仅关注前噬菌体5的全基因组(长度大体相同).

这三个文件可以从Entrez下载,详情请查阅:ref:`9.6 `。从三个噬菌体基因组文件中分离(slice)提取相关Features信息(请查阅:ref:`4.6

`),保证前两个噬菌体的反向互补链与其起始点对齐,再次保存Feature(详情请查阅:ref:`4.8 ` )。

图像中用不同颜色表示基因功能的差异。这需要编辑GenBank文件中每一个feature的颜色参数——就像用Sanger‘s Artemis editor处理——才能被GenomeDiagram识别。但是,这里只需要硬编码(hard code)三个颜色列表。

上述GenBank文件中的注释信息与Proux所用的文件信息并不完全相同,他们还添加了一些未注释的基因。

接下来是―draw‖方法,给diagram添加3个track。我们在示例中设置不同的开始/结束值来体现它们之间长度不等(Biopython 1.59及更高级的版本)。

相关文档