Browse Source

Issue #72: Updating API to include 2.1 improvements: d5e9bb1

Stephen Ficklin 7 years ago
parent
commit
a68378c7ff

+ 28 - 28
legacy/tripal_feature/theme/templates/tripal_feature_sequence.tpl.php

@@ -1,10 +1,10 @@
 <?php
 <?php
 /*
 /*
- * There are several ways that sequences can be displayed.  They can come from the 
+ * There are several ways that sequences can be displayed.  They can come from the
  * feature.residues column,  they can come from an alignment with another feature,
  * feature.residues column,  they can come from an alignment with another feature,
  * they can come from a protein sequence that has relationship with this sequence,
  * they can come from a protein sequence that has relationship with this sequence,
  * or they can come from sub children (e.g. CDS coding sequences).
  * or they can come from sub children (e.g. CDS coding sequences).
- *   
+ *
  * This template will show all types depending on the data available.
  * This template will show all types depending on the data available.
  *
  *
  */
  */
@@ -12,7 +12,7 @@
 $feature = $variables['node']->feature;
 $feature = $variables['node']->feature;
 
 
 // number of bases per line in FASTA format
 // number of bases per line in FASTA format
-$num_bases = 50; 
+$num_bases = 50;
 
 
 // we don't want to get the sequence for traditionally large types. They are
 // we don't want to get the sequence for traditionally large types. They are
 // too big,  bog down the web browser, take longer to load and it's not
 // too big,  bog down the web browser, take longer to load and it's not
@@ -24,37 +24,37 @@ if(strcmp($feature->type_id->name,'scaffold') !=0 and
    strcmp($feature->type_id->name,'pseudomolecule') !=0) {
    strcmp($feature->type_id->name,'pseudomolecule') !=0) {
   $feature = chado_expand_var($feature,'field','feature.residues');
   $feature = chado_expand_var($feature,'field','feature.residues');
   $residues = $feature->residues;
   $residues = $feature->residues;
-} 
+}
 
 
 // get the sequence derived from alignments
 // get the sequence derived from alignments
 $feature = $variables['node']->feature;
 $feature = $variables['node']->feature;
 $featureloc_sequences = $feature->featureloc_sequences;
 $featureloc_sequences = $feature->featureloc_sequences;
 
 
