使用Bioperl模块作数据分析_第1页
使用Bioperl模块作数据分析_第2页
使用Bioperl模块作数据分析_第3页
使用Bioperl模块作数据分析_第4页
使用Bioperl模块作数据分析_第5页
已阅读5页,还剩63页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、使用Bioperl模块作数据分析 王庭璋Outline Perl和Bioperl简介 基本概念 序列处理 比对处理Outline Perl和Bioperl简介+为什么选择perl +perl的安装+perl脚本的编辑运行+bioperl简介 +bioperl的安装 基本概念 序列处理 比对处理为什么选择perl 脚本语言(Script language) 操作系统的功能:读写文件,移动文件 图形化界面和命令行界面:一次只能执行一个操作 脚本语言将多个操作封装成一次操作 很容易学习 开源代码 已有大量模块,提高效率 擅长于文本处理 强大的字符串处理功能,基因组序列、蛋白质序列均采用字符串编码 减

2、少人为错误 功能强大Perl的安装 安装文件下载 http:/ 脚本名称,再按回车键Perl环境已经配置好,接下来再了解一下bioperlBioperl简介 Perl中的模块中的模块 关于生物数据处理 开源,拥有很多代码贡献者开源,拥有很多代码贡献者 不必花费时间重复别人的工作 具有可扩展性具有可扩展性 根据自己的需要扩展现存方法 参考网站参考网站 / 参考文献参考文献 Stajich et al. (2002) Genome ResBioperl的安装启动Perl Package Manager(ppm)Bioperl的安装名称perl 5.8perl 5.

3、10BioPerl-Regular Releases/DIST/DISTBioPerl-Release Candidates /DIST/RC/DIST/RCKobeshttp:/theoryx5.uwinnipeg.ca/ppmshttp:/cpan.uwinnipeg.ca/PPMPackages/10 xx/Bribeshttp:/www.B/perl/ppmhttp:/www.B/perl/ppmTrouchelle

4、http:/ 无Windows下,安装bioperl所需要的代码仓库:如何将这些仓库地址导入ppm?点击Edit-Preference菜单,启动仓库地址添加界面:4:结束,返回主界面,进行安装3:输入仓库信息2:进入仓库(Repositories)界面1:进入首选项(Preference)Bioperl的安装点击Repositories标签1:输入仓库名称:BioPerl-Regular Releases2:输入仓库地址:/DIST3:点击Add按钮4:按13,依次添加完所有仓库仓库添加完后,点击OK,返回PPM的主界面添加仓库信息:Bioperl的安装1:查

5、询框中输入bioperl2:标记要安装的bioperl包3:点击安装按钮进行安装4:确认安装5:等待安装完成安装按钮已经完成perl和bioperl的环境设置Outline Perl和Bioperl简介+为什么选择perl +perl的安装+perl脚本的编辑运行+bioperl简介 +bioperl的安装 基本概念 序列处理 比对处理Outline Perl和Bioperl简介 基本概念+对象、模块和实例 +模块与模块之间的关系+模块的构成 +模块中的方法+操作符 +结构控制语句+如何使用perl/bioperl 序列处理 比对处理对象、模块(类)和实例对象:对象是我们要进行研究的任何事物,

6、例如生活中我们碰到的各种交通工具:汽车、轮船、飞机等。而在今天的bioperl中,我们将要学习的对象有:序列、多序列比对等对象、模块(类)和实例模块(类):一个模块(类)是对一个对象(或者一类对象)的描述,例如:对汽车的描述:车牌号,行驶在公路上的交通工具 对序列的描述:序列名称、序列类型(DNA、RNA或者蛋白质)模块实例(对象实例):一个个具体对象,叫做实例,比如说:车牌号为“京2009”便是汽车的一个实例。而水稻叶绿体基因组序列,则是序列的一个具体实例。模块与模块之间的关系在分类学上的对象之间存在一些包含关系:例如:汽车,可以包含小汽车、公共汽车、货车等序列文件格式有fasta,genb

