#!/bin/perl
use warnings;
use strict;

my $inputfile=$ARGV[0];
my $inputfile2=$ARGV[1];

open (INPUT_FILE,$inputfile);

open (file2,">$inputfile2.bed") or die "$!\n";

my %matrix1;
my %matrix2;
my %matrix3;

my $temp1=0;
my $temp2=0;
my $temp3=0;

my $var1=0;
my $var2=0;
my $var3=0;
my $var4=0;
my $var5=0;
my $var6=0;
my $var7=1;
my $var8=0;
my $var9=0;
my $var10=0;

while(my $line1=<INPUT_FILE>)  
 {   
     @{$matrix1{$temp1}}=split(/\s/,$line1);
   
     $temp1++;
 }

for ( my $j=1; $j<$temp1; $j++)
 {   
    if ( (${$matrix1{$j-1}}[0] eq ${$matrix1{$j}}[0])&&(${$matrix1{$j-1}}[1] eq ${$matrix1{$j}}[1])&&(${$matrix1{$j-1}}[2] eq ${$matrix1{$j}}[2])&&(${$matrix1{$j-1}}[3] eq ${$matrix1{$j}}[3]))
       {   
         $var3=${$matrix1{$j-1}}[9];$var7++;
         $var5=$var3+$var5;        
       }
   elsif ((${$matrix1{$j-1}}[0] ne ${$matrix1{$j}}[0])&&(${$matrix1{$j-1}}[1] ne ${$matrix1{$j}}[1])&&(${$matrix1{$j-1}}[2] ne ${$matrix1{$j}}[2])&&(${$matrix1{$j-1}}[3] ne ${$matrix1{$j}}[3])&&(${$matrix1{$j+1}}[3] eq ${$matrix1{$j}}[3])&&(${$matrix1{$j+1}}[0] eq ${$matrix1{$j}}[0])&&(${$matrix1{$j+1}}[1] eq ${$matrix1{$j}}[1])&&(${$matrix1{$j+1}}[2] eq ${$matrix1{$j}}[2]))
   {
     $var3=${$matrix1{$j-1}}[9];
         $var5=$var3+$var5;$var8=$var5/$var7; 
print file2 "${$matrix1{$j-1}}[0]\t${$matrix1{$j-1}}[1]\t${$matrix1{$j-1}}[2]\t${$matrix1{$j-1}}[3]\t${$matrix1{$j-1}}[4]\t${$matrix1{$j-1}}[5]\t${$matrix1{$j-1}}[6]\t${$matrix1{$j-1}}[7]\t${$matrix1{$j-1}}[8]\t$var5\t${$matrix1{$j-1}}[10]\t${$matrix1{$j-1}}[11]\n";
     $var5=0;$var6=0;$var8=0;$var9=0;$var7=1;$var10=0;
   }

   elsif ((${$matrix1{$j-1}}[0] ne ${$matrix1{$j}}[0])&&(${$matrix1{$j-1}}[1] ne ${$matrix1{$j}}[1])&&(${$matrix1{$j-1}}[2] ne ${$matrix1{$j}}[2])&&(${$matrix1{$j-1}}[3] ne ${$matrix1{$j}}[3])&&(${$matrix1{$j+1}}[3] ne ${$matrix1{$j}}[3])&&(${$matrix1{$j+1}}[0] ne ${$matrix1{$j}}[0])&&(${$matrix1{$j+1}}[1] ne ${$matrix1{$j}}[1])&&(${$matrix1{$j+1}}[2] ne ${$matrix1{$j}}[2]))
        {   
$var3=${$matrix1{$j-1}}[9];
         $var5=$var3+$var5;$var8=$var5/$var7; 
print file2 "${$matrix1{$j-1}}[0]\t${$matrix1{$j-1}}[1]\t${$matrix1{$j-1}}[2]\t${$matrix1{$j-1}}[3]\t${$matrix1{$j-1}}[4]\t${$matrix1{$j-1}}[5]\t${$matrix1{$j-1}}[6]\t${$matrix1{$j-1}}[7]\t${$matrix1{$j-1}}[8]\t$var5\t${$matrix1{$j-1}}[10]\t${$matrix1{$j-1}}[11]\n";
     $var5=0;$var6=0;$var8=0;$var9=0;$var7=1;$var10=0;

$var3=${$matrix1{$j}}[9];
print file2 "${$matrix1{$j}}[0]\t${$matrix1{$j}}[1]\t${$matrix1{$j}}[2]\t${$matrix1{$j}}[3]\t${$matrix1{$j}}[4]\t${$matrix1{$j}}[5]\t${$matrix1{$j}}[6]\t${$matrix1{$j}}[7]\t${$matrix1{$j}}[8]\t$var3\t${$matrix1{$j}}[10]\t${$matrix1{$j}}[11]\n";
        }
   else
       {   
$var3=${$matrix1{$j-1}}[9];
         $var5=$var3+$var5;$var8=$var5/$var7; 
print file2 "${$matrix1{$j-1}}[0]\t${$matrix1{$j-1}}[1]\t${$matrix1{$j-1}}[2]\t${$matrix1{$j-1}}[3]\t${$matrix1{$j-1}}[4]\t${$matrix1{$j-1}}[5]\t${$matrix1{$j-1}}[6]\t${$matrix1{$j-1}}[7]\t${$matrix1{$j-1}}[8]\t${$matrix1{$j-1}}[9]\t$var5\t${$matrix1{$j}}[11]\n";

     $var5=0;$var6=0;$var8=0;$var9=0;$var7=1;$var10=0;
$var3=${$matrix1{$j}}[9];

print file2 "${$matrix1{$j}}[0]\t${$matrix1{$j}}[1]\t${$matrix1{$j}}[2]\t${$matrix1{$j}}[3]\t${$matrix1{$j}}[4]\t${$matrix1{$j}}[5]\t${$matrix1{$j}}[6]\t${$matrix1{$j}}[7]\t${$matrix1{$j}}[8]\t$var3\t${$matrix1{$j}}[10]\t${$matrix1{$j}}[11]\n";
        }
}
close(file2);
    

