#!/usr/bin/env perl

# Autor:	Katrin Grothaus
# Bestimmung der relativen Lage von CGIs zu Retrogenen Kapitel 2.2.5
# Eingabe: 	CGI-Datei 
#			Gen-Datei 

# Aufruf: 	perl Bestimmung_rel_Lage_CGI_retrogen.pl <CGI-Datei> <Gen-Datei>

use warnings;
use strict;

# Variablen für die Eingabedateien
my $infile_cgi=$ARGV[0];
my $infile_gene=$ARGV[1];

# Variablen für die Ausgabedateien
my $outfile_cgi_wretro="CGIs_with_retrogene_".$infile_cgi;
my $outfile_retro_wcgi="retro_with_cgi_".$infile_gene;

# benötigte Variablen für die unterschiedlichen Berechnungen und Parameter
my @cgis;
my @genes;

# Einlesen der Gen-Datei in ein Array
open(IN2, $infile_gene) or die "Can't open file: $!\n";
	@genes= <IN2>;
close IN2;

# Öffnen der Ausgabedateien zum Schreiben
open(OUTW,">".$outfile_cgi_wretro);
open(OUTWC,">".$outfile_retro_wcgi);

# Einlesen der CGI-Datei zeilenweise mit Aufsplitten jeder Zeile in die unterschiedlichen Variablen
open(IN, $infile_cgi) or die "Can't open file: $!\n";
while(<IN>){
	my $cgi = $_;
	my @values_cgi = split('\t',$cgi);
	
	my $cgi_name=$values_cgi[0];
	my $cgi_chr=$values_cgi[2];
	my $cgi_Start=$values_cgi[3];
	my $cgi_End=$values_cgi[4];
	# Vergleich CGI mit der Gen-Liste 
	for (my $i=0;$i<@genes;$i++){
		my $gene=$genes[$i];
		my @values_gene=split('\t',$gene);
		my $gene_name=$values_gene[0];
		my $gene_chr=$values_gene[1];
		my $gene_Start=$values_gene[2];
		my $gene_End=$values_gene[3];
		chomp($cgi);
		if($gene_chr eq $cgi_chr){
			if ((($cgi_Start>=$gene_Start) && ($cgi_Start<=$gene_End))||(($cgi_Start<=$gene_Start) && ($cgi_End>=$gene_End))||(($cgi_End>=$gene_Start) && ($cgi_End<=$gene_End))){
			# Ausgabe
			print OUTW $cgi."\t".$gene;
			print OUTWC $gene;
			}
		}
	
	#ENDE Vergleich CGI mit der Genliste
	}
	
# while(<IN>) ENDE
}
close(IN);
close(OUTW);
close(OUTWC);


