来个小程序perl如下序列:E078 10 CTACATCCAACA 21 100E034 10 ATCCACATCAA

问题描述:

来个小程序perl
如下序列:
E078 10 CTACATCCAACA 21 100
E034 10 ATCCACATCAAGGATT 25 100
E012 59 CCAAGTTTT 67 100
E012 62 CAGAATCGGAGGAGGAAA 79 100
E056 39 AAGGTTTACAAGGTTCACCTC 59 100
E012 36 GCTGCCAACACCAA 49 100
E012 24 GACCAAATCGTCAAGATGGCCAA 46 100
E034 21 AACAAGATC 29 100
E012 4 CCGAGAAGCGCGGAAAGCGTCA 25 100
E034 57 AACCTTCCAAACGTC 71 100
目的:1 把有E012开头的行都提出来.2算出E012开头的序列,占总序列的百分比.
结果如下:
E012 59 CCAAGTTTT 67 100
E012 62 CAGAATCGGAGGAGGAAA 79 100
E012 36 GCTGCCAACACCAA 49 100
E012 24 GACCAAATCGTCAAGATGGCCAA 46 100
E012 4 CCGAGAAGCGCGGAAAGCGTCA 25 100
占据率:0.5(E012有5个,E开头行有10个,故5/10=0.5)
1个回答 分类:综合 2014-10-13

问题解答:

我来补答
my $E_num = 0;
my $E_total = 0;
my $res = 0;
while ()
{
if ($_ =~m/^E012.*?/g)
{
$E_num = $E_num + 1;
print $_;
}
if ($_ = ~m/^E.*?/g)
{
$E_total = $E_total +1;
}
}
$res = $E_num/$E_total;
print "占据率:$res(E012有 $E_num个,E开头行有$E_total个,故$res)";
以上假设命令行文件读取,可以参照自行修改
再问: 谢谢你,新年快乐。。 #!usr/bin/perl -W open IN,"E文件.txt"; open OUT,">E结果文件.txt"; my $E_num = 0; my $E_total = 0; my $res = 0; while (){ if ($_ =~m/^E012.*?/g) { $E_num = $E_num + 1; print OUT $_; } if ($_ = ~m/^E.*?/g) { $E_total = $E_total +1; } } $res = $E_num/$E_total; print OUT "占据率:$res";
再答: 这个有点小错误:修改下吧! 1.open OUT,">E结果文件.txt";这句改成 open OUT,">>E结果文件.txt"; 2.while (){ 这句改成 while (){ 最后关闭文件: close(IN); close(OUT);
 
 
展开全文阅读
剩余:2000
上一页:求补英语