The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!/usr/local/bin/perl
### oncoscan_to_spl.pl #########################################################################
#
 
### HISTORY #######################################################################################
# Version       Date            Coder   	Comments
# 1.0           2012/04/11      sgovind      	Versioning start point

### INCLUDES ######################################################################################
use warnings;
use strict;

use File::Basename;

### Global Variables ##############################################################################
my $input_file_path;
my $input_file_name;
my $output_directory;
my $output_file_name;

my $sample_code;
my $read_sample_code;

my $INPUT_FILE;
my $OUTPUT_FILE;

my $path;
my $suffix;

my $line;
my @line_data;

my @region_data;

my $chr;
my $start;
my $end;
### Sub-Methods ###################################################################################



### Main ##########################################################################################
my $ARGC = @ARGV;

if($ARGC != 3){
	die "ERROR: $ARGC arguments were provided, exactly 3 are expected\nInput File, Output Directory, OncoScan Sample Code\n";
	}

$input_file_path = $ARGV[0];
$output_directory = $ARGV[1];
$sample_code = $ARGV[2];

( $input_file_name, $path, $suffix ) = fileparse( $input_file_path, "\.[^.]*");


$output_file_name = $output_directory.$input_file_name.".spl";

print "$output_file_name\n";


open ($INPUT_FILE, "<", $input_file_path) or die "ERROR: could not open file at path $input_file_path\n";
open ($OUTPUT_FILE, ">", $output_file_name) or die "ERROR could not open file at path $output_file_name\n";

print $OUTPUT_FILE "#chr\tstart\tend\tquality";

$line = <$INPUT_FILE>;	#Read header line

while(!(eof($INPUT_FILE))){

	$line = <$INPUT_FILE>;

	@line_data = split(' ',$line);

	if(!($line_data[0] =~ m/^(.*)_(.*)/)){
		warn "ERROR sample code was invalid\n";
		}

	$read_sample_code = $2;

	if($read_sample_code ne $sample_code){
		next;
		}

	if($line_data[2] ne 'LOH'){
		next;
		}

	@region_data = split(/:|-/,$line_data[1]);

	if(!($region_data[0] =~ m/^(chr)?(.*)/)){
		die "ERROR chr entry was invalid\n";
		}
	$chr = $2;

	$start = $region_data[1];
	$start =~ tr/,//d;

	$end = $region_data[2];
	$end =~ tr/,//d; 

	print $OUTPUT_FILE "\n";
	print $OUTPUT_FILE $chr;
	print $OUTPUT_FILE "\t";
	print $OUTPUT_FILE $start;
	print $OUTPUT_FILE "\t";
	print $OUTPUT_FILE $end;
	print $OUTPUT_FILE "\t";
	print $OUTPUT_FILE ".";
	}