<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to FBChado</title><link>https://sourceforge.net/p/virtualflybrain/wiki/FBChado/</link><description>Recent changes to FBChado</description><atom:link href="https://sourceforge.net/p/virtualflybrain/wiki/FBChado/feed" rel="self"/><language>en</language><lastBuildDate>Wed, 05 Jun 2013 16:56:20 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/virtualflybrain/wiki/FBChado/feed" rel="self" type="application/rss+xml"/><item><title>FBChado modified by David Osumi-Sutherland</title><link>https://sourceforge.net/p/virtualflybrain/wiki/FBChado/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -16,9 +16,11 @@
 __vfbview\_phenstatement\_feature__: Maps phenstatements to features (the mapping in chado is to whole genotypes.  There is a reasonable case for displaying full phenotypes instead - perhaps as part of a phenotype report.
 __vfbview\_feature\_synonym__: Links feature_ids directly to valid names and symbols and their synonyms in both ascii and unicode.  Not currently used - but plan to use this in future for: (a) Displaying unicode names for features; (b) Search and query on feature names+synonyms.  Note - this table may need some work to add keys indexes.

+[SQL script used to generate view tables](https://sourceforge.net/p/virtualflybrain/code/HEAD/tree/DataBase/trunk/Version1201TablesQueries/chado_views_for_vfb.sql)
+

 # Queries
-A SQL doc outlining queries can be found [here](tba).
+Queries used on the site can be found [here](tba).

 Here are the expression annotation queries:

@@ -55,4 +57,3 @@
 In actual queries fbbt.accession IN () is populated with a list generated by a DL query.

 Note the restriction to adult stage.  In future versions this restriction should either be dropped completely or extended to =&gt; appropriate gross stage restrictions for terms.  This will require classification of terms as larval or adult.  If we always have appropriate, stage specific terms and these are always used correctly in annotation, this stage restriction would not be necessary.  We do have complete or near complete sets of specific terms for embryonic/larval and adult structures - pupal less so.  There is some stage inappropriate use of terms in annotation, but this is being cleaned up and is most seriously a problem for the embryo.
-
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">David Osumi-Sutherland</dc:creator><pubDate>Wed, 05 Jun 2013 16:56:20 -0000</pubDate><guid>https://sourceforge.net5e65384c92e33543eee5962250d0860ec6e6271a</guid></item><item><title>FBChado modified by David Osumi-Sutherland</title><link>https://sourceforge.net/p/virtualflybrain/wiki/FBChado/</link><description>&lt;div class="markdown_content"&gt;&lt;h1 id="fb-chado-psql-db"&gt;FB CHADO PSQL DB&lt;/h1&gt;
&lt;p&gt;We run a local copy of the FB chado PostgresSQL DB for the purposes of running annotation queries and finding details of pubs.&lt;/p&gt;
&lt;p&gt;CHADO is a very large and complicated database. In order to use it directly to run queries on VFB, we generate views using a set of SQL scripts that run every time we update our local copy of CHADO.&lt;br /&gt;
&lt;/p&gt;
&lt;h2 id="challenges"&gt;Challenges&lt;/h2&gt;
&lt;p&gt;The main problem for our purposes is that expression is recorded for gene and transgene products, but we need to display the relevant genes and constructs/insertions.  Mapping across - especially from transgene products to constructs/insertions requires iterative queries of the central CHADO feature_relation table.  The logic of design for this table (in particular the choice of relations used) is not at all clear and is very poorly documented.  This table has also been subject to poorly documented change in the past.  The most important job that our view tables do is to directly map gene and transgene products to genes and insertions/constructs.&lt;/p&gt;
&lt;h3 id="brief-summary-of-view-tables"&gt;Brief summary of view tables:&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;vfbview_fbbt&lt;/strong&gt;: A mapping of ontology term names to IDs for FBbt. (The connection is surprisingly circuitous in CHADO).&lt;br /&gt;
&lt;strong&gt;vfbview_gene_expressed_gp&lt;/strong&gt;: Maps gene products for which expression data exists to genes.&lt;br /&gt;
&lt;strong&gt;vfbview_transgene_expressed_gp_pkey&lt;/strong&gt;: Maps transgene products for which expression data exists to constructs/insertions.&lt;br /&gt;
&lt;strong&gt;vfbview_phenstatement_feature&lt;/strong&gt;: Maps phenstatements to features (the mapping in chado is to whole genotypes.  There is a reasonable case for displaying full phenotypes instead - perhaps as part of a phenotype report.&lt;br /&gt;
&lt;strong&gt;vfbview_feature_synonym&lt;/strong&gt;: Links feature_ids directly to valid names and symbols and their synonyms in both ascii and unicode.  Not currently used - but plan to use this in future for: (a) Displaying unicode names for features; (b) Search and query on feature names+synonyms.  Note - this table may need some work to add keys indexes.&lt;/p&gt;
&lt;h1 id="queries"&gt;Queries&lt;/h1&gt;
&lt;p&gt;A SQL doc outlining queries can be found &lt;a class="" href="../tba"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here are the expression annotation queries:&lt;/p&gt;
&lt;div class="codehilite"&gt;&lt;pre&gt;&lt;span class="cm"&gt;/* Generic transgene expression Query: */&lt;/span&gt;

&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;DISTINCT&lt;/span&gt; &lt;span class="n"&gt;fbbt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cvterm_name&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;anatomy&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fbbt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;db_name&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;idp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fbbt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;accession&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;teg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;transgene_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;teg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;transgene_uniquename&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;miniref&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;uniquename&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;fbrf&lt;/span&gt;
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;vfbview_fbbt&lt;/span&gt; &lt;span class="n"&gt;fbbt&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;expression_cvterm&lt;/span&gt; &lt;span class="n"&gt;ec1&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fbbt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cvterm_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ec1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cvterm_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;expression_cvterm&lt;/span&gt; &lt;span class="n"&gt;ec2&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ec2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;expression_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ec1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;expression_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;cvterm&lt;/span&gt; &lt;span class="n"&gt;stage&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cvterm_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ec2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cvterm_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;feature_expression&lt;/span&gt; &lt;span class="n"&gt;fe&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ec1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;expression_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;expression_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;pub&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pub_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pub_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;vfbview_transgene_expressed_gp&lt;/span&gt; &lt;span class="n"&gt;teg&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;teg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gp_feature_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;feature_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;fbbt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;accession&lt;/span&gt; &lt;span class="k"&gt;IN&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;stage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'adult stage'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="cm"&gt;/* Generic gene expression query */&lt;/span&gt;

&lt;span class="k"&gt;SELECT&lt;/span&gt; &lt;span class="k"&gt;DISTINCT&lt;/span&gt; &lt;span class="n"&gt;fbbt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cvterm_name&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;anatomy&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fbbt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;db_name&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;idp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fbbt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;accession&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;geg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gene_name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;geg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gene_uniquename&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;miniref&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;uniquename&lt;/span&gt; &lt;span class="k"&gt;AS&lt;/span&gt; &lt;span class="n"&gt;fbrf&lt;/span&gt;
    &lt;span class="k"&gt;FROM&lt;/span&gt; &lt;span class="n"&gt;vfbview_fbbt&lt;/span&gt; &lt;span class="n"&gt;fbbt&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;expression_cvterm&lt;/span&gt; &lt;span class="n"&gt;ec1&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fbbt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cvterm_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ec1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cvterm_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;expression_cvterm&lt;/span&gt; &lt;span class="n"&gt;ec2&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ec2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;expression_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ec1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;expression_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;cvterm&lt;/span&gt; &lt;span class="n"&gt;stage&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;stage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cvterm_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;ec2&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;cvterm_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;feature_expression&lt;/span&gt; &lt;span class="n"&gt;fe&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ec1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;expression_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;expression_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;pub&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;fe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pub_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pub&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pub_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;JOIN&lt;/span&gt; &lt;span class="n"&gt;vfbview_gene_expressed_gp&lt;/span&gt; &lt;span class="n"&gt;geg&lt;/span&gt; &lt;span class="k"&gt;ON&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;geg&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;gp_feature_id&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fe&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;feature_id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;WHERE&lt;/span&gt; &lt;span class="n"&gt;fbbt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;accession&lt;/span&gt; &lt;span class="k"&gt;IN&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;stage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'adult stage'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;In actual queries fbbt.accession IN () is populated with a list generated by a DL query.&lt;/p&gt;
&lt;p&gt;Note the restriction to adult stage.  In future versions this restriction should either be dropped completely or extended to =&amp;gt; appropriate gross stage restrictions for terms.  This will require classification of terms as larval or adult.  If we always have appropriate, stage specific terms and these are always used correctly in annotation, this stage restriction would not be necessary.  We do have complete or near complete sets of specific terms for embryonic/larval and adult structures - pupal less so.  There is some stage inappropriate use of terms in annotation, but this is being cleaned up and is most seriously a problem for the embryo.&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">David Osumi-Sutherland</dc:creator><pubDate>Wed, 05 Jun 2013 11:09:56 -0000</pubDate><guid>https://sourceforge.net0ff0a7df3c2b11214ccb01aaec67973f29bbfdc7</guid></item></channel></rss>