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

my $inputfile=$ARGV[0];

open (INPUT_FILE,$inputfile);

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

my %matrix1;
my %matrix2;

my $temp1=0;
my $var1=0;
my $var2=0;my $var2b=0;
my $var3=0;
my $var4=0;my $var5=0;

while(my $line1=<INPUT_FILE>)  
 {   
     @{$matrix1{$temp1}}=split(/\s/,$line1);
      
         
          @{$matrix2{$temp1}}=split(/\,/,${$matrix1{$temp1}}[7]); 
              $var1=scalar(@{$matrix2{$temp1}});
            
        for (my $j=0; $j<$var1; $j++ )
          {
            if ( ${$matrix1{$temp1}}[1] =~/\+/)
              {
             if (( ${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:T\>C/ig ))
            {  }
          elsif ( (${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:T\>A/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:T\>G/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:A\>T/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:A\>C/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:A\>G/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:C\>A/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:C\>T/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:C\>G/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:G\>A/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:G\>T/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:G\>C/ig ))
           { $var2b++;}
              }
           elsif ( ${$matrix1{$temp1}}[1] =~/\-/)
             {
             if (( ${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:A\>G/ig ))
            { }
          elsif ( (${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:T\>A/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:T\>G/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:A\>T/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:A\>C/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:T\>C/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:C\>A/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:C\>T/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:C\>G/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:G\>A/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:G\>T/ig )||(${$matrix2{$temp1}}[$j] =~/(\d{1,6})\:G\>C/ig ))
           { $var2b++;}
              }
      }
            if ($var2b <=1 )
   {
  print file2 "${$matrix1{$temp1}}[0]\t${$matrix1{$temp1}}[1]\t${$matrix1{$temp1}}[2]\t${$matrix1{$temp1}}[3]\t${$matrix1{$temp1}}[4]\t${$matrix1{$temp1}}[5]\t${$matrix1{$temp1}}[6]\t${$matrix1{$temp1}}[7]\n";
           if (${$matrix1{$temp1}}[6]==0)
 { print file2b "${$matrix1{$temp1}}[0]\t${$matrix1{$temp1}}[1]\t${$matrix1{$temp1}}[2]\t${$matrix1{$temp1}}[3]\t${$matrix1{$temp1}}[4]\t${$matrix1{$temp1}}[5]\t${$matrix1{$temp1}}[6]\t${$matrix1{$temp1}}[7]\n"; }
   }
           
      $var2b=0;
undef %matrix1;
undef %matrix2;
   $temp1++;
 }

close (file2);
          
