spficklin 14 years ago
parent
commit
0dd8d23333

+ 5 - 1
theme_tripal/tripal_organism/tripal_organism_base.tpl.php

@@ -1,5 +1,9 @@
 <?php
-  $organism = $variables['node']->organism;
+$organism = $variables['node']->organism;
+
+// the comment field is a database text field so we have to expand it so that
+// it is included in the organism object
+$organism = tripal_core_expand_chado_vars($organism,'field','organism.comment');
   
 ?>
 <div id="tripal_organism-base-box" class="tripal_organism-info-box tripal-info-box">

+ 4 - 0
tripal_analysis/tripal_analysis.module

@@ -305,6 +305,10 @@ function chado_analysis_form ($node){
 
    $analysis = $node->analysis;
 
+   // add in the description column. It is a text field and may not be included
+   // if the text is too big.
+   $analysis = tripal_core_expand_chado_vars($analysis,'field','analysis.description');
+
    // get form defaults
    $analysis_id = $node->analysis_id;
    if(!$analysis_id){

+ 0 - 1
tripal_analysis_blast/tripal_analysis_blast.module

@@ -408,7 +408,6 @@ function tripal_analysis_blast_node_info() {
  *  Provide a Blast Analysis form
  */
 function chado_analysis_blast_form ($node){
-    //dprint_r($node);
 
    // add in the default fields
    $form = chado_analysis_form($node);

+ 151 - 12
tripal_feature/tripal_feature.admin.inc

@@ -20,15 +20,155 @@ function tripal_feature_module_description_page() {
  
 
   $text .= '<h3>Module Description:</h3>';
-  $text .= '<p>TODO: Basic Description of this module including mention/link to the chado module</p>';
-
-  $text .= '<h3>Post Installation Instructions:</h3>';
-  $text .= '<p>TODO: Describe any post installation intructions here. You shouldalways include setting user permissions.</p>';
+  $text .= '<p>This module provides an interface for the Chado feature module which stores information
+            related to genomic features.  This module provides support for bulk loading of data in
+            FASTA or GFF format, visualization of "feature" pages, editing and updating.  The feature
+            module relies heavily on 
+            </p>';
+
+  $text .= '<h3>Setup Instructions:</h3>';
+  $text .= '<p>After installation of the feature module.  The following tasks should be performed
+            <ol>
+               <li><b>Themeing</b>:  Before content from Chado can be visualized the Tripal base theme must
+               be installed.  This should have been done prior to this point.  But is mentioned here in the event you
+               follow the instructions below and cannot see content.  In this case, if you do not see content
+               check that Tripal theming is properly installed</li>
+
+               <li><b>Loading of Ontologies</b>:  If you do not have an existing Chado database or if you
+               used Tripal to create Chado, then you must load ontologies before proceeding.  Visit the
+               page to <a href="'.url('admin/tripal/tripal_cv/obo_loader').'">load ontologies</a> and load at 
+               least the following ontologies:  
+               <ul>
+                  <li>Chado Feature Properties</li>
+                  <li>Relationship Ontology</li>
+                  <li>Sequence Ontology</li>
+                  <li>Gene Ontology (if loading GO terms for features)</li>
+               </ul></li>
+
+               <li><b>Data Import</b>:  if you do not already have an existing Chado database with preloaded data 
+               then you will want
+               to import data.  You can do so using the Chado perl scripts that come with the normal 
+               <a href="http://gmod.org/wiki/Chado">distribution of Chado</a> or you can use the <a href="'.url('admin/tripal/tripal_feature/fasta_loader').'">FASTA loader</a> and 
+               <a href="'.url('admin/tripal/tripal_feature/gff3_load').'">GFF loader</a> provided here.  If you
+               created the Chado database using Tripal then you\'ll most likely want to use the Tripal loaders.</li>
+
+               <li><b>Sync Features</b>:  After data is loaded you need to sync features.  This process is what
+               creates the pages for viewing online.  Not all features need be synced.  For instance, if you
+               have loaded whole genome sequence with fully defined gene models with several features to define
+               a gene and its products (e.g. gene, mRNA, CDS, 5\'UTR, 3\'UTR, etc) you probably only want to create
+               pages for genes or genes and mRNA.  You probably do not want a page for a 5\'UTR.  
+               Using the <a href="'.url('admin/tripal/tripal_feature/configuration').'">Feature Configuration page</a> 
+               you can sync (or create pages) for the desired feature types. </li>
+
+               <li><b>Set Feature URL</b>:  It is often convenient to have a simple URL for each feature page. 
+               For example, http://www.mygenomesite.org/[feature], where [feature] is a unique identifier for a feature page.
+               With this, people can easily include links to feature pages of interest. Use the 
+               <a href="'.url('admin/tripal/tripal_feature/configuration').'">Feature Configuration page</a> 
+               to specify whether to use the feature name, unique name or internal ID as the [feature] portion of the
+               URL.  Select the one that will guarantee a unique identifier for feature pages.</li>
+
+               <li><b>Indexing</b>:  Once all data has been loaded (including analysis data--e.g. blast, interpro, etc.)
+               you can index all feature pages for searching if you want to ues the Drupal default search mechanism. 
+               Use the <a href="'.url('admin/tripal/tripal_feature/configuration').'">Feature Configuration page</a> 
+               to either Index (for the first time) or "Reindex" (after adding new data)
+               the feature pages for searching.  Once the site is 100% indexed the pages will be searchable using Drupal\'s
+               full text searching.  <i>Note:</i> This process can take quite a while if you have a lot of data</li>
+
+               <li><b>Set Taxonomy</b>:  Drupal provides a mechanism for categorizing content to allow 
+               for advanced searching.  Drupal calls this "Taxonomy", but is essentially categorizing the pages.  
+               You can categorize feature pages by their type (e.g. gene, mRNA, contig, EST, etc.) and by the 
+               organism to which they belong.  This allows for filtering of search results by organism and feature type. 
+               Use the <a href="'.url('admin/tripal/tripal_feature/configuration').'">Feature Configuration page</a> to
+               set the Taxonomy.
+            </ol>
+            </p>';
   
   
   $text .= '<h3>Features of this Module:</h3>';
-  $text .= '<p>TODO: Discuss the Features of this module including links. Some features to consider are creating content, details pages/node content, editing/deleteing, basic listings and vies integration. See admin/tripal/tripal_stock for an example.</p>';
-  
+  $text .= '<p>Aside from data loading and feature page setup (as described in the post-installation section above), 
+            The Tripal feature module also provides the following functionality
+            <ul>
+              <li><b>Feature Browser:</b>  The feature browser is a tabular list of features with links to their 
+               feature pages which appears on the organism 
+               page.  It was created to provide a mechanism to allow site visitors to quickly
+               accesss feature pages when they do not know what to search for.  For sites with large numbers of features, this
+               method for finding a specific pages is inadequate, but may still be included to aid new site 
+               visitors.    This browser can be toggled on or off using the 
+               <a href="'.url('admin/tripal/tripal_feature/configuration').'">Feature Configuration page</a></li>
+ 
+              <li><b>Feature Summary:</b>  The feature summary is a pie chart that indicates the types and quantities
+              of feature types (Sequence Ontology terms) that are loaded in the database. It appears on the organism 
+              page.  The summary can be toggled on or off using the 
+              <a href="'.url('admin/tripal/tripal_feature/configuration').'">Feature Configuration page</a></li>             
+
+              <li><b>Integration with Drupal Views</b>: <a href="http://drupal.org/project/views">Drupal Views</a> is
+              a powerful tool that allows the site administrator to create lists or basic searching forms of Chado content.
+              It provides a graphical interface within Drupal to allow the site admin to directly query the Chado database
+              and create custom lists without PHP programming or customization of Tripal source code.  Views can also
+              be created to filter content that has not yet been synced with Druapl in order to protect access to non
+              published data (only works if Chado was installed using Tripal).  You can see a list of available pre-existing
+              Views <a href="'.url('admin/build/views/').'">here</a>, as well as create your own. </li>
+
+              <li><b>Basic Feature Lookup View</b>: This module provides a basic <a href="'.url('features').'">feature search 
+              tool</a> for finding or listing features in Chado. It does not require indexing for Drupal searching but relies
+              on Drupal Views.  <a href="http://drupal.org/project/views">Drupal Views</a> must be installed. </li>              
+              </li>
+
+            </ul>
+            </p>';
+
+   $text .= '<h3>Page Customizations</h3>';
+   $text .= '<p>There are several ways to customize the look-and-feel for the way Chado data is presented through Tripal. 
+             Below is a description of several methods.  These methods may be used in conjunction with one another to
+             provide fine-grained control.
+             <ul>
+
+             <li><b>Integration with Drupal Panels</b>:  <a href="http://drupal.org/project/views">Drupal Panels</a> 
+              allows for customization of a page layout and you don\'t want to do PHP/Javascript/CSS programming.  Tripal comes with pre-set layouts for feature pages.  However, 
+              Panels become useful if you prefer a layout that that is different from the pre-set layouts.  Chado content
+              is provided to Panels in the form of Drupal "blocks" which you can then place anywhere on a page using the 
+              Panel\'s GUI.</li>
+
+             <li><b>Drupal\'s Content Construction Kit (CCK)</b>: the 
+             <a href="http://drupal.org/project/cck">Content Construction Kit (CCK) </a> is a powerful way to add non-Chado content
+             to any page without need to edit template files or knowing PHP.  You must first download and install CCK.
+             With CCK, the site administartor can create a new field to appear on the content page.  For example, currently,
+             the Chado publication module is not yet supported by Tripal.  Therefore, the site administrator can add a text 
+             field to the feature pages.  This content is not stored in Chado, but will appear on the feature page.  A field
+             added by CCK will also appear in the form when editing a feature to allow users to manually enter the appropriate
+             text.  If the default pre-set layout and themeing for Tripal is used, it is better to create the CCK element,
+             indicate that it is not to be shown (using the CCK interface).  Then manually add the new content type 
+             where desired by editing the templates (as described below).  If using Panels, the CCK field can be added to the
+             location desired using the Panels interface.
+
+             <li><b>Drupal Node Templates</b>:  The Tripal packages comes with a "theme_tripal" directory that contains the
+             themeing for Chado content.  You should be familiar with this as you had to install this theme during Tripal
+             installation.  The feature module has a template file for feature "nodes" (Tripal feature pages).  This file
+             is named "node-chado_feature.tpl.php", and provides javascript, HTML and PHP code for display of the feature
+             pages.  You can edit this file to control which types of information (or which feature "blocks") are displayed for features. Be sure to 
+             copy these template to your primary theme directory for editing. Do not edit them in the "theme_tripal" directory as
+             future Tripal updates may overwrite your customizations.</li>
+
+             <li><b>Feature "Block" Templates</b>:  In the "theme_tripal" directory is a subdirectory named "tripal_feature".
+             Inside this directory is a set of templates that control distinct types of information for features.  For example,
+             there is a "base" template for displaying of data directly from the Chado feature table, and a "references" 
+             template for showing external site references for a feature (data from the feature_dbxref table).  These templates are used both by Drupal blocks
+             for use in Drupal Panels (as described above) or for use in the default pre-set layout that the node template 
+             provides (also desribed above).  You can customize these templates as you desire.  Be sure to copy these
+             template to your primary theme directory for editing. Do not edit them in the "theme_tripal" directory as
+             future Tripal updates may overwrite your customizations.
+             </li>
+
+             <li><b>Adding Links to the "Resources" Sidebar</b>: If you use the pre-set default Tripal layout for theming, you
+             will see a "Resources" sidebar on each page.  The links that appear on the sidebar are automatically generated
+             using Javascript for all of the feature "Blocks" that appear on the page. If you want to add additional links 
+             (e.g. a dynamic link to GBrowse for the feature) and you want that link to appear in the 
+             "Resources" sidebar, simply edit the Drupal Node Template (as described above) and add the link to the 
+             section at the bottom of the template file where the resources section is found.</li>
+
+             </ul>
+             </p>';
+
   return $text;
 }
 
@@ -227,16 +367,15 @@ function get_tripal_feature_admin_form_cleanup_set(&$form) {
 function get_tripal_feature_admin_form_reindex_set(&$form) {
    $form['reindex'] = array(
       '#type' => 'fieldset',
-      '#title' => t('Reindex')
+      '#title' => t('Index/Reindex')
    );
    $form['reindex']['description'] = array(
        '#type' => 'item',
-       '#value' => t("Reindexing of nodes is important when content for nodes ".
-          "is updated external to drupal, such as external uploads to chado. ".
-          "Features need to be reindexed to ensure that updates to features ".
-          "are searchable. Depending on the number of features this may take ".
+       '#value' => t("Indexing or reindexing of nodes is required for Drupal's full text searching. ".
+          "Index features for the first time to allow for searching of content, and later when content for features ".
+          "is updated.  Depending on the number of features this may take ".
           "quite a while. Click the button below to begin reindexing of ".
-          "features."),
+          "features. "),
        '#weight' => 1,
    );
    $form['reindex']['button'] = array(

+ 32 - 6
tripal_organism/tripal_organism.module

@@ -662,14 +662,14 @@ function chado_organism_delete($node){
 function chado_organism_validate($node){
    // check to see if a file was uploaded. If so then copy it to the images
    // directory for display with the organism
-   if (isset($_FILES['files']) && $_FILES['files']['name']['organism-image'] && 
-       is_uploaded_file($_FILES['files']['tmp_name']['organism-image'])) {
+   if (isset($_FILES['files']) && $_FILES['files']['name']['organism_image'] && 
+       is_uploaded_file($_FILES['files']['tmp_name']['organism_image'])) {
       $dest = file_directory_path() . "/tripal/tripal_organism/images";
       $validators = array(
          'file_validate_is_image' => array(),
       );
-      file_check_directory($dest,FILE_CREATE_DIRECTORY,'organism-image');
-      if(!$file = file_save_upload('organism-image',$validators,$dest)){
+      file_check_directory($dest,FILE_CREATE_DIRECTORY,'organism_image');
+      if(!$file = file_save_upload('organism_image',$validators,$dest)){
          drupal_set_message("Organism image was not uploaded.");
       }
       // move this image into the images directory
@@ -685,7 +685,33 @@ function chado_organism_validate($node){
 function chado_organism_form ($node, $param){
    $organism = $node->organism;
 
-   $type = node_get_types('type',$node);
+   // add in the comment since it is a text field and may not be included if too big
+   $organism = tripal_core_expand_chado_vars($organism,'field','organism.comment');
+
+   // get form defaults
+   $abbreviation = $node->abbreviation;
+   if(!$abbreviation){
+      $abbreviation = $organism->abbreviation;
+   }
+   $genus = $node->genus;
+   if(!$genus){
+      $genus = $organism->genus;
+   }
+   $species = $node->species;
+   if(!$species){
+      $species = $organism->species;
+   }
+   $common_name = $node->common_name;
+   if(!$common_name){
+      $common_name = $organism->common_name;
+   }
+   $description = $node->description;
+   if(!$description){
+      $description = $organism->comment;
+   }
+   $organism_image = $node->organism_image;
+
+
    $form = array();
    $form['#attributes']['enctype'] = 'multipart/form-data';
 
@@ -725,7 +751,7 @@ function chado_organism_form ($node, $param){
       '#default_value' => $organism->comment,
       '#weight' => 5
    );
-   $form['organism-image']= array(
+   $form['organism_image']= array(
       '#type' => 'file',
       '#title' => t('Organism Image'),
       '#description' => 'Add an image for this organism',