写的很乱,请参考。附件有序列文件和程序文件

###///////////////////////////////////////////////////////////////////////###
###//////////////程序名称:..
###//////////////作者:盛夏
###//////////////时间: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 <[email protected]>

> 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 讨论组”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 [email protected]。
> 要取消订阅此网上论坛,请发送电子邮件至 [email protected]。
> 若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。
>
>


-- 
Best regards,
Liu Jie

020-32015312
Guangzhou Institutes of Biomedicine and Health, Chinese Academy of Sciences
http://www.gibh.cas.cn/

-- 
您收到此邮件是因为您订阅了 Google 网上论坛的“PerlChina Mongers 讨论组”论坛。
要向此网上论坛发帖,请发送电子邮件至 [email protected]。
要取消订阅此网上论坛,请发送电子邮件至 [email protected]。
若有更多问题,请通过 http://groups.google.com/group/perlchina?hl=zh-CN 访问此网上论坛。

Attachment: Protein seq.fasta
Description: Binary data

Attachment: 1.pl
Description: Binary data

回复