7、ank,embl等。模块与模块之间的关系:所有的小汽车模块、公共汽车模块和货车模块都具有汽车模块的描述,以及各自独有的描述。汽车小汽车父模块公共汽车货车SeqIOfastagenbankembl子模块模块是对“对象”的一种描述学习bioperl,重点是了解其中的模块模块的构成模块是对“对象”的描述,这里的描述分为两部分:属性(静态),方法(行为特征,动态)以汽车为例:属性特征有车牌号、车子的颜色等行为特征有启动车子、刹车等以序列文件读写为例:属性特征有文件名、文件格式等行为特征有读一条序列、写一条序列模块:属性部分:属性1,属性2,属性3方法部分:方法1,方法2,方法3如何使用一个模块?模块中

8、的方法与模块进行交互:在bioperl中,一般通过模块中的方法与模块进行交互!模块 方法1参数11 参数1n返回结果1方法2参数21 参数2n返回结果2方法.返回结果重点:是否已经存在有关模块?是否有合适的方法?返回值=模块-方法n(参数n1,参数n2,.)操作符$,后跟字符,表示一个变量。$var,后跟字符,表示一个数组变量。arr$arr0, $arr1, $arr2, $arri., 取用数组里第i个位置的值。 ,后跟变量,表示将变量中存储的地址中的内容当做数组对待。$arr_ref%,后跟字符,表示一个哈希表变量,%hash;$hash$key,取用哈希表(hash)里“键名”为$ke

9、y的键值。%后跟变量,表示把变量中存储的地址中的内容当做哈希表对待。%$hash_refarr%hash$var102key3key2key1操作符=,变量赋值,即把“=”右边的内容赋给“=”左边的变量。赋值可以简单地理解为把内容(值)放到某个盒子(变量)里。$var=5; $var=“I am a string”;$var$var=5;盒子里是什么,不清楚$var盒子里装的内容是“5”BioSeqIO:,取子模块,“:”左边为父模块,“:”右边为子模块。use Bio:SeqIO;操作符-,取用模块里的方法,“-”左边为模块或者模块的实例,“-”右边为模块里的方法。$in=Bio:SeqIO

10、-new(-file=”$inputFile”, -format=fasta); $in-next_seq();=,用法多样,当在方法的()中的时候,其表示赋值,即把“=”右边的值赋给左边的参数。当方法没有参数的时候,可以不写()。 $in-next_seq;SeqIO newfile format返回结果1Next_seq返回结果2结构控制语句while循环:while(条件) 当满足()中的条件时, 反复执行这里的内容 当不满足()中的条件时, 反复执行这里的内容Foreach循环:foreach my $element (array)#依次把数组array中的内容转放到变量element

11、中 当element中有真实内容的时候,执行这里的内容 if条件语句:If(条件) 符合条件时的执行内容else 不符合条件时的执行内容如何使用perl/bioperl1.明确问题2.寻找已经存在的代码3.确定自己的解决方案4.编写代码 用操作符组合变量和数据 结构控制相关语句 修改 -调试 -修改5.运行程序Outline Perl和Bioperl简介 基本概念+对象、模块和实例 +模块与模块之间的关系+模块的构成 +模块中的方法+操作符 +结构控制语句+如何使用perl/bioperl 序列处理 比对处理Outline Perl和Bioperl简介 基本概念 序列处理 +序列格式介绍 +序

12、列文件格式的转换 +DNA序列的翻译 +序列长度的计算 +序列特征的提取 +序列特征的图形化显示 +序列的远程获取 +序列处理管道设计 比对处理序列格式介绍文件格式:fasta序列名称(ID)序列描述序列本身序列格式介绍文件格式:genbankgenbank格式fasta格式序列格式介绍文件格式:emblfasta格式embl格式序列文件格式的转换1,提出问题:如何进行文件格式的转换?(实例1)fasta格式genbank格式embl格式序列文件格式的转换2,是否已经相关代码? Bioperl中SeqIO模块,封装了序列有关的文件读写通过use Bio:SeqIO;语句告诉程序要使用SeqIO

