#!/usr/bin/perl

# This script was originally written by Yontao Lu and was copied from
# /cluster/store4/ratMarker/code/ into the kent/src tree in order
# to get it under CVS control; added warnings & strict and some stderr 
# messages from the mouse version.  Added warning about multiple trueNames 
# for same alias; suppress self-alias.

# $Id: createStsAlias,v 1.2 2006/03/10 19:26:36 angie Exp $

use warnings;
use strict;

##Author Yontao Lu
##Date Jul 7 03
##Desc: This script will create the stsAlias file for alias search.

##read in info bed file
my %alias;
while(my $line = <>)
{
    chomp($line);
    my (@eles) = split(/\t/, $line);
    my (@alias) = split(/\;/, $eles[6]);
    if (length($eles[0]) < 1) {
	print STDERR "#\tERROR: no ucscId at line $.\n";
    }
    if (length($eles[1]) < 1) {
	print STDERR "#\tERROR: no trueName at line $.\n";
    }
    if (length($eles[6]) < 1) {
	print STDERR "#\tINFO: no alias for $eles[1] at line $.\n";
    }
    foreach my $ali (@alias)
    {
	if ($ali ne $eles[1]) {
	    print "$ali\t$eles[0]\t$eles[1]\n";
	}
	if (defined $alias{$ali}) {
	    $alias{$ali} .= ";$eles[1]";
	    print STDERR "#\tWARNING: multiple trueNames for alias $ali: " .
		$alias{$ali} . "\n";
	} else {
	    $alias{$ali} = $eles[1];
	}
    }
}
