计算等位基因频率

给一个基因型分布表,计算出每个等位基因的频率。

>cat gene.txt
image.png

代码如下:

#!/usr/bin/perl
use strict;
use Data::Dumper;
#my ($a,$b) = @ARGV;
$a='gene.txt';
#$b = 'hweout_rs';
my %hash;
open A,"$a" or die;
my $head = <A>;
chomp $head;
my @line1=split/\t/,$head;
while(<A>){
    chomp;
    my @t=split/\t/,$_;
    for my $i (1 .. $#t){
        my @geno = split//,$t[$i];
        my @st = sort{$a cmp $b } @geno;
        my $nsc=$st[0].$st[1];
        $hash{$line1[$i]}{$st[0]} +=1;
        $hash{$line1[$i]}{$st[1]} +=1;
    }
}
#print Dumper(\%hash);
for my $rs(sort keys %hash){
    for my $key(sort keys %{$hash{$rs}}){
        print "$rs\t$key\t$hash{$rs}{$key}\n";
    }
}

要得到频率,只需将得到的频数除以总数。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 上一章 文/踏歌娘 红衣少女拿着酒瓶子预备从男青年的臂弯里出来。 她拧了拧身子,似有些清醒的眨眨眼:“好了,她走了...
    踏歌娘阅读 70,978评论 21 77
  • 时间的脚步似乎总快了很多,等你一晃过神来,端午小长假已过2天了。 翻看着自己曾经写过的QQ日志,我看到了2016年...
    Yoian阅读 342评论 0 0
  • 这世上最完备的逻辑 就是我喜欢你 所以我喜欢你
    罗不息阅读 113评论 0 0
  • 只要不是在她这个办公室上班,一切都好。昨晚因为图她的画,一个人不知道坐了几个小时,脑子里像演电影一样,过了一场又一...
    大大大栗子阅读 167评论 0 0