13、模块方法参数返回值作用new序列文件、序列格式SeqIO模块实例产生一个与文件关联的变量next_seq无序列(Seq模块实例)从文件中读取序列,但每次只读一条write_seq序列(Seq模块实例)成功返回1,否则0往文件写一条序列3,解决方案:3.1 利用SeqIO模块中的new方法产生一个读实例3.2 利用SeqIO模块中的new方法产生一个写实例3.3 从读实例中取序列3.4 通过写实例往文件存入序列3.5 反复操作3.3和3.4,直到读实例中无序列可取序列文件格式的转换序列文件格式的转换4,编写代码$in和$out均为SeqIO模块的实例$seq为Seq模块的实例序列文件格式的转换5

14、,运行代码:首先要准备好待转换的序列文件将上述代码保存到文件ex001.pl在命令行上,进入工作目录在命令行上,键入命令perl ex001.pl查看结果序列文件格式的转换1.明确问题-将某个序列文件的格式改成其它格式2.寻找已经存在的代码-Bio:SeqIO模块3.确定解决方案-分别产生一个读实例和一个写实例-读实例不断地读取序列到内存-同时写实例不断地把内存中的序列写到文件4.编写代码-关键变量$in, $out, $seq-while-修改 -调试 -修改5.运行程序DNA序列的翻译问题2:DNA序列的翻译?.64密码子20氨基酸+终止信号DNA序列的翻译$seq和$prot两个均为Se

15、q模块实例2,已存在的代码;3,解决方案;4:代码编写DNA序列的翻译5,运行代码后,结果展示如下:序列的统计信息:长度分布提出问题:如何统计每条序列的长度?(实例3)序列长度的计算2,已存在的代码;3,解决方案;4代码编写:$seq为Seq模块实例序列长度的计算5,运行代码 后的结果展示:借助于其它程序,比如perl,Excel可以获得下图Seq模块总结告诉程序要使用Seq模块?(即如何产生Seq模块实例?)1,直接使用“use Bio:Seq;”语句;2,通过SeqIO模块中的next_seq方法;3,或者有关模块中的有关方法方法参数返回值new序列名称(id)、序列本身(一段字符串)Se

16、q模块实例id无,或者序列的新名称序列名称desc无,或者序列的新描述序列描述Length无序列长度seq无,或者Seq模块实例的新序列序列(用一串字符表示)subseq起始位点,终止位点子序列(一串字符)alphabetDNA,或者RNA,或者protein序列类型Revcom反向互补序列(Seq模块实例)translate终止符的表示,frame,密码子表.(大多数情况下采用默认值)翻译后的蛋白质序列(可以认为是Seq模块实例)get_SeqFeatures无一系列的SeqFeatureI模块实例序列特征表问题4:如何解析genbank文件?序列的特征注释,比序列本身更容易看出生物学信息序

17、列特征表(Feature table)序列特征表(Feature table)genbank文件的内容序列特征主标签(primary_tag)特征起始位置(start)特征终止位置(end)特征所在的链(strand)标签(tag)标签值(tag value)序列特征表的获取1,提出问题:如何获取genbank文件中的序列特征表?(实例4)genbank中的序列特征序列特征列表?序列特征表的获取2,已存在代码;3,解决方案;4代码编写:SeqFeatureI模块的主要方法均在本例中用到$feature均为SeqFeatureI模块实例;features为一系列SeqFeatureI模块实例的集

