作业帮 > 综合 > 作业

求perl的统计程序,统计病毒序列中的ATCG总数,以及各个核苷酸所占比例【病毒DNA中有四种核苷酸,即ACTG】

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 11:44:04
求perl的统计程序,统计病毒序列中的ATCG总数,以及各个核苷酸所占比例【病毒DNA中有四种核苷酸,即ACTG】
我有从网站下载的源文件HA.fa,并且从中提取了时间和病毒序列放置到excel表格中了,时间和病毒序列对应分开了.
你是指,直接从fa文件里面提取计算,还是从excel啊?
fa比较容易
再问: 能直接从.fa里提取也好,结果是前边是时间,后边是ATCG的总数和各自所占比例,分数表示。以一个txt的文件输出结果
再答: 不知道你的时间指什么 恐怕明天才有时间帮你了
再问: 能否加你QQ,我的491615964,真心求助!
再答: #!/usr/bin/perl # Date: 2011-11-21 15:27:35 # 按下面测试下吧,最后那个hash具备了所有统计能力,你需要具体什么格式,说明了,再输出 use strict; use warnings; use Data::Dumper; open FH, "chr9.fa" || die $!; my %seqHash = (); my $curSeq; while () { next if /^\s*$/; chomp; if (/^>/) { $curSeq = $_; $seqHash{$curSeq} = ""; }else { $_ = uc($_); $seqHash{$curSeq} .= $_; } } close FH; print Dumper %seqHash; my %numHash = (); while(my($key, $value) = each %seqHash) { $numHash{$key}->{"A"} = $value=~s/A//g; $numHash{$key}->{"T"} = $value=~s/T//g; $numHash{$key}->{"C"} = $value=~s/C//g; $numHash{$key}->{"G"} = $value=~s/G//g; print $value."\n"; } print Dumper %numHash;