use strict;
open (COUNTS,"<".$ARGV[0])||die "cannot open $ARGV[0]";

my $chr = $ARGV[1];
my @experiments;
my %SNPs = ();

while (<COUNTS>){
    chomp;
    if ($_=~m/^SNP_id/){
	print "Transcript\tExon\tSNPs";
	my @line = split ("\t",$_);
	@experiments=@line[4..$#line-2];
	for (my $i=0;$i<=$#experiments;$i+=2){
	    @experiments[$i]=~m/.+(I\d{2}-\d{4}-\d{2}[_-]\w+).*/;
	    my $nicename = $1."_129/cast";
	    print "\t",$nicename;
	}
	print "\n";
	next;
    }
    if ($_=~m/^>\d+(_\w+)\t$chr\t(\d+)/){
	my ($pos_strain)=($2.$1);
	my @line = split ("\t",$_);
	next if ((@line[$#line-1]<0)||(@line[$#line]<0)); #DO NOT STORE IF ALLELE COUNTS ARE LESS THAN 1
	$SNPs{$pos_strain}=[@line[4..$#line-2]];
#	print $pos_strain,"  ",join (" ",@{$SNPs{$pos_strain}}),"\n";
#	exit;
    }
}
while (<STDIN>){
    chomp;
    my ($transcript,$exNum,$exSNPs)=split ("\t",$_);
    print "$transcript\t$exNum";
    my %AllPerexp;

    if ( !$exSNPs){
	print "\n";
	next;
    }
    my @valSNP;
    foreach my $snp (split " ",$exSNPs){
	next if ( ! $SNPs{$snp});
	push (@valSNP,$snp);
    	my $exp=0;	
	for (my $i=0;$i<$#{$SNPs{$snp}};$i+=2){
	    #print join("/",@{$SNPs{$snp}}[$i,$i+1]),"\t";
	    $exp++;
	    push @{$AllPerexp{$exp}},join("/",@{$SNPs{$snp}}[$i,$i+1]);
	}
	#print "\n";
	
    }
    print "\t",join(" ",@valSNP);
    foreach my $exp (sort {$a <=>$b} keys %AllPerexp){
	print "\t",join(",",@{$AllPerexp{$exp}});
    }
    print "\n";
}

