不用Bioperl,直接使用hash也很容易实现的。不过bioperl的普适性更好,毕竟bioperl的诞生就是为了解决大家都会遇到的问题。 如果学完perl,还不会用hash,那就无话可说了。
在 2011年6月23日 下午5:13,xiumu <yangyang445...@126.com>写道: > 最好不要引用什么东西,就是单纯的程序就能实现。20种氨基酸比较多,写一个剩下的我自己补就好了。程序越容易理解越好 > > On 6月23日, 下午1时03分, jie liu <liujie....@gmail.com> wrote: > > 写的很乱,请参考。附件有序列文件和程序文件 > > > > > ###///////////////////////////////////////////////////////////////////////# > ## > > ###//////////////程序名称:.. > > ###//////////////作者:盛夏 > > ###//////////////时间:2011/06/22 > > ###//////////////备注:序列处理部分的代码来源于 柳城 > > > ###///////////////////////////////////////////////////////////////////////# > ## > > > > #!/usr/bin/perl -w > > > > $dirname = "D:/xProject/Perl/3"; #指定Random DNA sequences所在目录 > > > > opendir( DIR, $dirname ) || die "Error in opening dir $dirname\n"; > > > > while ( ( $filename = readdir(DIR) ) ) { > > > > #print("$filename\n"); #循环输出该目录下的文件。 > > > > $num = 0; > > $/ = '>'; #输入记录分隔符,默认是/n > > > > open FASTA, "<$dirname/$filename"; > > open disc, ">disc_$filename"; ## 生成一个文件保存描述信息 > > open seq, ">seq_$filename"; ## 生成一个文件保存序列信息 > > open all, ">all_$filename"; ## 生成一个文件记录完整的信息 > > while (<FASTA>) { > > > > $seq_line = ''; > > s/>//g; > > @seq = split "\n"; > > if (@seq) { > > $desc = $seq[0]; ## 这是>后面的描述 > > chomp($desc); > > foreach $i ( 1 .. ( @seq - 1 ) ) {## '..'意思同'~' > > chomp( $seq[$i] ); > > $seq[$i] =~ s/\n//g; ## 把序列的换行符去掉 > > $seq_line .= $seq[$i]; ##把多行的Fasta序列转为一行} > > > > @seq2 = split(//,$seq_line); > > foreach $i ( 1 .. ( @seq2 - 1 ) ) {## '..'意思同'~' > > if(($i+3)%3 != 0) { > > $seq_line2 .= $seq2[$i]; > > }else{ > > $seq_line2 .= $seq2[$i]." ";} > > } > > > > print disc ">$desc\n"; > > print seq ">\n$seq_line\n"; > > print all ">$desc\n$seq_line2\n";} > > } > > > > close disc; ## 关闭文件 > > close seq; ## 关闭文件 > > close all; ## 关闭文件 > > > > } > > > > closedir(DIR); ## 关闭目录 > > > > 2011/6/23 xiumu <yangyang445...@126.com> > > > > > > > > > > > > > > > > > > > > > FASTA是生物信息数据库的常用存储方式,了解FASTA格式的含义,用perl编写程序分离注释行内容,分离蛋白质序列,并转变成氨基酸三字母表示 > > > 方式。说明使用的perl数据结构和程序的变量转换过程,解释含义。 > > > > > 承认这是个作业・・・・・ 谢谢各位老大了・・・时间比较紧急 明天就交了・・・・・・ 程序于简单越好 > > > > > >1A23:A|PDBID|CHAIN|SEQUENCE > > > >:注释行 > > > > > > AQYEDGKQYTTLEKPVAGAPQVLEFFSFFCPHCYQFEEVLHISDNVKKKLPEGVKMTKYHVNFMGGDLGKDLTQA > WAVAM > > > > > > ALGVEDKVTVPLFEGVQKTQTIRSASDIRDVFINAGIKGEEYDAAWNSFVVKSLVAQQEKAAADVQLRGVPAMFV > NGKYQ > > > LNPQGMDTSNMDVFVQQYADTVKYLSEKK > > > 数据内容 > > > >1AAR:B|PDBID|CHAIN|SEQUENCE > > > > > > MQIFVKTLTGKTITLEVEPSDTIENVKAKIQDKEGIPPDQQRLIFAGKQLEDGRTLSDYNIQKESTLHLVLRLRG > G > > > >1AG2:A|PDBID|CHAIN|SEQUENCE > > > > > > GLGGYMLGSAMSRPMIHFGNDWEDRYYRENMYRYPNQVYYRPVDQYSNQNNFVHDCVNITIKQHTVTTTTKGENF > TETDV > > > KMMERVVEQMCVTQYQKESQAYY > > > >1AJ3:A|PDBID|CHAIN|SEQUENCE > > > > > > AKLNESHRLHQFFRDMDDEESWIKEKKLLVSSEDYGRDLTGVQNLRKKHKRLEAELAAHEPAIQGVLDTGKKLSD > DNTIG > > > KEEIQQRLAQFVDHWKELKQLAAARGQRLE > > > >1ARR:B|PDBID|CHAIN|SEQUENCE > > > MKGMSKMPQFNLRWPREVLDLVRKVAEENGRSVNSEIYQRVMESFKKEGRIGA > > > > > -- > > > 您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。 > > > 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。 > > > 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscr...@googlegroups.com。 > > > 若有更多问题,请通过http://groups.google.com/group/perlchina?hl=zh-CN访问此网上论坛。 > > > > -- > > Best regards, > > Liu Jie > > > > 020-32015312 > > Guangzhou Institutes of Biomedicine and Health, Chinese Academy of > Scienceshttp://www.gibh.cas.cn/ > > > > Protein seq.fasta > > < 1K查看下载 > > > > 1.pl > > 2K查看下载 > > -- > 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。 > 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。 > 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscr...@googlegroups.com。 > 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。 > > -- 您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。 要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。 要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscr...@googlegroups.com。 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。