<vdb name="oncomx_federation"  version="1">
   <model visible="false" name="easybgee_v14_2">
        <source name="easybgee_v14_2" translator-name="mysql5" connection-jndi-name="java:/easybgee_v14_2"/>
        <metadata type="NATIVE"></metadata> 
      </model>
    <!-- anatomical_entity table view is not properly working (text to clob datatype issue) with mysql5, prefer to use the integrated table within oncomx_v1_0_25 model defined below-->
    <model visible="true" type="VIRTUAL" name="oncomx_bgee">
        <source name="easybgee_v14_2" translator-name="mysql5" connection-jndi-name="java:/easybgee_v14_2"/>
        <metadata type="DDL"><![CDATA[
            CREATE VIEW species (
             speciesId long NOT NULL OPTIONS (ANNOTATION 'NCBI species taxon id', NAMEINSOURCE '"speciesId"', NATIVE_TYPE 'MEDIUMINT UNSIGNED'),
            genus string(70) NOT NULL OPTIONS (ANNOTATION 'Genus name', NAMEINSOURCE '"genus"', NATIVE_TYPE 'VARCHAR'),
            species string(70) NOT NULL OPTIONS (ANNOTATION 'Species name', NAMEINSOURCE '"species"', NATIVE_TYPE 'VARCHAR'),
            speciesCommonName string(70) DEFAULT '' OPTIONS (ANNOTATION 'NCBI species common name', NAMEINSOURCE '"speciesCommonName"', NATIVE_TYPE 'VARCHAR')  )
             AS SELECT speciesId, genus, species, speciesCommonName FROM easybgee_v14_2.species 
             WHERE speciesId in (9606,10090);

            CREATE VIEW xref_gene_ensembl (
              gene_symbol string(255) NOT NULL OPTIONS (NAMEINSOURCE '"gene_symbol"', NATIVE_TYPE 'varchar'),
              ensembl_gene_id string(20) NOT NULL OPTIONS (NAMEINSOURCE '"ensembl_gene_id"', NATIVE_TYPE 'varchar'),
              speciesId long NOT NULL OPTIONS (NAMEINSOURCE '"speciesId"', NATIVE_TYPE 'int4'))       
             AS SELECT geneName as gene_symbol, geneId as ensembl_gene_id,  speciesId FROM easybgee_v14_2.gene WHERE speciesId in (9606,10090);

             CREATE VIEW stage (
              id string(20) NOT NULL OPTIONS (ANNOTATION 'Developmental stage id', NAMEINSOURCE '"stageId"', NATIVE_TYPE 'VARCHAR'),
              name string(255) NOT NULL OPTIONS (ANNOTATION 'Developmental stage name', NAMEINSOURCE '"stageName"', NATIVE_TYPE 'VARCHAR'))       
             AS
              SELECT st.stageId as id, stageName as name FROM easybgee_v14_2.stage as st JOIN easybgee_v14_2.globalCond as cond ON st.stageId=cond.stageId WHERE speciesId in (9606,10090) ;

            CREATE VIEW healthy_expression (
        ensembl_gene_id string(20) NOT NULL OPTIONS (NAMEINSOURCE '"ensembl_gene_id"', NATIVE_TYPE 'varchar'),
        uberon_anatomical_id string(20) NOT NULL OPTIONS (NAMEINSOURCE '"uberon_anatomical_id"', NATIVE_TYPE 'varchar'),
        uberon_developmental_id string(14) NOT NULL OPTIONS (NAMEINSOURCE '"uberon_developmental_id"', NATIVE_TYPE 'varchar'),
        expression_level_gene_relative string(6) NOT NULL OPTIONS (NAMEINSOURCE '"expression_level_gene_relative"', NATIVE_TYPE 'varchar'),
        expression_level_anatomical_relative string(6) NOT NULL OPTIONS (NAMEINSOURCE '"expression_level_anatomical_relative"', NATIVE_TYPE 'varchar'),
        call_quality string(6) NOT NULL OPTIONS (NAMEINSOURCE '"call_quality"', NATIVE_TYPE 'varchar'),
        expression_rank_score bigdecimal(9,2) NOT NULL OPTIONS (NAMEINSOURCE '"expression_rank_score"', NATIVE_TYPE 'numeric'),
        expression_score bigdecimal(9,5) NOT NULL OPTIONS (NAMEINSOURCE '"expression_score"', NATIVE_TYPE 'numeric'))       
             AS
              SELECT geneId as ensembl_gene_id,   anatEntityId as uberon_anatomical_id,  stageId as uberon_developmental_id, CASE callType when 'NOT_EXPRESSED' then 'ABSENT' ELSE  'EXPRESSED'  END AS expression_level_gene_relative, CASE callType when 'NOT_EXPRESSED' then 'ABSENT' ELSE  'EXPRESSED'  END AS expression_level_anatomical_relative,
              summaryQuality as call_quality,  rank  as expression_rank_score,  score as expression_score
              FROM easybgee_v14_2.globalExpression AS ge JOIN easybgee_v14_2.globalCond AS cond 
              ON ge.globalConditionId=cond.globalConditionId JOIN easybgee_v14_2.gene as g ON g.bgeeGeneId=ge.bgeeGeneId WHERE g.speciesId in (9606,10090) ;

        CREATE VIEW anatomical_entity (
          id string(20) NOT NULL OPTIONS (NAMEINSOURCE '"id"', NATIVE_TYPE 'varchar'),
          name string(255) OPTIONS (ANNOTATION 'Anatomical entity name', NAMEINSOURCE '"name"', NATIVE_TYPE 'varchar'),
          description clob(65535) OPTIONS (ANNOTATION 'Anatomical entity description', NAMEINSOURCE '"description"', NATIVE_TYPE 'text') )       
             AS  
             SELECT anat.anatEntityId as id, anatEntityName as name,  anatEntityDescription as description
              FROM easybgee_v14_2.anatEntity as anat JOIN easybgee_v14_2.globalCond  as cond 
              ON anat.anatEntityId = cond.anatEntityId WHERE cond.speciesId in (9606, 10090);
            ]]> </metadata>
        <!--<metadata type="NATIVE"></metadata> --> 
      </model>
      
      <model visible="true" name="oncomx_v1_0_25">
        <property name="importer.tableTypes" value="TABLE,VIEW"/>
        <property name="importer.schemaName" value="oncomx_v1_0_25"/>
        <property name="importer.excludeTables" value="(.*_raw|.*healthy_expression|.*stage|.*species|.*xref_gene_ensembl)"/>
        <source name="oncomx_v1_0_25" translator-name="postgresql" connection-jndi-name="java:/oncomx_v1_0_25"/>
        <metadata type="NATIVE"></metadata>               
    </model>    
  </vdb>