#!/bin/perl
#use warnings;
#use strict;
#DBV2SVN1_8_4su_4_CSDA_1110	+	chr9	99237311	GTTCTACAGTCCGACGATC	Z\_ceeeefgfeghiiafg	0	6:G>C,7:T>A,18:A>C
#QSEQ241.123 DJG6PNM1:1:1101:3345:1985#0/1 PF=1 length=51	-	chr2	31069168	GATCGTCGGACTGTAGAAC	JJJJJJHHHHHFFFFFCB?	0	11:T>G,14:T>G
my $inputfile=$ARGV[0]; #transcript
my $inputfile2=$ARGV[1];

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

my %matrix1;my %matrix2;
my @matrixtest1;
my @matrixtest2;
my @matrixtest3;
my $var1=0;my $var=0;
my $var2=0;
my $var3=0;

open (INPUT_FILE,$inputfile);
while(my $line1=<INPUT_FILE>)
  { 
  @{$matrix1{$var}}=split(/\s/,$line1);
  @matrixtest1=split((/\,/,${$matrix1{$var}}[10]));
  $var1=scalar(@matrixtest1);
  if ($var1>3)
  {}
  elsif (($var1==3)&&(${$matrix1{$var}}[4]=~/\+/))
  {
    @matrixtest2=split(/\d{1,2}\:T\>C\,/,${$matrix1{$var}}[10]);
    my $scale=scalar(@matrixtest2);my @matrixtest3=split(//,${$matrix1{$var}}[7]);my $scale2=scalar(@matrixtest3);
    if ((${$matrix1{$var}}[9] eq 0)&&($scale eq 3))
     { $var2=${$matrix1{$var}}[6]+$scale2;
print file2 "${$matrix1{$var}}[5]\t${$matrix1{$var}}[6]\t$var2\t${$matrix1{$var}}[9]\t${$matrix1{$var}}[10]\t${$matrix1{$var}}[4]\n";
     }
   }
  elsif (($var1==3)&&(${$matrix1{$var}}[4]=~/\-/))
  {
    @matrixtest2=split(/\d{1,2}\:A\>G\,/,${$matrix1{$var}}[10]);
    my $scale=scalar(@matrixtest2);my @matrixtest3=split(//,${$matrix1{$var}}[7]);my $scale2=scalar(@matrixtest3);
    if ((${$matrix1{$var}}[9] eq 0)&&($scale eq 3))
     { $var2=${$matrix1{$var}}[6]+$scale2;
print file2 "${$matrix1{$var}}[5]\t${$matrix1{$var}}[6]\t$var2\t${$matrix1{$var}}[9]\t${$matrix1{$var}}[10]\t${$matrix1{$var}}[4]\n";
     }
   }
  elsif (($var1==2)&&(${$matrix1{$var}}[4]=~/\+/)&&(${$matrix1{$var}}[10]=~/\d{1,2}\:T\>C/)&&(${$matrix1{$var}}[9] eq 0))
    { my @matrixtest3=split(//,${$matrix1{$var}}[7]);my $scale2=scalar(@matrixtest3);$var2=${$matrix1{$var}}[6]+$scale2;
print file2 "${$matrix1{$var}}[5]\t${$matrix1{$var}}[6]\t$var2\t${$matrix1{$var}}[9]\t${$matrix1{$var}}[10]\t${$matrix1{$var}}[4]\n";
    }
elsif (($var1==2)&&(${$matrix1{$var}}[4]=~/\-/)&&(${$matrix1{$var}}[10]=~/\d{1,2}\:A\>G/)&&(${$matrix1{$var}}[9] eq 0))
    { my @matrixtest3=split(//,${$matrix1{$var}}[7]);my $scale2=scalar(@matrixtest3);$var2=${$matrix1{$var}}[6]+$scale2;
print file2 "${$matrix1{$var}}[5]\t${$matrix1{$var}}[6]\t$var2\t${$matrix1{$var}}[9]\t${$matrix1{$var}}[10]\t${$matrix1{$var}}[4]\n";
    }
 elsif (($var1<2)&&(${$matrix1{$var}}[9] eq 0))
   {my @matrixtest3=split(//,${$matrix1{$var}}[7]);my $scale2=scalar(@matrixtest3);$var2=${$matrix1{$var}}[6]+$scale2;
    print file2 "${$matrix1{$var}}[5]\t${$matrix1{$var}}[6]\t$var2\t${$matrix1{$var}}[9]\t${$matrix1{$var}}[10]\t${$matrix1{$var}}[4]\n";
   }
  }