18、合,包含了序列中所有序列特征序列特征表的获取5,运行代码;结果展示 :1,提出问题:如何图形化显示序列特征?(实例5)图形化显示序列特征2,已存在代码;3,解决方案;4:代码编写:$panel为画板模块的实例;$full_length为SeqFeature模块的实例;5,运行代码;结果同前一张ppt序列的远程获取实例6:从公共数据库(GenBank)获取序列?$out是SeqIO模块的一个实例$gb是DB:GenBank模块的一个实例DB:GenBank模块中的主要方法为:get_Seq_by_acc,参数为Accession Numberget_Seq_by_gi,参数为GI Number这

19、两个方法都返回Seq模块的实例序列的远程获取实例6:从公共数据库(GenBank)获取序列的结果展示分析管道1:水稻叶绿体基因组 从远程数据库获取序列 序列特征表的表格化显示 序列特征表的图形化显示 全部CDS核苷酸序列的提取 全部CDS蛋白质序列的获取 蛋白质序列长度分析已知条件:水稻叶绿体基因组的NCBI登录号(Accession Number:NC_001320)后续分析:水稻叶绿体蛋白质组的分析.Outline Perl和Bioperl简介 基本概念 序列处理 +序列格式介绍 +序列文件格式的转换 +DNA序列的翻译 +序列长度的计算 +序列特征的提取 +序列特征的图形化显示 +序列的

20、远程获取 +序列处理管道设计 比对处理Outline Perl和Bioperl简介 基本概念 序列处理 比对处理+比对文件格式的转换+进化距离的计算+同义替换率(D_s)和非同义替换率(D_n)的计算+序列联配的自动化进行+比对处理的管道设计多序列比对文件格式Clustalw 格式的序列比对(联配)Phylip格式的序列比对某些软件对比对文件的格式有要求!例如,phylip软件包就要使用phylip格式的比对文件序列比对文件格式转换$in是AlignIO模块的一个实例,负责输入$out是AlignIO模块的一个实例,负责输出$aln是AlignI模块的一个实例,储存序列比对的信息实例7:多序列

21、比对文件格式转换AlignIO和SeqIO模块很相似AlignIO模块的主要方法:new, 产生一个AlignIO模块实例,参数为文件名称和格式;next_aln,顺序地读取一个比对到Align模块实例中,无参数;write_aln,向文件写入比对,参数为Align模块实例。AlignI模块的主要方法?序列比对模块AlignI模块的介绍:如何获取AlignI模块的实例?通过AlignIO模块实例从文件中读取。方法名称参数返回值new比对文件和格式AlignIO模块实例length无比对的长度num_sequences无参与比对的序列数目consensus_string阈值(01),默认为0一致

22、性序列(字符串表示)consensus_iupac无获取IUPAC模糊字符表示的一致性序列column_from_residue_number序列名称,序列中的位点序列中某个位点在多序列比对中的位置each_seq无获得一系列Seq模块实例,分别对应着比对中的每个序列序列比对完成之后,接下来该做什么?进化距离进化距离计算实例8:计算比对序列JukesCantor距离$in为AlignIO模块的一个实例,负责读入比对;$stats为Align:DNAStatistics模块的一个实例,负责对多序列比对进行统计分析;$matrix为一矩阵模块实例,它以矩阵的形式保存序列之间的进化距离JukesCa

23、ntor距离计算结果展示:同义和非同义替换率计算实例9:计算同义替换率和非同义替换率calc_all_KaKs_pairs方法计算所有两两序列对之间同义和非同义替换距离,参数为一个AlignI模块实例,返回的是一系列的比对结果,存放于数组results中。每个比对结果存放于一个哈希(Hash)表中。$results为数组地址,要获得该地址的数组使用$results$key为哈希表的地址,要获得其中某个键的值,使用$key-键DNAStatistics方法总结Align:DNAStatistics中的主要方法:方法参数返回值new无DNAStatistics模块实例D_JukesCantorAlignI模块实例距离矩阵实例D_KimuraAlignI模块实例距离矩阵实例D_UncorrectedAlignI模块实例距离矩阵实例TransversionsAlignI模块实例两序列间的颠换TransitionsAlignI模块实例两序

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论