#! /usr/bin/env perl

use strict;
use warnings;
#hgnc_id	symbol	name	locus_group	locus_type	status	location	location_sortable	alias_symbol	alias_name	prev_symbol	prev_name	gene_family	gene_family_id	date_approved_reserved	date_symbol_changed	date_name_changed	date_modified	entrez_id	ensembl_gene_id	vega_id	ucsc_id	ena	refseq_accession	ccds_id	uniprot_ids	pubmed_id	mgd_id	rgd_id	lsdb	cosmic	omim_id	mirbase	homeodb	snornabase	bioparadigms_slc	orphanet	pseudogene.org	horde_id	merops	imgt	iuphar	kznf_gene_catalog	mamit-trnadb	cd	lncrnadb	enzyme_id	intermediate_filament_db

my @db = ();

# 0	hgnc_id
$db[0] = "hgnc";
# 18	entrez_id
$db[18] = "ncbigene";
# 19	ensembl_gene_id
$db[19] = "ensembl";
# 20	vega_id
# 21	ucsc_id
# 22	ena
$db[22] = "ena.embl";
# 23	refseq_accession
$db[23] = "refseq";
# 24	ccds_id
$db[24] = "ccds";
# 25	uniprot_ids
$db[25] = "uniprot";
# 26	pubmed_id
$db[26] = "pubmed";
# 27	mgd_id
$db[27] = "mgi";
# 28	rgd_id
$db[28] = "rgd";
# 29	lsdb
#####################$db[29] = "lrg";
# 30	cosmic
# 31	omim_id
$db[31] = "omim";
# 32	mirbase
$db[32] = "mirbase";
# 33	homeodb
# 34	snornabase
# 35	bioparadigms_slc
# 36	orphanet
$db[36] = "orphanet";
# 37	pseudogene.org
# 38	horde_id
# 39	merops
$db[39] = "merops";
# 40	imgt
# 41	iuphar
$db[41] = "iuphar.receptor";
# 42	kznf_gene_catalog
# 43	mamit-trnadb
# 44	cd
# 45	lncrnadb
# 46	enzyme_id
$db[46] = "ec";
# 47	intermediate_filament_db
#

while( my $line = <STDIN> ){
  if( $line =~ /hgnc_id/ ){
    next;
  }
  chomp( $line );
  my @data = split(/\t/, $line); 
  $data[0] = (split(/:/, $data[0]))[1];
  for( my $i=1; $i<48; $i++ ){
    if( ! $data[$i] ){
      next;
    }
    if( ! $db[$i] ){
      next;
    }
    if( $i eq 39 ){
      if( $data[$i] =~ /^[SCTAGMNU]\d+$/ ){
        $db[$i] = "merops.family";
      }elsif( $data[$i] =~ /^I\d{2}\.\d{3}$/ ){
        $db[$i] = "merops.inhibitor";
      }else{
        $db[$i] = "merops";
      }
    }
    if( $i eq 28 ){
      $data[$i] = (split(/:/, $data[$i]))[1];
    }
    if( $i eq 41 ){
      $data[$i] = (split(/:/, $data[$i]))[1];
    }
    if( $data[$i] =~ /\|/ ){
      $data[$i] =~ s/"//g;
      my @ids = split(/\|/, $data[$i]);
      foreach my $id (@ids){
        printf STDOUT "%s:%s\t%s:%s\n", $db[0], $data[0], $db[$i], $id;
      }
    }else{
      printf STDOUT "%s:%s\t%s:%s\n", $db[0], $data[0], $db[$i], $data[$i];
    }
  }
}
