#!/usr/bin/perl
$dir="D:/cagenome/consig/package"; #directory
$output="Final_ConSigScore.xls"; #output file
$mutationconsig="CGC_Mutation_2008-11-05.id.ConsigScore"; #file for mutation consig score
$fusionconsig="Mitelman2008.all.id.ConsigScore"; #file for fusion consig score
$k=1.67;
open (A,"$dir/$mutationconsig");
while ()
{
chomp;
my @l=split(/\t/);
$d{"$l[1]"}="$l[3]";
$kd{"$l[1]"}="$l[2]";
}
open (A,"$dir/$fusionconsig");
while ()
{
chomp;
my @l=split(/\t/);
$r{"$l[1]"}="$l[3]";
$kr{"$l[1]"}="$l[2]";
}
open (RE,">$dir/$output");
print RE "GeneSym\tGeneID\tKnown_Fusion\tFusion_ConSig\tKnown_Mutation\tMutation_ConSig\trConSig\tdConSig\n";
open (A,"$dir/genesym2id.hs");
while ()
{
chomp;
my @l=split(/\t/);
if ($r{$l[1]}<$d{$l[1]}*$k)
{
$distance=-distance($d{$l[1]},$r{$l[1]},$k);
}
elsif ($r{$l[1]}>=$d{$l[1]}*$k)
{
$distance=1*distance($d{$l[1]},$r{$l[1]},$k);
}
print RE "$_\t",$kr{"$l[1]"},"\t",$r{"$l[1]"},"\t",$kd{"$l[1]"},"\t",$d{"$l[1]"},"\t",($d{$l[1]}**2+$r{$l[1]}**2)**0.5,"\t",$distance,"\n";
}
print "done";
#calculate the distance between point (x,y) to the line y=kx
sub distance
{
my $x=$_[0];
my $y=$_[1];
my $k=$_[2];
my $d=abs($k*$x-$y)/($k**2+1)**0.5;
return $d;
}