您好,欢迎访问三七文档
当前位置:首页 > IT计算机/网络 > 数据挖掘与识别 > 使用Bioperl模块作数据分析
使用Bioperl模块作数据分析王庭璋Outline•Perl和Bioperl简介•基本概念•序列处理•比对处理Outline•Perl和Bioperl简介+为什么选择perl+perl的安装+perl脚本的编辑运行+bioperl简介+bioperl的安装•基本概念•序列处理•比对处理为什么选择perl•脚本语言(Scriptlanguage)–操作系统的功能:读写文件,移动文件–图形化界面和命令行界面:一次只能执行一个操作–脚本语言将多个操作封装成一次操作•很容易学习•开源代码–已有大量模块,提高效率•擅长于文本处理–强大的字符串处理功能,基因组序列、蛋白质序列均采用字符串编码–减少人为错误•功能强大Perl的安装•安装文件下载–的安装点击下载的文件后,会弹出Perl的安装过程Perl安装成功与否的测试启动命令行:开始-程序-附件-命令行提示符至此perl环境准备好Perl脚本的编辑运行Perl脚本的编辑:Windows下面可以采用记事本、Editplus、UltraEdit等文本编辑软件Perl脚本的编辑运行Perl脚本的运行:命令行切换到工作目录下,输入perl脚本名称,再按回车键Perl环境已经配置好,接下来再了解一下bioperlBioperl简介•Perl中的模块–关于生物数据处理•开源,拥有很多代码贡献者–不必花费时间重复别人的工作•具有可扩展性–根据自己的需要扩展现存方法•参考网站–•参考文献–Stajichetal.(2002)GenomeResBioperl的安装启动PerlPackageManager(ppm)Bioperl的安装名称perl5.8perl5.10BioPerl-RegularReleases://bioperl.org/DISTBioPerl-ReleaseCandidates://bioperl.org/DIST/RCKobes://cpan.uwinnipeg.ca/PPMPackages/10xx/Bribes://://trouchelle.com/ppm://ppm.tcool.org/archives/无Windows下,安装bioperl所需要的代码仓库:如何将这些仓库地址导入ppm?点击Edit-》Preference菜单,启动仓库地址添加界面:4:结束,返回主界面,进行安装3:输入仓库信息2:进入仓库(Repositories)界面1:进入首选项(Preference)Bioperl的安装点击Repositories标签1:输入仓库名称:BioPerl-RegularReleases2:输入仓库地址::点击Add按钮4:按1~3,依次添加完所有仓库仓库添加完后,点击OK,返回PPM的主界面添加仓库信息:Bioperl的安装1:查询框中输入bioperl2:标记要安装的bioperl包3:点击安装按钮进行安装4:确认安装5:等待安装完成安装按钮已经完成perl和bioperl的环境设置Outline•Perl和Bioperl简介+为什么选择perl+perl的安装+perl脚本的编辑运行+bioperl简介+bioperl的安装•基本概念•序列处理•比对处理Outline•Perl和Bioperl简介•基本概念+对象、模块和实例+模块与模块之间的关系+模块的构成+模块中的方法+操作符+结构控制语句+如何使用perl/bioperl•序列处理•比对处理对象、模块(类)和实例•对象:对象是我们要进行研究的任何事物,例如生活中我们碰到的各种交通工具:汽车、轮船、飞机等。而在今天的bioperl中,我们将要学习的对象有:序列、多序列比对等对象、模块(类)和实例•模块(类):一个模块(类)是对一个对象(或者一类对象)的描述,例如:对汽车的描述:车牌号,行驶在公路上的交通工具对序列的描述:序列名称、序列类型(DNA、RNA或者蛋白质)•模块实例(对象实例):一个个具体对象,叫做实例,比如说:车牌号为“京2009”便是汽车的一个实例。而水稻叶绿体基因组序列,则是序列的一个具体实例。模块与模块之间的关系在分类学上的对象之间存在一些包含关系:例如:汽车,可以包含小汽车、公共汽车、货车等序列文件格式有fasta,genbank,embl等。模块与模块之间的关系:所有的小汽车模块、公共汽车模块和货车模块都具有汽车模块的描述,以及各自独有的描述。汽车小汽车父模块公共汽车货车SeqIOfastagenbankembl……子模块模块是对“对象”的一种描述学习bioperl,重点是了解其中的模块模块的构成模块是对“对象”的描述,这里的描述分为两部分:属性(静态),方法(行为特征,动态)以汽车为例:属性特征有车牌号、车子的颜色等行为特征有启动车子、刹车等以序列文件读写为例:属性特征有文件名、文件格式等行为特征有读一条序列、写一条序列模块:属性部分:属性1,属性2,属性3方法部分:方法1,方法2,方法3如何使用一个模块?模块中的方法与模块进行交互:在bioperl中,一般通过模块中的方法与模块进行交互!模块………方法1参数11…参数1n返回结果1方法2参数21…参数2n返回结果2方法…….返回结果重点:是否已经存在有关模块?是否有合适的方法?返回值=模块-方法n(参数n1,参数n2,….)操作符$,后跟字符,表示一个变量。$var@,后跟字符,表示一个数组变量。@arr$arr[0],$arr[1],$arr[2],…$arr[i]...,取用数组里第i个位置的值。@,后跟变量,表示将变量中存储的地址中的内容当做数组对待。@$arr_ref%,后跟字符,表示一个哈希表变量,%hash;$hash{$key},取用哈希表(hash)里“键名”为$key的键值。%后跟变量,表示把变量中存储的地址中的内容当做哈希表对待。%$hash_ref@arr%hash$var…102…key3key2key1操作符=,变量赋值,即把“=”右边的内容赋给“=”左边的变量。赋值可以简单地理解为把内容(值)放到某个盒子(变量)里。$var=5;$var=“Iamastring”;$var$var=5;盒子里是什么,不清楚$var盒子里装的内容是“5”BioSeqIO::,取子模块,“::”左边为父模块,“::”右边为子模块。useBio::SeqIO;操作符-,取用模块里的方法,“-”左边为模块或者模块的实例,“-”右边为模块里的方法。$in=Bio::SeqIO-new(-file=”$inputFile”,-format=’fasta’);$in-next_seq();=,用法多样,当在方法的()中的时候,其表示赋值,即把“=”右边的值赋给左边的参数。当方法没有参数的时候,可以不写()。$in-next_seq;SeqIO…newfile…format返回结果1Next_seq返回结果2结构控制语句while循环:while(条件){当满足()中的条件时,反复执行这里的内容}当不满足()中的条件时,反复执行这里的内容Foreach循环:foreachmy$element(@array)#依次把数组array中的内容转放到变量element中{当element中有真实内容的时候,执行这里的内容}if条件语句:If(条件){符合条件时的执行内容}else{不符合条件时的执行内容}如何使用perl/bioperl1.明确问题2.寻找已经存在的代码3.确定自己的解决方案4.编写代码–用操作符组合变量和数据–结构控制相关语句–修改-调试-修改5.运行程序Outline•Perl和Bioperl简介•基本概念+对象、模块和实例+模块与模块之间的关系+模块的构成+模块中的方法+操作符+结构控制语句+如何使用perl/bioperl•序列处理•比对处理Outline•Perl和Bioperl简介•基本概念•序列处理+序列格式介绍+序列文件格式的转换+DNA序列的翻译+序列长度的计算+序列特征的提取+序列特征的图形化显示+序列的远程获取+序列处理管道设计•比对处理序列格式介绍文件格式:fasta序列名称(ID)序列描述序列本身序列格式介绍文件格式:genbankgenbank格式fasta格式序列格式介绍文件格式:emblfasta格式embl格式序列文件格式的转换1,提出问题:如何进行文件格式的转换?(实例1)fasta格式genbank格式embl格式序列文件格式的转换2,是否已经相关代码?Bioperl中SeqIO模块,封装了序列有关的文件读写通过useBio::SeqIO;语句告诉程序要使用SeqIO模块方法参数返回值作用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,运行代码:首先要准备好待转换的序列文件将上述代码保存到文件ex001.pl在命令行上,进入工作目录在命令行上,键入命令perlex001.pl查看结果序列文件格式的转换1.明确问题-将某个序列文件的格式改成其它格式2.寻找已经存在的代码-Bio::SeqIO模块3.确定解决方案-分别产生一个读实例和一个写实例-读实例不断地读取序列到内存-同时写实例不断地把内存中的序列写到文件4.编写代码-关键变量$in,$out,$seq-while-修改-调试-修改5.运行程序DNA序列的翻译问题2:DNA序列的翻译?............64密码子20氨基酸+终止信号DNA序列的翻译$seq和$prot两个均为Seq模块实例2,已存在的代码;3,解决方案;4:代码编写DNA序列的翻译5,运行代码后,结果展示如下:序列的统计信息:长度分布提出问题:如何统计每条序列的长度?(实例3)序列长度的计算2,已存在的代码;3,解决方案;4代码编写:$seq为Seq模块实例序列长度的计算5,运行代码后的结果展示:蛋白质长度分布051015202530~5051~100101~150151~200201~250251~300301~400401~500501~500601~长度区间(aa)频数系列1借助于其它程序,比如perl,Excel可以获得下图Seq模块总结告诉程序要使用Seq模块?(即如何产生Seq模块实例?)1,直接使用“useBio::Seq;”语句;2,通过SeqIO模块中的next_seq方法;3,或者有关模块中的有关方法方法参数返回值new序列名称(id)、序列本身(一段字符串)……Seq模块实例id无,或者序列的新名称序列名称desc无,或者序列的新描述序列描述Length无序列长度seq无,或者Seq模块实例的新序列序列(用一串字符表示)subseq起始位点,终止位点子序列(一串字符)alphabetDNA,或者RNA,或者
本文标题:使用Bioperl模块作数据分析
链接地址:https://www.777doc.com/doc-2686971 .html