use strict;
my $dir= $ARGV[0];
open(IN1,"adition_map")||die "can not open adition_map";
open(OUT2,">$dir");
my %splice_map;
while(<IN1>)
{
	my $line=$_;
	chomp($line);	
	my @temp=split(/\t/,$line);
	$temp[0]=~/read(\d+)/;	
	my $key=$1;
	if($splice_map{"$key"})
	{$splice_map{"$key"}=$line." mutli_map";
		}
		else{		
			$splice_map{"$key"}=$line;			
			}
}
foreach my $key(keys (%splice_map))
		{
			my $readmap=$splice_map{"$key"};

				my @temp=split(/\t/,$readmap);
			 $temp[2]=~/(\d+)\.\.(\d+)/;
			 my $fl=$1;
			 my $f2=$2;
			 $temp[1]=~/(\(\d+\,\d+\)\(\d+\,\d+\))/;
			 my $loc=$1;
			 my $seed=$f2-$fl+1;
			 $loc=~s/\,/\.\./g;
			 my $loc2=getloc($loc,$fl,$seed);
			 $loc2=~/\((\d+)\.\.(\d+)\)\((\d+)\.\.(\d+)\)/;
			 $temp[1]=~/(NC\_\d+)/;
			 $temp[1]=$1;
					print OUT2 "$temp[0]\t$temp[1]\t$loc2\t$temp[3]\t$temp[4]\t$temp[5]\n";
			}
		

sub getloc()
{
	my($loc,$f,$seed)=@_;
my	@a=split(/\)/,$loc);
	 $loc="";
	my @b;
	foreach my $a(@a)
	{
		$a=~/(\d+)..(\d+)/;
				push(@b,$1,$2);
			}
			my $m=@b;
			for(my $n=0;$n<$m;$n=$n+2)
			{
				my $ff=$f+$b[$n]-1;
				if($ff+$seed-1<=$b[$n+1])
				{
					my $ll=$ff+$seed-1;
					$loc="($ff..$ll)";
					return $loc;
					#print OUT "$loc";
					last;
				}
				elsif($ff<=$b[$n+1] and ($ff+$seed-1)>$b[$n+1])
				{
					my $c=$b[$n+2]+$seed-2+$ff-$b[$n+1];
					$loc="($ff..$b[$n+1])($b[$n+2]..$c)";
					return $loc;
				#	print OUT "$loc";
					last;
				}
				$f=$f-$b[$n+1]+$b[$n]-1;
			}
}