小弟刚开始学perl,现有一个fasta文件,里面是以若干个序列,例如:
>gi|113195030|gb|EE595366.1|EE595366 EST CCUPAS120LF01a01F Pigeon pea Leaf cDNA Library Cajanus cajan cDNA clone CCUPAS120LF 5', mRNA sequence.
GGGCCCGGATANTTGGGCGGGAATCGAGCCGGCCCCCAGGTTTATGATGTGCGCAGCTG....TGCTCCT
>gi|113195031|gb|EE595367.1|EE595367 EST CCUPAS120LF01a02F Pigeon pea Leaf cDNA Library Cajanus cajan cDNA clone CCUPAS120LF 5', mRNA sequence.
GGGCGATATTGCGGANTGAGCTGGNACCAAGTTTCGACTATCTCAAACTCCGAACGGGTG
GACGGGGGCTTCCCGGCGGACGAAGCC....TTCGACTATC
>gi|113195032|gb|EE595368.1|EE595368 EST CCUPAS120LF01a03F Pigeon pea Leaf cDNA Library Cajanus cajan cDNA clone CCUPAS120LF 5', mRNA sequence.
TCGGGGTCCGTATANGCGAGGATCGAGCCGGTCCCGCCATATATGATAGTTNACTTTTAT
CATTAACTTGA....CACTCAGATCCA
.
.
.
.
现在fsa文件就在C盘根目录下,我要做的就是用perl计算文件中共有多少个序列:
$filename = `sequence.fsa`;
open(FILE, "$filename") || die("Couldn't read file $filename\n");
while (<FILE>){
$seq_num ++;
}
print $seq_num;
close FILE;
我想的是按照一行一行读取文件,然后有多少行就有多少个序列,不知道这个思路对不对;但是运行时总是提醒我有错误无法运行,我看了很多教程讲如何打开文件都是一笔带过,请各位不吝指点!
另外,我还想把gi后面的编号提取出来(例如第一个序列就是提取113195030,第二个是113195031,等等);最后输出到一个新文件中,应该如何写代码呢?
万分感谢!