首页 Bioperl操作指南

Bioperl操作指南

举报
开通vip

Bioperl操作指南 Bioperl操作指南 camelbbs@gmail.com Bioperl为许多经典的生物信息学程序提供了软件模块,这些包括: 从本地或远程数据库获取数据; 转换数据库或文件记录的格式; 操作单个序列; 搜索相似序列; 创建和进行序列比对; 搜索基因组上的基因及其它结构; 发展机器可读的序列注释; 下面的章节将描述 bioperl怎样执行这些任务; III.1从本地和远程数据库中获取数据 bioperl 主要集中于序列操作,但是在用 b...

Bioperl操作指南
Bioperl操作指南 camelbbs@gmail.com Bioperl为许多经典的生物信息学程序提供了软件模块,这些包括: 从本地或远程数据库获取数据; 转换数据库或文件 记录 混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载 的格式; 操作单个序列; 搜索相似序列; 创建和进行序列比对; 搜索基因组上的基因及其它结构; 发展机器可读的序列注释; 下面的章节将描述 bioperl怎样执行这些任务; III.1从本地和远程数据库中获取数据 bioperl 主要集中于序列操作,但是在用 bioperl 操作序列之前,需要获取序列数据。现在你可以直接将序 列数据输入到 bioperl的 Seq对象,例如: $seq = Bio::Seq->new(-seq => 'actgtggcgtcaact', -desc => 'Sample Bio::Seq object', -display_id => 'something', -accession_number => 'accnum', -alphabet => 'dna' ); 然而,在大多数时候,从在线文档及数据库中获取序列更优越。注意在生物信息学的传统叫法中有时候被 称作“数据库”的很可能是一个“索引平台文件”。 Bioperl支持远程数据获取,也可为访问本地数据库创建索引。有两个普通的方法完成这个。如果你知道序 列储存在什么样的数据库中(例如文本文件、本地关系型数据库或一个 internet上可访问的远程数据库), 你可以写一个脚本特定地从这些数据库中获得数据。这种方法将在 III.1.1 节和 III.1.2节中描述,这两节分 别讲如何从远程数据库和本地的索引平台文件中获取数据。明确地从本地关系型数据库中获取序列数据需 要安装和设置 bioperl-db库和 BioSQL计划中的模块,更多介绍可见 IV.3节。 另一个方法是使用最近发展起来的 OBDA(Open Bioinformatics Data Access)注册系统。使用 OBDA可以从 一个数据库中输出序列而不需要知道可访问的数据库是平台文件还是关系型,甚至不管它是本地的还是仅 能从网上获得的。关于怎样安装必须的注册配置文件和获取序列数据已在 doc/howto 中的 BIODATABASE_ACCESS中叙述,这里不再重复。 III.1.1 获取远程数据(Bio::DB::GenBank等) Bioperl 可以直接从主要的分子生物学数据库中获取序列数据。数据可以通过序列的获取号或 id 来获得。 生 物 秀 -专 心 做 生 物 ww w. bb ioo .co m 还可以进行批量获取以方便地获取多重序列。例如,从 genbank中获取数据的代码如下: $gb = new Bio::DB::GenBank(); # this returns a Seq object : $seq1 = $gb->get_Seq_by_id('MUSIGHBA1'); # this returns a Seq object : $seq2 = $gb->get_Seq_by_acc('AF303112'); # this returns a SeqIO object : $seqio = $gb->get_Stream_by_id(["J00522","AF303112","2981014"]); 更多信息见 III.2.1关于使用 SeqIO对象。 Bioperl 当前支持从 genbank,genpept,Refseq,swissprot 和 EMBL 数据库中获取序列数据。更多信息见 Bio::DB::GenBank manpage, the Bio::DB::GenPept manpage, the Bio::DB::SwissProt manpage, the Bio::DB::RefSeq manpage 和 the Bio::DB::EMBL manpage。用户可以为一个数据库指定不同的数据库镜像 --特别相关的是 SwissProt资源有许多 ExPaSy镜像。还有一些为那些后台防火墙指定本地的代理服务器 的配置项。 获取 NCBI RefSeqs序列可以通过一个叫 Bio::DB:RefSeq的特定模块来查询 EBI服务器。使用之前可以参 考 Bio::DB::RefSeq manpage,有一些关于获取 RefSeq的告诫。RefSeq在 Genbank中的 id一般是以"NT_", "NC_", "NG_", "NM_", "NP_", "XM_", "XR_", or"XP_"开头 (更多信息见 http://www.ncbi.nlm.nih.gov/LocusLink/refseq.html)。 严格来说 Bio::DB:GenBank可被用来获取与这些 id一致的 entries,但是记住它们不是 Genbank entries。 关于获取以"NT_"开头的 entries 的特定细节见 Bio::DB::GenBank manpage,这些是经过特别格式化的 "CONTIG" entries。 Bioperl也支持从一个远程 Ace数据库中获取序列。这个功能需要另外的 AcePerl模块。你需要下载并安装 aceperl模块,见 http://stein.cshl.org/AcePerl/。 另一个模块 BioFetch,可用于访问远程数据库,它会查询 EBI 中的 dbfetch 脚本。适用数据库如 EMBL,GenBank 或 SWALL,可以通过不同格式如 objects 或 streams(SeqIO objects),或"tempfiles"来获取 entries。详细内容见 Bio::DB::BioFetch manpage。 III.1.2索引和访问本地数据库(Bio::Index::*, bp_index.pl, bp_fetch.pl, Bio::DB::*) 通过 Bio:Index或 Bio::DB::Fasta对象,Bioperl允许索引本地序列文件。下面的序列数据格式支持 Bio::Index: genbank,swissprot,pfam,embl和 fasta。一旦使用 Bio::Index索引一组序列,就可用与访问远程数据库相似的 句法来获取单条序列。例如,如果想设置一个 fasta格式的索引平台文件数据库,并获取一个文件,可以这 样写代码: # script 1: create the index use Bio::Index::Fasta; # using fasta file format use strict; # some users have reported that this is necessary my $Index_File_Name = shift; my $inx = Bio::Index::Fasta->new( 生 物 秀 -专 心 做 生 物 ww w. bb ioo .co m -filename => $Index_File_Name, -write_flag => 1); $inx->make_index(@ARGV); # script 2: retrieve some files use Bio::Index::Fasta; use strict; # some users have reported that this is necessary my $Index_File_Name = shift; my $inx = Bio::Index::Fasta->new($Index_File_Name); foreach my $id (@ARGV) { my $seq = $inx->fetch($id); # Returns Bio::Seq object # do something with the sequence } 为了方便创建和使用更复杂或更灵活的索引系统,bioperl 在 scripts/index 文件夹下分配了两个样本脚本, bp_index.PLS 和 bp_fetch.PLS。这些脚本能够被用作模板来发展用户化的本地数据文件索引系统。 Bioperl还提供了 Bio:DB:Fasta作为索引和查询 Fasta格式文件的手段。它与 Bio::Index::Fasta的精髓是一致 的但是提供了更多的方法,例如: use Bio::DB::Fasta; use strict; my $db = Bio::DB::Fasta->new($file); # one file or many files my $seqstring = $db->seq($id); # get a sequence as string my $seqobj = $db->get_Seq_by_id($id); # get a PrimarySeq obj my $desc = $db->header($id); # get the header, or description line 关于这个模块的全部特征的更多信息见 Bio::DB::Fasta manpage 。 这两个模块还可以让用户在 fasta 头文件中指明一个特定字符串作为识别 id,如字符串 "gi|4556644|gb|X45555"中的 gi number。看下面的 fasta格式序列,它储存在文件"test.fa"中: >gi|523232|emb|AAC12345|sp|D12567 titin fragment MHRHHRTGYSAAYGPLKJHGYVHFIMCVVVSWWASDVVTYIPLLLNNSSAGWKRWWWIIFGGE GHGHHRTYSALWWPPLKJHGSKHFILCVKVSWLAKKERTYIPKKILLMMGGWWAAWWWI 默认情况下,Bio::Index::Fasta和 Bio::DB::Fasta会使用他们在 fasta头文件中遇到的第一个词作为获取关键 词,如本例中的"gi|523232|emb|AAC12345|sp|D12567"。一个单独的 id作为一个关键词会更有用。下面的代 码将索引"test.fa"并创建一个索引文件"test.fa.idx",其关键词是 Swissprot,或"sp"标识符。 $ENV{BIOPERL_INDEX_TYPE} = "SDBM_File"; # look for the index in the current directory $ENV{BIOPERL_INDEX} = "."; my $file_name = "test.fa"; my $inx = Bio::Index::Fasta->new( -filename => $file_name . ".idx", 生 物 秀 -专 心 做 生 物 ww w. bb ioo .co m -write_flag => 1 ); # pass a reference to the critical function to the Bio::Index object $inx->id_parser(\&get_id); # make the index $inx->make_index($file_name); # here is where the retrieval key is specified sub get_id { my $header = shift; $header =~ /^>.*\bsp\|([A-Z]\d{5}\b)/; $1; } 这里是关于怎样获取序列的方法,如用一个 Bio::Seq对象: my $seq = $inx->fetch("D12567"); print $seq->seq; 如果你想用一个 Swissprot id或一个 gi number获取一条序列,而 fasta头文件实际上是多个 gi和 Swissprot 串联的头文件,该如何操作? >gi|523232|emb|AAC12345|sp|D12567|gi|7744242|sp|V11223 titin fragment 修改那些传递到 id_parser方法的功能: sub get_id { my $header = shift; my (@sps) = $header =~ /^>.*\bsp\|([A-Z]\d{5})\b/g; my (@gis) = $header =~ /gi\|(\d+)\b/g; return (@sps,@gis); } Bio::DB::Fasta模块使用相同的原理,但是句法稍微有所不同,例如: my $db = Bio::DB::Fasta->new('test.fa', -makeid=>\&make_my_id); my $seqobj = $db->get_Seq_by_id($id); sub make_my_id { my $description_line = shift; $description_line =~ /gi\|(\d+)\|emb\|(\w+)/; ($1,$2); } bioperl的核心安装文件并不支持访问储存在关系数据库中的序列和数据。这种功能由附属的 bioperl-db文 库提供。更多信息见 IV.3节。 III.2转换数据库或文件记录格式 生 物 秀 -专 心 做 生 物 ww w. bb ioo .co m III.2.1转换序列文件(SeqIO) 生物信息学的一个普通的任务就是在广泛使用的序列数据格式之间进行转换。Bioperl的 SeqIO对象使这件 事 变 得 轻 而 易 举 。 SeqIO 能 够 阅 读 大 量 的 序 列 格 式 ( 在 一 个 或 多 个 文 件 中 ): Fasta,EMBL,GenBank,Swissprot,PIR,GCG,SCF, phd/phred, Ace, fastq, exp, chado, or raw (plain sequence)。 SeqIO也能够 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 alf, ztr, abi, ctf, 和 ctr格式的文件,一旦序列数据被 SeqIO读取,就变成 bioperl的 Seq、 PrimarySeq或 RichSeq对象所能利用的形式,选用这几个对象要看序列的来源。此外,序列对象可以任何 支持的数据格式被写入另一个文件(也用 SeqIO),使数据转换简单并可执行,例如: use Bio::SeqIO; $in = Bio::SeqIO->new(-file => "inputfilename", -format => 'Fasta'); $out = Bio::SeqIO->new(-file => ">outputfilename", -format => 'EMBL'); while ( my $seq = $in->next_seq() ) {$out->write_seq($seq); } 另外,perl的"tied句柄"句法是 SeqIO可用的,你可以用 standard<> 和打印操作来读写序列对象,例如: $in = Bio::SeqIO->newFh(-file => "inputfilename" , -format => 'fasta'); $out = Bio::SeqIO->newFh(-format => 'embl'); print $out $_ while <$in>; 如果不使用"-format"语句,Bioperl会依赖于文件后缀来决定格式,这是一个较慢的办法。如果没有后缀可 用,SeqIO会基于实际内容推测序列的格式。这里是当前通用的一组后缀: Format Suffixes Comment fasta fasta|fast|seq|fa|fsa|nt|aa Fasta genbank gb|gbank|genbank|gbs|gbk Genbank scf scf SCF tracefile pir pir PIR embl embl|ebl|emb|dat EMBL raw txt plain gcg gcg GCG ace ace ACeDB bsml bsm|bsml BSML XML game GAME XML swiss swiss|sp SwissProt phd phd|phred Phred fastq fastq Fastq Locuslink LL_tmpl format qual Phred quality file chado Chado XML tinyseq NCBI TinySeq XML exp exp Staden experiment file abi* abi ABI tracefile 生 物 秀 -专 心 做 生 物 ww w. bb ioo .co m alf* alf ALF tracefile ctf* ctf CTF tracefile ztr* ztr ZTR tracefile pln* pln Staden plain tracefile *这些格式需要 bioperl-ext包和来自于 Staden包的 io_lib文库 更多信息见 Bio::SeqIO manpage 或 SeqIO HOWTO (http://bioperl.org/HOWTOs/html/SeqIO.html) III.2.2转换比对文件(AlignIO) 数据文件储存的多序列比对也具有不同的格式。AlignIO 是 bioperl 中转换比对文件格式的对象。AlignIO 基本用法类似于 SeqIO对象,它的许多命令的名字与 SeqIO相同。如在 SeqIO和 AlignIO对象中都可以用 "-file"和"-format"来创建文件: use Bio::AlignIO; my $io = Bio::AlignIO->new(-file => "receptors.aln", -format => "clustalw" ); 如果"-format"语句不起作用, Bioperl就通过文件后缀来决定格式,下面是目前常用的一组后缀: 格式 后缀 内容 bl2seq clustalw aln emboss* water|needle fasta fasta|fast|seq|fa|fsa|nt|aa maf maf mase Seaview mega meg|mega meme meme metafasta msf msf|pileup|gcg GCG nexus nexus|nex pfam pfam|pfm phylip phylip|phlp|phyl|phy|phy|ph interleaved prodom psi psi PSI-BLAST selex selex|slx|selx|slex|sx HMMER stockholm *water, needle, matcher, stretcher, merger, 和 supermatcher见 IV.2.1的 EMBOSS。 与 SeqIO不同的是,AlignIO不能创建每种格式的输出文件。AlignIO当前支持 6种输出格式: fasta, mase, selex, clustalw, msf/gcg和 phylip (交叉存取)。 AlignIO与 SeqIO的另一个重要区别是 AlignIO一次只能操作一个比对 IO,而 SeqIO.pm可以在单串中操作 生 物 秀 -专 心 做 生 物 ww w. bb ioo .co m 多个序列。AlignIO的句法基本上与 SeqIO一致: use Bio::AlignIO; $in = Bio::AlignIO->new(-file => "inputfilename" , -format => 'fasta'); $out = Bio::AlignIO->new(-file => ">outputfilename", -format => 'pfam'); while ( my $aln = $in->next_aln() ) { $out->write_aln($aln); } 仅有的区别是返回的对象的条目,$aln,是针对 SimpleAlign对象而不是 Seq对象。 AlignIO也支持上面描述的 SeqIO的 tied句柄的句法。更多关于 SimpleAlign的信息见Bio::AlignIO manpage, Bio::SimpleAlign manpage和 III.5。 III.3 操作序列 Bioperl包括许多序列分析模块。如果在 bioperl中没有找到你要找的功能,就在 EMBOSS或 PISE中找, 它们可在 bioperl-run附加文库中得到(见 IV.2.1)。 III.3.1使用 Seq方法操作序列 现在我们知道了如何获取序列并将它们作为序列对象访问。再来看看怎样使用序列对象去操作我们的序列 数据并返回信息。Seq 提供了多种方法来执行许多普通(有时候不普通)的操作序列和返回数据的任务。 这里列了一些最有用的: 这些方法返回字符串或者被用来设定值: $seqobj->display_id(); # the human read-able id of the sequence $seqobj->seq(); # string of sequence $seqobj->subseq(5,10); # part of the sequence as a string $seqobj->accession_number(); # when there, the accession number $seqobj->alphabet(); # one of 'dna','rna','protein' $seqobj->primary_id(); # a unique id for this sequence irregardless # of its display_id or accession number $seqobj->desc(); # a description of the sequence 值得一提的是有些值对应于给定格式的特定区域。例如,display_id方法返回一个 Genbank entry的 LOCUS 名字,在一个 Fasta文件中,(\S+)跟随>,ID来自于一个 SwissProt文件,等等。desc()方法将返回一个 Genbank文件中的 DEFINITION行,在 Fasta文件中,这一行跟着 display_id,SwissProt文件中在 DE区。 下面的方法返回一组 Bio::SeqFeature对象: $seqobj->get_SeqFeatures; # The 'top level' sequence features $seqobj->get_all_SeqFeatures; # All sequence features, including sub- # seq features 对于一条 comment注释,你可以使用: 生 物 秀 -专 心 做 生 物 ww w. bb ioo .co m use Bio::Annotation::Comment; $seq->annotation->add_Annotation('comment', Bio::Annotation::Comment->new(-text => 'some description'); 对于一条 reference注释,可以使用: use Bio::Annotation::Reference; $seq->annotation->add_Annotation('reference', Bio::Annotation::Reference->new(-authors => 'author1,author2', -title => 'title line', -location => 'location line', -medline => 998122 ); 序列特征将在 III.7的机器可读序列注释中讨论。对这个对象的总体描述在Bio::SeqFeature::Generic manpage 中可以找到,一个相关的高水平的注释描述在 Bio::Annotation::Collection manpage中。 另外的关于获取序列特征的样本代码可在 gb2features.pl中找到,它在子文件夹 examples/DB下。 最后,还有关于特征和注释的 HOWTO (http://bioperl.org/HOWTOs/html/Feature-Annotation.html) 和一节在 FAQ中关于特征的介绍(http://bioperl.org/Core/Latest/faq.html#5)。 下面的方法返回新的序列对象,但是并不把起始对象的特征传递到结果特征中: $seqobj->trunc(5,10); # truncation from 5 to 10 as new object $seqobj->revcom; # reverse complements sequence $seqobj->translate; # translation of the sequence 注意到一些方法返回字符串,一些返回队列,一些返回对象。更多信息见 Bio::Seq manpage。 许多方法自己都带有注释。然而,bioperl灵活的方法准许有更多的注释。生物信息学中的 翻译 阿房宫赋翻译下载德汉翻译pdf阿房宫赋翻译下载阿房宫赋翻译下载翻译理论.doc 意味着两种 稍有不同的事件: 1.从头到尾翻译一段核苷酸序列。 2.重视 mRNAs中真实编码区的局限性。 bioperl关于执行序列的翻译可以很简单的完成这些任务的第一步。任何不是蛋白质字母表的序列对象,都 可以通过返回一个蛋白序列对象的方法被翻译: $translation1 = $my_seq_object->translate; 然而,翻译方法也可以通过传递许多可选参数来改变作用。例如,translate()的前两句可以用来修饰用于代 表终止(default'*')和未知氨基酸('X')的参数。(正常情况下最好是左边未被改变)。第三句决定翻译框。默认 的框是"0"。用其他两种前移框来翻译,可以这样写: $translation2 = $my_seq_object->translate(undef,undef,1); $translation3 = $my_seq_object->translate(undef,undef,2); 生 物 秀 -专 心 做 生 物 ww w. bb ioo .co m translate()的第四个语句使它可以选择使用遗传密码。目前有 16个编码平台,包括 'Vertebrate Mitochondrial', 'Bacterial', 'Alternative Yeast Nuclear' 和 'Ciliate, Dasycladacean and Hexamita Nuclear' 翻译平台。这些平台在 Bio::Tools::CodonTable对象中,被翻译方法所使用。例如,线粒体翻译: $human_mitochondrial_translation = $seq_obj->translate(undef,undef,undef,2); 如果我们想翻译全部编码区(CDS),主要是核酸数据库 EMBL、GenBank和 DDBJ 这样做,翻译方法不得 不执行更多的技巧。特别是,'translate'需要确定序列的开头和末尾有适当的起始和终止密码子,而序列内 部没有终止密码子。另外,如果使用的遗传密码中有一个非典型(非 ATG)起始密码子,翻译方法需要将起 始氨基酸转换为亮氨酸。这些检查和转换可以通过设定翻译方法的第五句求真值而触发。 如果第五句设为真而没有一个标准来找合适的 CDS,默认情况下就会出现一种警告。通过设定第六句来求 真值,如果发现不合适的 CDS,就通知程序进行消除。例如: $protein_object = $cds->translate(undef,undef,undef,undef,1,'die_if_errors'); 相关细节见 Bio::Tools::CodonTable manpage。 III.3.2获得序列的基本统计数据(SeqStats,SeqWord) 为了增加 Seq对象中的直接可用的方法,bioperl提供了多个帮助对象来测定一条序列更多的信息。例如, SeqStats 对象提供了来获取序列的分子质量的方法,以及每种残基(核酸的碱基或蛋白质的氨基酸)的出 现数量。对核酸来说,SeqStats也可以返回使用的密码子的数量统计。例如: use SeqStats; $seq_stats = Bio::Tools::SeqStats->new($seqobj); $weight = $seq_stats->get_mol_wt(); $monomer_ref = $seq_stats->count_monomers(); $codon_ref = $seq_stats->count_codons(); # for nucleic acid sequence 注意:有时候序列会包含模糊密码。因为这个原因,get_mol_wt()返回一个条目给一个包含分子质量的最 大下限和最小上限的两个元件的队列。 SeqWords对象与 SeqStats相似并提供一种方法计算序列中"单词"(例如 tetramers或 hexamers)的出现频率。 更多信息请见 Bio::Tools::SeqStats manpage和 Bio::Tools::SeqWords manpage。 III.3.3识别限制性酶切位点(Bio::Restriction) 操作核酸序列的另一个常见任务是定位限制性酶切位点。 Bioperl 为这个目的提供了 Bio::Restriction::Enzyme,Bio::Restriction::EnzymeCollection和 Bio::Restriction::Analysis对象。这些模块取 代旧的模块 Bio::Tools::RestrictionEnzyme. 一种新的收集酶的对象定义如下: use Bio::Restriction::EnzymeCollection; my $all_collection = Bio::Restriction::EnzymeCollection; 生 物 秀 -专 心 做 生 物 ww w. bb ioo .co m Bioperl默认的Restrcition::EnzymeCollection对象返回 500多个不同的 II型限制性酶的数据。用available_list() 方法可以得到可用酶的列表,但这些仅是名称,不是功能对象。你也可以访问酶的子集。例如选择所有的 具有 6碱基长识别位点的可用酶对象,代码如下: my $six_cutter_collection = $all_collection->cutters(6); foreach my $enz ($six_cutter_collection){ print $enz->name,"\t",$enz->site,"\t",$enz->overhang_seq,"\n"; # prints name, recognition site, overhang } 还有一些方法也可用来选择酶对象组,如 unique_cutters()和 blunt_enzymes()。你也可以通过名称来选择一 个酶对象,如: my $ecori_enzyme = $all_collection->get_enzyme('EcoRI'); 一旦选择了一个合适的酶对象,就可用 fragments()方法获得给定核酸序列上的酶位点。执行这个任务的句 法: use Bio::Restriction::Analysis; my $analysis = Bio::Restriction::Analysis->new(-seq => $seq); # where $seq is the Bio::Seq object for the DNA to be cut @fragments = $analysis->fragments($enzyme); # and @fragments will be an array of strings 为了得到同裂酶,甲基化位点和微生物资源的信息,你需要从一个 REBASE 文件里直接创建你的 EnzymeCollection,如: use Bio::Restriction::IO; my $re_io = Bio::Restriction::IO->new(-file=>$file,-format=>'withrefm'); my $rebase_collection = $re_io->read; 正确格式的 REBASE 文件可以在 ftp://ftp.neb.com/pub/rebase 找到,一般它有一个名字如"withrefm.308"。 如果需要的话你也可以创建新的酶,如: my $re = new Bio::Restriction::Enzyme(-enzyme=>'BioRI',-seq=>'GG^AATTCC'); 更 多 信 息 请 看 Bio::Restriction::Enzyme manpage, Bio::Restriction::EnzymeCollection manpage, Bio::Restriction::Analysis manpage, 和 Bio::Restriction::IO manpage. III.3.4识别氨基酸裂解位点(Sigcleave) 对于氨基酸序列我们有兴趣知道氨基酸序列是否包含一个可分裂的信号序列来指导细胞内蛋白质的运输。 SigCleave是一个预测信号序列的程序(最初是 EGCG分子生物学包的一部分),同时基于 von Heijne算法 识别裂解位点。 初始设置可以控制分数 报告 软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载 。如果用户没有传递初始值,密码子默认为一个报告值 3.5。SigCleave将只返 生 物 秀 -专 心 做 生 物 ww w. bb ioo .co m 回满足初始限制的分数/位置信息。 使用 Sigcleave句法如下: # create a Seq object, for example: $seqobj = Bio::Seq->new(-seq => "AALLHHHHHHGGGGPPRTTTTTVVVVVVVVVVVVVVV"); use Bio::Tools::Sigcleave; $sigcleave_object = new Bio::Tools::Sigcleave ( -seq => $seqobj, -threshold => 3.5, -desc => 'test sigcleave protein seq', -type => 'AMINO' ); %raw_results = $sigcleave_object->signals; $formatted_output = $sigcleave_object->pretty_print; 注意 SigCleave对象中"Type"是指"amino",而在 Seq对象中它是"protein"。更多细节请看Bio::Tools::Sigcleave manpage。 III.3.5显示各种复杂的序列信息:OddCodes,SeqPattern OddCodes: 有时候有必要显示一条氨基酸序列的各种信息,如疏水性氨基酸的位置或者是带正电的地方。Bioperl可以 用 Bio::Tools::OddCodes实现这个目的。 例如,快速查看带电氨基酸在序列中的位置可以这样实现: use Bio::Tools::OddCodes; $oddcode_obj = Bio::Tools::OddCodes->new($amino_obj); $output = $oddcode_obj->charge(); 每条序列都可被转换为成一种三字母序列(A,C,N)即负电(酸性),正电(碱性)和中性氨基酸。例 如 ACDEFGH会成为 NNAANNC。 为了得到更完全的序列的化学特征,可以用 chemical()方法将序列转化成一种 8字母的化学字母表 { A (acidic), L (aliphatic), M (amide), R (aromatic), C (basic), H (hydroxyl), I (imino), S (sulfur) }: $output = $oddcode_obj->chemical(); 在这种情况下例子序列 ACDEFGH就成为 LSAARAC。 OddCodes也提供到字母表的翻译以显示氨基酸序列的一些特征如疏水性、“功能性”或使用 Dayhoff定义 来分组。详细内容见文档 Bio::Tools::OddCodes manpage。 SeqPattern: 生 物 秀 -专 心 做 生 物 ww w. bb ioo .co m SeqPattern 对象使用 perl 正则表达式来操作序列。 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 SeqPattern 的目的是为了产生一条包括模糊碱基和 (或)正则表达式的核酸序列模式的反转互补序列。当提交的一条序列的正义和反义链都需要模式匹配的 时候,就可以用这种方法来实现。典型的 SeqPattern句法如下。一些有趣的例子在 examples/tools文件夹的 Seq_Pattern.pl代码中可以提供更多的信息。 use Bio::Tools::SeqPattern; $pattern = '(CCCCT)N{1,200}(agggg)N{1,200}(agggg)'; $pattern_obj = new Bio::Tools::SeqPattern(-SEQ => $pattern, -TYPE => 'dna'); $pattern_obj2 = $pattern_obj->revcom(); $pattern_obj->revcom(1); # returns expanded rev complement pattern. 更多的细节可见 Bio::Tools::SeqPattern manpage。 III.3.6 同等系统转换(Coordinate::Pair, RelSegment) 同等系统转换是一个普通的需求,例如,当你想查看序列特征的相关位置并转换这些相关位置到分离同等 通过一条染色体或一个 contig。尽管同等的转换听起来很漂亮,当包括转换到同等的可能性在负链的时候 或者有一个同等的系统末端因为你到达一个克隆或 contig的末端。Bioperl有两个不同的方法来进行同等系 统的转换(基于模块 Bio::Coordinate::Pair和 Bio::DB::GFF::RelSegment)。 Coordinate::Pair方法是有时是更“低水平”。用它,你可以定义一个输入的同等的系统和一个输出的同等系 统,每种情况下一个同等系统就是一个起始位置、终止位置和链的三重体。终止位置是特别重要的当处理 一个未结束的类(当达到一个克隆或 contig 末端时同等系统所终止的地方)。一旦两种终止系统被定义, 就需要定义一个 Coordinate::Pair来在他们之间绘图。然后一个人可以在终止系统之间进行图谱定位,代码 如下: $input_coordinates = Bio::Location::Simple->new (-seq_id => 'propeptide', -start => 1000, -end => 2000, -strand=>1 ); $output_coordinates = Bio::Location::Simple->new (-seq_id => 'peptide', -start => 1100, -end => 2100, -strand=>1 ); $pair = Bio::Coordinate::Pair->new (-in => $input_coordinates , -out => $output_coordinates ); $pos = Bio::Location::Simple->new (-start => 500, -end => 500 ); $res = $pair->map($pos); $converted_start = $res->start; 在这个例子中$res 也是一个 Bio::Location 对象,如你期望的那样。更多细节见 Bio::Coordinate::Pair 和 Bio::Coordinate::GeneMapper文档。 Bio::DB::GFF::RelSegment 方法被设计为操作序列特征的同等转换而不是武断的转换同等系统。使用 Bio::DB::GFF::RelSegment 你可以定义一个相关的同
本文档为【Bioperl操作指南】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_194155
暂无简介~
格式:pdf
大小:296KB
软件:PDF阅读器
页数:29
分类:
上传时间:2013-12-21
浏览量:39