基因组作图软件GenomeDiagram.pdf
《基因组作图软件GenomeDiagram.pdf》由会员分享,可在线阅读,更多相关《基因组作图软件GenomeDiagram.pdf(35页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 17 章章 Graphics 模块中的基模块中的基因组可视化包因组可视化包GenomeDiagramBio.Graphics模块基于 Python 的第三方扩展库 ReportLab,ReportLab 主要生成PDF 文件,同时也能生成 EPS(Encapsulated Postscript)文件和 SVG文件。ReportLa 可以导出矢量图,如果安装依赖关系(Dependencies),比如 PIL(PythonImaging Library),ReportLab 也可以导出 JPEG,PNG,GIF,BMP和 PICT 格式的位图(Bitmap image)。17.1 基因组可视
2、化包基因组可视化包GenomeDiagram17.1.1 GenomeDiagram简介简介Bio.Graphics.GenomeDiagram包被整合到 Biopython 1.50版之前,就已经是 Biopython的独立模块。GenomeDiagram包首次出现在 2006 年 Pritchard 等人在Bioinformatics 杂志的一篇文章 :ref:2 ,文中展示了一些图像示例,更多图像示例请查看 GenomeDiagram手册 http:/biopython.org/DIST/docs/GenomeDiagram/userguide.pdf。正如“GenomeDiagram”
3、名称所指,它主要用于可视化全基因组(特别是原核生物基因组),即可绘制线型图也可绘制环形图,Toth 等人在 2006 年发表的文章 :ref:3 中图 2 就是一个示例。Van der Auwera 等人在 2009 年发表的文章:ref:4 中图 1 和图 2 也进一步说明,GenomeDiagram适用于噬菌体、质粒和线粒体等微小基因组的可视化。如果存储基因组信息的是从 GenBank文件中下载的SeqRecord话,它会包含许多SeqFeature,那么用这个模块处理就很简单(详见 第:ref:4 章和第:ref:5 章)。17.1.2 图形,轨迹图形,轨迹,特征集和特征特征集和特征Ge
4、nomeDiagram使用一组嵌套的对象,图层中沿着水平轴或圆圈的图形对象(diagram object)表示一个序列(sequence)或序列区域(sequence region)。一个图形可以包含多个轨迹(track),呈现为横向排列或者环形放射图。这些轨迹的长度通常相等,代表相同的序列区域。可用一个轨迹表示基因的位置,另一个轨迹表示调节区域,第三个轨迹表示 GC 含量。可将最常用轨迹的特征打包为一个特征集(feature-sets)。CDS的特征可以用一个特征集,而tRNA 的特征可以用另外一个特征集。这不是强制性的要求,你可以在 diagram 中用同样的特征集。如果diagram 中
5、用不同的特征集,修改一个特征会很容易,比如把所有 tRNA 的特征都变为红色,你只需选择 tRNA 的特征就行。新建图形主要有两种方式。第一种是自上而下的方法(Top-Down),首先新建diagram 对象,然后用diagram 的方法来添加 track(s),最后用track的方法添加特征。第二种是自下而上的方法(Bottom-Up),首先单独新建对象,然后再将其进行组合。17.1.3 自上而下的实例自上而下的实例我们用一个从 GenBank文件中读取出来的SeqRecord来绘制全基因组(详见第:ref:5 章)。这里用鼠疫杆菌 Yersinia pestis biovarMicrotu
6、s的 pPCP1质粒,元数据文件 NC_005816.gb在 Biopython中 GenBank的 tests目录下,NC_005816.gb也可下载fromfrom reportlab.lib importimport colorsfromfrom reportlab.lib.units importimport cmfromfrom Bio.Graphics importimport GenomeDiagramfromfrom Bio importimport SeqIOrecord=SeqIO.read(NC_005816.gb,genbank)这里用自上而下的方法,导入目标序列后,新
7、建一个 diagram,然后新建一个 track,最后新建一个特征集(feature set):gd_diagram=GenomeDiagram.Diagram(Yersinia pestis biovar Microtus plasmidpPCP1)gd_track_for_features=gd_diagram.new_track(1,name=Annotated Features)gd_feature_set=gd_track_for_features.new_set()接下来的部分最有趣,提取SeqRecord中每个基因的SeqFeature对象,就会为 diagram生成一个相应的特
8、征(feature),将其颜色设置为蓝色,分别用深蓝和浅蓝表示。forfor feature inin record.features:ifif feature.type!=!=gene:#Exclude this featurecontinuecontinueifif len(gd_feature_set)%2=0:color=colors.blueelseelse:color=colors.lightblue gd_feature_set.add_feature(feature,color=color,label=True)创建导出文件需要两步,首先是draw方法,它用ReportLab
9、对象生成全部图形。然后是write方法,将图形存储到格式文件。注意:输出文件格式不止一种。gd_diagram.draw(format=linear,orientation=landscape,pagesize=A4,fragments=4,start=0,end=len(record)gd_diagram.write(plasmid_linear.pdf,PDF)gd_diagram.write(plasmid_linear.eps,EPS)gd_diagram.write(plasmid_linear.svg,SVG)如果安装了依赖关系(Dependencies),也可以生成位图(Bitm
10、ap image),代码如下:gd_diagram.write(plasmid_linear.png,PNG)注意,我们将代码中的fragments变量设置为“4”,基因组就会被分为“4”个片段。如果想要环形图,可以试试以下的代码:gd_diagram.draw(format=circular,circular=True,pagesize=(20*cm,20*cm),start=0,end=len(record),circle_core=0.7)gd_diagram.write(plasmid_circular.pdf,PDF)示例图不是非常精彩,但这仅仅是精彩的开始。17.1.4 自下而上的
11、实例自下而上的实例现在,用“自下而上”的方法来创建相同的图形。首先新建不同的对象(可以是任何顺序),然后将其组合。fromfrom reportlab.lib importimport colorsfromfrom reportlab.lib.units importimport cmfromfrom Bio.Graphics importimport GenomeDiagramfromfrom Bio importimport SeqIOrecord=SeqIO.read(NC_005816.gb,genbank)#Create the feature set and its feature
12、 objects,gd_feature_set=GenomeDiagram.FeatureSet()forfor feature inin record.features:ifif feature.type!=!=gene:#Exclude this featurecontinuecontinueifif len(gd_feature_set)%2=0:color=colors.blueelseelse:color=colors.lightblue gd_feature_set.add_feature(feature,color=color,label=True)#(this for loop
13、 is the same as in the previous example)#Create a track,and a diagramgd_track_for_features=GenomeDiagram.Track(name=Annotated Features)gd_diagram=GenomeDiagram.Diagram(Yersinia pestis biovar Microtus plasmidpPCP1)#Now have to glue the bits together.gd_track_for_features.add_set(gd_feature_set)gd_dia
14、gram.add_track(gd_track_for_features,1)同样,利用draw和write方法来创建线形图或者环形图,结果应该完全相同(“draw”和“write”部分的代码见 17.1.3)。17.1.5 简单的简单的 Feature以上示例中,创建 diagram 使用的SeqRecord的SeqFeature对象(详见:ref:4.3章节)。如果你不需要SeqFeature对象,只将目标 feature定位在坐标轴,仅需要创建 minimalSeqFeature对象,方法很简单,代码如下:fromfrom Bio.SeqFeature importimport SeqF
15、eature,FeatureLocationmy_seq_feature=SeqFeature(FeatureLocation(50,100),strand=+=+1)对于序列来说,+1代表正向,-1代表反向,None代表两者都有,下面举个简单的示例:fromfrom Bio.SeqFeature importimport SeqFeature,FeatureLocationfromfrom Bio.Graphics importimport GenomeDiagramfromfrom reportlab.lib.units importimport cmgdd=GenomeDiagram.D
16、iagram(Test Diagram)gdt_features=gdd.new_track(1,greytrack=False)gds_features=gdt_features.new_set()#Add three features to show the strand options,feature=SeqFeature(FeatureLocation(25,125),strand=+=+1)gds_features.add_feature(feature,name=Forward,label=True)feature=SeqFeature(FeatureLocation(150,25
17、0),strand=None)gds_features.add_feature(feature,name=Strandless,label=True)feature=SeqFeature(FeatureLocation(275,375),strand=1)gds_features.add_feature(feature,name=Reverse,label=True)gdd.draw(format=linear,pagesize=(15*cm,4*cm),fragments=1,start=0,end=400)gdd.write(GD_labels_default.pdf,pdf)图形示例结果
18、请见下一节图中的第一个图,缺省的 feature为浅绿色。注意,这里用name参数作为 feature的“说明文本”(caption text)。下文将会讲述更多细节。17.1.6 Feature说明说明下面代码中,feature作为SeqFeature的对象添加到 diagram。gd_feature_set.add_feature(feature,color=color,label=True)前面的示例用SeqFeature的注释为 feature做了恰当的文字说明。SeqFeature对象的限定符(qualifiers dictionary)缺省值是:gene,label,name,lo
19、cus_tag,和product。简单地说,你可以定义一个名称:gd_feature_set.add_feature(feature,color=color,label=True,name=My Gene)每个 feature标签的说明文本可以设置字体、位置和方向。说明文本默认的位置在图形符号(sigil)的左边,可选择在中间或者右边,线形图中文本的默认方向是45旋转。#Large font,parallel with the trackgd_feature_set.add_feature(feature,label=True,color=green,label_size=25,label_a
20、ngle=0)#Very small font,perpendicular to the track(towards it)gd_feature_set.add_feature(feature,label=True,color=purple,label_position=end,label_size=4,label_angle=90)#Small font,perpendicular to the track(away from it)gd_feature_set.add_feature(feature,label=True,color=blue,label_position=middle,l
21、abel_size=6,label_angle=90)用前面示例的代码将这三个片段组合之后应该可以得到如下的结果:除此之外,还可以设置“label_color”来调节标签的颜色(第:ref:17.1.9 节也将用到这一步),这里没有进行演示。示例中默认的字体很小,这是比较明智的,因为通常我们会把许多 Feature同时展示,而不像这里只展示了几个比较大的 feature。17.1.7 表示表示 Feature 的图形符号的图形符号以上示例中 Feature的图形符号(sigil)默认是一个方框(plain box),GenomeDiagram第一版中只有这一选项,后来 GenomeDiagra
22、m被整合到Biopython1.50时,新增了箭头状的图形符号(sigil)。#Default uses a BOX sigilgd_feature_set.add_feature(feature)#You can make this explicit:gd_feature_set.add_feature(feature,sigil=BOX)#Or opt for an arrow:gd_feature_set.add_feature(feature,sigil=ARROW)Biopython 1.61又新增 3 个图形形状(sigil)。#Box with corners cut off(m
23、aking it an octagon)gd_feature_set.add_feature(feature,sigil=OCTO)#Box with jagged edges(useful for showing breaks in contains)gd_feature_set.add_feature(feature,sigil=JAGGY)#Arrow which spans the axis with strand used only for directiongd_feature_set.add_feature(feature,sigil=BIGARROW)下面就是这些新增的图形形状
24、(sigil),多数的图形形状都在边界框(bounding box)内部,在坐标轴的上/下位置代表序列(Strand)方向的正/反向,或者上下跨越坐标轴,高度是其他图形形状的两倍。“BIGARROW”有所不同,它总是跨越坐标轴,方向由 feature的序列决定。17.1.8 箭头形状箭头形状上一部分我们简单引出了箭头形状。还有两个选项可以对箭头形状进行设置:首先根据边界框的高度比例来设置箭杆宽度。#Full height shafts,giving pointed boxes:gd_feature_set.add_feature(feature,sigil=ARROW,color=brown,
25、arrowshaft_height=1.0)#Or,thin shafts:gd_feature_set.add_feature(feature,sigil=ARROW,color=teal,arrowshaft_height=0.2)#Or,very thin shafts:gd_feature_set.add_feature(feature,sigil=ARROW,color=darkgreen,arrowshaft_height=0.1)结果见下图:其次,根据边界框的高度比例设置箭头长度(默认为 0.5或 50%):#Short arrow heads:gd_feature_set.ad
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基因组 作图 软件 GenomeDiagram
限制150内