我在上面用Bioperl给出了一种解决方案,但是不知道为什么好像那个帖子找不到了。
在 2011年6月23日 下午1:03,jie liu <liujie.dhu@gmail.com>写道:
写的很乱,请参考。附件有序列文件和程序文件###///////////////////////////////////////////////////////////////////////######//////////////程序名称:..###//////////////作者:盛夏###//////////////时间: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;$/ = '>'; #输入记录分隔符,默认是/nopen 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 <yangyang445544@126.com>FASTA是生物信息数据库的常用存储方式,了解FASTA格式的含义,用perl编写程序分离注释行内容,分离蛋白质序列,并转变成氨基酸三字母表示
方式。说明使用的perl数据结构和程序的变量转换过程,解释含义。
承认这是个作业・・・・・ 谢谢各位老大了・・・时间比较紧急 明天就交了・・・・・・ 程序于简单越好
>1A23:A|PDBID|CHAIN|SEQUENCE >:注释行
AQYEDGKQYTTLEKPVAGAPQVLEFFSFFCPHCYQFEEVLHISDNVKKKLPEGVKMTKYHVNFMGGDLGKDLTQAWAVAM
ALGVEDKVTVPLFEGVQKTQTIRSASDIRDVFINAGIKGEEYDAAWNSFVVKSLVAQQEKAAADVQLRGVPAMFVNGKYQ
LNPQGMDTSNMDVFVQQYADTVKYLSEKK
数据内容
>1AAR:B|PDBID|CHAIN|SEQUENCE
MQIFVKTLTGKTITLEVEPSDTIENVKAKIQDKEGIPPDQQRLIFAGKQLEDGRTLSDYNIQKESTLHLVLRLRGG
>1AG2:A|PDBID|CHAIN|SEQUENCE
GLGGYMLGSAMSRPMIHFGNDWEDRYYRENMYRYPNQVYYRPVDQYSNQNNFVHDCVNITIKQHTVTTTTKGENFTETDV
KMMERVVEQMCVTQYQKESQAYY
>1AJ3:A|PDBID|CHAIN|SEQUENCE
AKLNESHRLHQFFRDMDDEESWIKEKKLLVSSEDYGRDLTGVQNLRKKHKRLEAELAAHEPAIQGVLDTGKKLSDDNTIG
KEEIQQRLAQFVDHWKELKQLAAARGQRLE
>1ARR:B|PDBID|CHAIN|SEQUENCE
MKGMSKMPQFNLRWPREVLDLVRKVAEENGRSVNSEIYQRVMESFKKEGRIGA
--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
--Best regards,Liu Jie020-32015312Guangzhou Institutes of Biomedicine and Health, Chinese Academy of Sciences
--
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
--
您收到此邮件是因为您订阅了 Google 网上论坛的"PerlChina Mongers 讨论组"论坛。
要向此网上论坛发帖,请发送电子邮件至 perlchina@googlegroups.com。
要取消订阅此网上论坛,请发送电子邮件至 perlchina+unsubscribe@googlegroups.com。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
没有评论:
发表评论