=pod
Solutions to GRPH Rosalind problem
Author: Peter Vlasveld
=cut

#!/usr/bin/perl
use common::sense;

#take in data
open(IN, "rosalind_grph.txt") or die "Couldn't open input file";
my @data = <IN>;
close IN;

#declare variables
my (@headers, @DNA, @result);
my $temp = "";

#convert FASTA data into array of DNA strings and headers
for (@data){
	unless (substr($_,0,1) eq '>'){
		$temp .= substr($_,0,-1);	
	} else {
		push @headers, substr($_,0,-1);
		push @DNA, $temp;
		$temp = "";
	}
}
push @DNA, $temp;
shift @DNA;
#print @headers,"\n",@DNA,"\n";

#write which headers overlap to @result
for my $i (0..$#DNA){
	for my $j (0..$#DNA){
		print "$DNA[$i]$DNA[$j]\n";
		if ($DNA[$i] eq $DNA[$j]) { next; }
		elsif (substr($DNA[$i],-3) eq substr($DNA[$j],0,3)){
			push @result, substr($headers[$i],1)." ".substr($headers[$j],1);
		}
	}
}

#print result to file
open(OUT, ">output.txt") or die "Couldn't open output file";
for (@result){
	print OUT $_,"\n";
}
close OUT;