###///////////////////////////////////////////////////////////////////////###
###//////////////程序名称：..
###//////////////作者：盛夏
###//////////////时间：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);                                  ## 关闭目录
