#usage cat CountsOverSNPSperExonExperiments/* |perl transcriptCountPerExp.pl 
use strict;
my %transcripts;
my @experiments;

while (<STDIN>){
    chomp;
    if (($_=~m/^Transcript\tExon\tSNPs/)&&(!@experiments)){
	my @header= split ("\t",$_);
	foreach my $exp (@header[3..$#header]){
	    $exp=~s/_129\/cast//;
	    push @experiments,$exp;
	}
    }

    my @line=split ("\t",$_);
    foreach (my $exp=0;$exp<=$#experiments;$exp++){
	$transcripts{@experiments[$exp]}{@line[0]}{@line[1]}=@line[$exp+3];
    }
}
foreach my $exp (keys %transcripts){
    open (OUT,">SNPCountPerExp/".$exp."TrSNPCounts3.txt");
    foreach my $tr (sort keys %{$transcripts{$exp}}){
	my @ExonSNPdata; #full snp data for all exons in a transcript
	my @exAlls;#list of allele Counts per exon 
	my ($alleleA,$alleleB)=(0,0);
	foreach my $exon (sort {$a<=>$b} keys %{$transcripts{$exp}{$tr}}){
	    my %exAlls;#allele Counts per exon
	    push @ExonSNPdata,$exon."_".$transcripts{$exp}{$tr}{$exon};
	    while ($transcripts{$exp}{$tr}{$exon} =~m/(\d+)\/(\d+)/g){
		$alleleA+=$1;
		$alleleB+=$2;
		$exAlls{'A'}+=$1;
		$exAlls{'B'}+=$2;
	    }
	    next if ((! $exAlls{'A'})&&(! $exAlls{'B'}));
	    push @exAlls, $exon."_".$exAlls{'A'}."/".$exAlls{'B'};
	}

	print OUT $tr,"\t",$alleleA,"/",$alleleB,"\t",join ("#",@ExonSNPdata),"\t",join ("#",@exAlls),"\n";
    }
    close (OUT);
}