-if ($residues or count($featureloc_sequences) > 0) { 
+if ($residues or count($featureloc_sequences) > 0) {
 
 
   $sequences_html = '';  // a variable for holding all sequences HTML text
   $sequences_html = '';  // a variable for holding all sequences HTML text
   $list_items = array(); // a list to be used for theming of content on this page
   $list_items = array(); // a list to be used for theming of content on this page
-  
+
   // ADD IN RESIDUES FOR THIS FEATURE
   // ADD IN RESIDUES FOR THIS FEATURE
   // add in the residues if they are present
   // add in the residues if they are present
   if ($residues) {
   if ($residues) {
     $list_items[] = '<a href="#residues">' . $feature->type_id->name . ' sequence</a>';
     $list_items[] = '<a href="#residues">' . $feature->type_id->name . ' sequence</a>';
-     
+
     // format the sequence to break every 50 residues
     // format the sequence to break every 50 residues
     $sequences_html .= '<a name="residues"></a>';
     $sequences_html .= '<a name="residues"></a>';
     $sequences_html .= '<div id="residues" class="tripal_feature-sequence-item">';
     $sequences_html .= '<div id="residues" class="tripal_feature-sequence-item">';
     $sequences_html .= '<p><b>' . $feature->type_id->name . ' sequence</b></p>';
     $sequences_html .= '<p><b>' . $feature->type_id->name . ' sequence</b></p>';
     $sequences_html .= '<pre class="tripal_feature-sequence">';
     $sequences_html .= '<pre class="tripal_feature-sequence">';
-    $sequences_html .= '>' . tripal_get_fasta_defline($feature, '', NULL, '', strlen($feature->residues)) . "\n";
+    $sequences_html .= '>' . tripal_get_fasta_defline($feature, '', NULL, '', strlen($feature->residues)) . "<br>";
     $sequences_html .= wordwrap($feature->residues, $num_bases, "<br>", TRUE);
     $sequences_html .= wordwrap($feature->residues, $num_bases, "<br>", TRUE);
     $sequences_html .= '</pre>';
     $sequences_html .= '</pre>';
     $sequences_html .= '<a href="#sequences-top">back to top</a>';
     $sequences_html .= '<a href="#sequences-top">back to top</a>';
     $sequences_html .= '</div>';
     $sequences_html .= '</div>';
-    
+
   }
   }
-  
+
   // ADD IN RELATIONSHIP SEQUENCES (e.g. proteins)
   // ADD IN RELATIONSHIP SEQUENCES (e.g. proteins)
-  // see the explanation in the tripal_feature_relationships.tpl.php 
+  // see the explanation in the tripal_feature_relationships.tpl.php
   // template for how the 'all_relationships' is provided. It is this
   // template for how the 'all_relationships' is provided. It is this
   // variable that we use to get the proteins.
   // variable that we use to get the proteins.
   $all_relationships = $feature->all_relationships;
   $all_relationships = $feature->all_relationships;
@@ -64,27 +64,27 @@ if ($residues or count($featureloc_sequences) > 0) {
   foreach ($object_rels as $rel_type => $rels){
   foreach ($object_rels as $rel_type => $rels){
     foreach ($rels as $subject_type => $subjects){
     foreach ($rels as $subject_type => $subjects){
       foreach ($subjects as $subject){
       foreach ($subjects as $subject){
-        
+
         // add in protein sequence if it has residues
         // add in protein sequence if it has residues
         if ($rel_type == 'derives from' and $subject_type == 'polypeptide') {
         if ($rel_type == 'derives from' and $subject_type == 'polypeptide') {
           $protein = $subject->record->subject_id;
           $protein = $subject->record->subject_id;
           $protein = chado_expand_var($protein, 'field', 'feature.residues');
           $protein = chado_expand_var($protein, 'field', 'feature.residues');
-          
+
           if ($protein->residues) {
           if ($protein->residues) {
             $list_items[] = '<a href="#residues">protein sequence</a>';
             $list_items[] = '<a href="#residues">protein sequence</a>';
             $sequences_html .= '<a name="protein-' . $protein->feature_id . '"></a>';
             $sequences_html .= '<a name="protein-' . $protein->feature_id . '"></a>';
             $sequences_html .= '<div id="protein-' . $protein->feature_id . '" class="tripal_feature-sequence-item">';
             $sequences_html .= '<div id="protein-' . $protein->feature_id . '" class="tripal_feature-sequence-item">';
             $sequences_html .= '<p><b>protein sequence of ' . $protein->name . '</b></p>';
             $sequences_html .= '<p><b>protein sequence of ' . $protein->name . '</b></p>';
             $sequences_html .= '<pre class="tripal_feature-sequence">';
             $sequences_html .= '<pre class="tripal_feature-sequence">';
-            $sequences_html .= '>' . tripal_get_fasta_defline($protein, '', NULL, '', strlen($protein->residues)) . "\n";
+            $sequences_html .= '>' . tripal_get_fasta_defline($protein, '', NULL, '', strlen($protein->residues)) . "<br>";
             $sequences_html .= wordwrap($protein->residues, $num_bases, "<br>", TRUE);
             $sequences_html .= wordwrap($protein->residues, $num_bases, "<br>", TRUE);
             $sequences_html .= '</pre>';
             $sequences_html .= '</pre>';
             $sequences_html .= '<a href="#sequences-top">back to top</a>';
             $sequences_html .= '<a href="#sequences-top">back to top</a>';
             $sequences_html .= '</div>';
             $sequences_html .= '</div>';
           }
           }
         }
         }
-        
-        // If the CDS has sequences then concatenate those. The objects 
+
+        // If the CDS has sequences then concatenate those. The objects
         // should be returned in order of rank
         // should be returned in order of rank
         if ($rel_type == 'part of' and $subject_type == 'CDS') {
         if ($rel_type == 'part of' and $subject_type == 'CDS') {
           $cds = $subject->record->subject_id;
           $cds = $subject->record->subject_id;
@@ -94,14 +94,14 @@ if ($residues or count($featureloc_sequences) > 0) {
             $coding_seq .= $cds->residues;
             $coding_seq .= $cds->residues;
           }
           }
         }
         }
-        
+
         // add any other sequences that are related through a relationship
         // add any other sequences that are related through a relationship
         // and that have values in the 'residues' column
         // and that have values in the 'residues' column
-        
+
       }
       }
     }
     }
   }
   }
-  
+
   // CODING SEQUENCES FROM RELATIONSHIPS
   // CODING SEQUENCES FROM RELATIONSHIPS
   // add in any CDS sequences.
   // add in any CDS sequences.
   if ($has_coding_seq) {
   if ($has_coding_seq) {
@@ -115,7 +115,7 @@ if ($residues or count($featureloc_sequences) > 0) {
     $sequences_html .= '<a href="#sequences-top">back to top</a>';
     $sequences_html .= '<a href="#sequences-top">back to top</a>';
     $sequences_html .= '</div>';
     $sequences_html .= '</div>';
   }
   }
-  
+
   /* ADD IN ALIGNMENT SEQUENCES FOR THIS FEATURE
   /* ADD IN ALIGNMENT SEQUENCES FOR THIS FEATURE
    * For retreiving the sequence from an alignment we would typically make a call to
    * For retreiving the sequence from an alignment we would typically make a call to
    * chado_expand_var function.  For example, to retrieve all
    * chado_expand_var function.  For example, to retrieve all
@@ -127,7 +127,7 @@ if ($residues or count($featureloc_sequences) > 0) {
    * Then all of the sequences would need to be retreived from the alignments and
    * Then all of the sequences would need to be retreived from the alignments and
    * formatted for display below.  However, to simplify this template, this has already
    * formatted for display below.  However, to simplify this template, this has already
    * been done by the tripal_feature module and the sequences are made available in
    * been done by the tripal_feature module and the sequences are made available in
-   * the variable: 
+   * the variable:
    *
    *
    *   $feature->featureloc_sequences
    *   $feature->featureloc_sequences
    */
    */
@@ -148,7 +148,7 @@ if ($residues or count($featureloc_sequences) > 0) {
       $sequences_html .= '<a href="#sequences-top">back to top</a>';
       $sequences_html .= '<a href="#sequences-top">back to top</a>';
       $sequences_html .= '</div>';
       $sequences_html .= '</div>';
     }
     }
-    
+
     // check to see if this alignment has any CDS. If so, generate a CDS sequence
     // check to see if this alignment has any CDS. If so, generate a CDS sequence
     $cds_sequence = tripal_get_feature_sequences(
     $cds_sequence = tripal_get_feature_sequences(
         array(
         array(
@@ -183,14 +183,14 @@ if ($residues or count($featureloc_sequences) > 0) {
         $sequences_html .= '</div>';
         $sequences_html .= '</div>';
       }
       }
     }
     }
-  } 
+  }
   ?>
   ?>
 
 
-  <div class="tripal_feature-data-block-desc tripal-data-block-desc">The following sequences are available for this feature:</div> 
+  <div class="tripal_feature-data-block-desc tripal-data-block-desc">The following sequences are available for this feature:</div>
   <?php
   <?php
-  
+
   // first add a list at the top of the page that can be formatted as the
   // first add a list at the top of the page that can be formatted as the
-  // user desires.  We use the theme_item_list function of Drupal to create 
+  // user desires.  We use the theme_item_list function of Drupal to create
   // the list rather than hard-code the HTML here.  Instructions for how
   // the list rather than hard-code the HTML here.  Instructions for how
   // to create the list can be found here:
   // to create the list can be found here:
   // https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme_item_list/7
   // https://api.drupal.org/api/drupal/includes%21theme.inc/function/theme_item_list/7
@@ -216,7 +216,7 @@ if ($residues or count($featureloc_sequences) > 0) {
           is associated with an mRNA feature and protein sequences will appear on the mRNA page.</li>
           is associated with an mRNA feature and protein sequences will appear on the mRNA page.</li>
       <li>This feature has one or more CDS features associated via the "feature_relationship" table of Chado with a
       <li>This feature has one or more CDS features associated via the "feature_relationship" table of Chado with a
           relationship of type "part of". If the CDS features have residues then those will be concatenated
           relationship of type "part of". If the CDS features have residues then those will be concatenated
-          and presented as a sequence. Typically, CDSs are associated with an mRNA feature and CDS sequences 
+          and presented as a sequence. Typically, CDSs are associated with an mRNA feature and CDS sequences
           will appear on the mRNA page.</li>
           will appear on the mRNA page.</li>
       <li>This feature is aligned to another feature (e.g. scaffold, or chromosome) and this feature has
       <li>This feature is aligned to another feature (e.g. scaffold, or chromosome) and this feature has
           one or more CDS features associated.  The CDS sequenes underlying the alignment will be
           one or more CDS features associated.  The CDS sequenes underlying the alignment will be
@@ -224,7 +224,7 @@ if ($residues or count($featureloc_sequences) > 0) {
     </ul>
     </ul>
     </p>';
     </p>';
   print tripal_set_message($message, TRIPAL_INFO, array('return_html' => 1));
   print tripal_set_message($message, TRIPAL_INFO, array('return_html' => 1));
-  
+
   // now print the sequences
   // now print the sequences
   print $sequences_html;
   print $sequences_html;
 }
 }

+ 3 - 1
tripal_chado/api/tripal_chado.query.api.inc

@@ -1683,7 +1683,9 @@ function chado_query($sql, $args = array()) {
  */
  */
 function chado_pager_query($query, $args, $limit, $element, $count_query = '') {
 function chado_pager_query($query, $args, $limit, $element, $count_query = '') {
   // get the page and offset for the pager
   // get the page and offset for the pager
-  $page = isset($_GET['page']) ? $_GET['page'] : '0';
+  $page_arg = isset($_GET['page']) ? $_GET['page'] : '0';
+  $pages = explode(',', $page_arg);
+  $page = $pages[$element];
   $offset = $limit * $page;
   $offset = $limit * $page;
   $q = $_GET['q'];
   $q = $_GET['q'];