#!/usr/bin/perl -w
use strict;
use File::Basename;
use Getopt::Std;
my $PROGRAM = basename $0;
my $USAGE=
"Usage: $PROGRAM
";

my %OPT;
getopts('', \%OPT);

# read
-t and die $USAGE;
my %DOMAIN = ();
while (<STDIN>) {
    chomp;
    my ($cluster, $gene, $domain, $start, $end) = split;
    $DOMAIN{$gene}{$domain}{start} = $start;
    $DOMAIN{$gene}{$domain}{end} = $end;
    $DOMAIN{$gene}{$domain}{line} = $_;
}

# check
for my $gene (sort {$a cmp $b} keys %DOMAIN) {
    my @domains = sort {$a<=>$b} keys %{$DOMAIN{$gene}};
    if (@domains == 1) {
	unless ($domains[0] == 0
		# || $domains[0] == 1
	    ) {
	    print "one domain\n";
	    print ">", $DOMAIN{$gene}{$domains[0]}{line}, "\n";
	}
	if ($DOMAIN{$gene}{$domains[0]}{start} != 1) {
	    print "start is not 1\n";
	    print ">", $DOMAIN{$gene}{$domains[0]}{line}, "\n";
	}
    } else {
	for (my $i=0; $i<@domains; $i++) {
	    if ($domains[$i] != $i+1) {
		print $i+1, "th domain\n";
		print ">", $DOMAIN{$gene}{$domains[$i]}{line}, "\n";
	    }
	    if ($i == 0) {
		if ($DOMAIN{$gene}{$domains[0]}{start} != 1) {
		    print "start is not 1\n";
		    print ">", $DOMAIN{$gene}{$domains[0]}{line}, "\n";
		}
	    } else {
		if ($DOMAIN{$gene}{$domains[$i-1]}{end} + 1 != $DOMAIN{$gene}{$domains[$i]}{start}) {
		    print "distance = ", $DOMAIN{$gene}{$domains[$i]}{start} - $DOMAIN{$gene}{$domains[$i-1]}{end} -1, "\n";
		    print ">", $DOMAIN{$gene}{$domains[$i-1]}{line}, "\n";
		    print ">", $DOMAIN{$gene}{$domains[$i]}{line}, "\n";
		}
	    }
	}
    }
}
