Hi all,
I'm playing with the anonymous mysql server for ENSEMBL
mysql -h ensembldb.ensembl.org --port 5306  -u anonymous -D homo_sapiens_core_57_37b
and I'm trying to do some reverse engineering to see how the tables are linked (I've generated a DOT file mapping the foreign keys). I'm playing with 'my' protein ROXAN (http://www.ensembl.org/Homo_sapiens/Gene/Summary?g=ENSG00000100403)
I can get the record in the gene table for this protein:
mysql> select * from gene_stable_id as GSI,gene as G
       where GSI.stable_id ="ENSG00000100403" and
       G.gene_id=GSI.gene_id\G
*************************** 1. row ***************************
                gene_id: 55916
              stable_id: ENSG00000100403
                version: 9
           created_date: 2008-04-29 11:17:41
          modified_date: 2009-08-05 14:27:16
                gene_id: 55916
                biotype: protein_coding
            analysis_id: 8047
          seq_region_id: 27510
       seq_region_start: 41697526
         seq_region_end: 41756151
      seq_region_strand: 1
        display_xref_id: 16961747
                 source: ensembl
                 status: KNOWN
            description: zinc finger CCCH-type containing 7B [Source:HGNC Symbol;Acc:30869]
             is_current: 1
canonical_transcript_id: 146331
   canonical_annotation: NULL
1 row in set (0.07 sec)
I can also retrieve 5 records in XREF for the keyword "ROXAN".
mysql> select * from external_synonym as S,
       xref as X ,
       external_db as D
       where D.external_db_id=X.external_db_id and
       S.synonym="ROXAN"
       and X.xref_id=S.xref_id \G
*************************** 1. row ***************************
               xref_id: 298451
               synonym: RoXaN
               xref_id: 298451
        external_db_id: 2310
         dbprimary_acc: OTTHUMT00000337751
         display_label: OTTHUMT00000337751
               version: 2
           description: NULL
             info_type: NULL
             info_text: NULL
        external_db_id: 2310
               db_name: Vega_transcript
            db_release: 1
                status: KNOWNXREF
dbprimary_acc_linkable: 1
display_label_linkable: 0
              priority: 5
       db_display_name: Vega transcript
                  type: MISC
     secondary_db_name: NULL
    secondary_db_table: NULL
           description: NULL
*************************** 2. row ***************************
               xref_id: 16506778
               synonym: RoXaN
               xref_id: 16506778
        external_db_id: 1100
         dbprimary_acc: 30869
         display_label: ZC3H7B
               version: 0
           description: zinc finger CCCH-type containing 7B
             info_type: DIRECT
             info_text: Generated via havana
        external_db_id: 1100
               db_name: HGNC
            db_release: 1
                status: KNOWNXREF
dbprimary_acc_linkable: 1
display_label_linkable: 1
              priority: 100
       db_display_name: HGNC Symbol
                  type: PRIMARY_DB_SYNONYM
     secondary_db_name: NULL
    secondary_db_table: NULL
           description: NULL
*************************** 3. row ***************************
               xref_id: 15396769
               synonym: RoXaN
               xref_id: 15396769
        external_db_id: 1300
         dbprimary_acc: 23264
         display_label: ZC3H7B
               version: 0
           description: zinc finger CCCH-type containing 7B
             info_type: DEPENDENT
             info_text: NULL
        external_db_id: 1300
               db_name: EntrezGene
            db_release: 1
                status: KNOWNXREF
dbprimary_acc_linkable: 1
display_label_linkable: 0
              priority: 10
       db_display_name: EntrezGene
                  type: MISC
     secondary_db_name: NULL
    secondary_db_table: NULL
           description: NULL
*************************** 4. row ***************************
               xref_id: 16966653
               synonym: RoXaN
               xref_id: 16966653
        external_db_id: 12405
         dbprimary_acc: MPRIP-205
         display_label: MPRIP-205
               version: 0
           description: NULL
             info_type: MISC
             info_text: via havana
        external_db_id: 12405
               db_name: HGNC_automatic_transcript
            db_release: 1
                status: KNOWNXREF
dbprimary_acc_linkable: 1
display_label_linkable: 0
              priority: 5
       db_display_name: HGNC (automatic)
                  type: MISC
     secondary_db_name: NULL
    secondary_db_table: NULL
           description: NULL
*************************** 5. row ***************************
               xref_id: 16961747
               synonym: RoXaN
               xref_id: 16961747
        external_db_id: 12300
         dbprimary_acc: 30869
         display_label: ZC3H7B
               version: 0
           description: NULL
             info_type: MISC
             info_text: via havana
        external_db_id: 12300
               db_name: HGNC_curated_gene
            db_release: 1
                status: KNOWNXREF
dbprimary_acc_linkable: 1
display_label_linkable: 0
              priority: 5
       db_display_name: HGNC (curated)
                  type: MISC
     secondary_db_name: NULL
    secondary_db_table: NULL
           description: NULL
5 rows in set (0.17 sec)
I wish I could find the gene(s) from the keyword ROXAN.
OK, here I got 5 'xref' records and I know that gene is linked to xref via gene.displayxrefid=xref.xref_id . Xref can also have links to some other db (e.g. transcript), so I guess there is something in xref, something like a flag, telling that 'this' xref record is pointing to gene.
Is it true ? What is that flag ?
Thanks
Pierre