|
@@ -38,21 +38,93 @@ if(strcmp($feature->type_id->name,'scaffold') !=0 and
|
|
|
$feature = $variables['node']->feature;
|
|
|
$featureloc_sequences = $feature->featureloc_sequences;
|
|
|
|
|
|
-if ($residues or count($featureloc_sequences) > 0) { ?>
|
|
|
- <div class="tripal_feature-data-block-desc tripal-data-block-desc"></div> <?php
|
|
|
+if ($residues or count($featureloc_sequences) > 0) {
|
|
|
+
|
|
|
+ $sequences_html = '';
|
|
|
+ $list_items = array();
|
|
|
+
|
|
|
+ <div class="tripal_feature-data-block-desc tripal-data-block-desc">The following sequences are available for this feature:</div> <?php
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if ($residues) {
|
|
|
+ $list_items[] = '<a href="#residues">Current ' . $feature->type_id->name . ' sequence</a>';
|
|
|
+
|
|
|
+
|
|
|
+ $sequences_html .= '<a name="residues"></a>';
|
|
|
+ $sequences_html .= '<div class="tripal_feature-sequence-item">';
|
|
|
+ $sequences_html .= '<p><b>Current ' . $feature->type_id->name . ' sequence</b></p>';
|
|
|
+ $sequences_html .= '<pre class="tripal_feature-sequence">';
|
|
|
+ $sequences_html .= '>' . tripal_get_fasta_defline($feature) . "\n";
|
|
|
+ $sequences_html .= preg_replace("/(.{50})/","\\1<br>",$feature->residues);
|
|
|
+ $sequences_html .= '</pre>';
|
|
|
+ $sequences_html .= '<a href="#sequences-top">back to top</a>';
|
|
|
+ $sequences_html .= '</div>';
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ $all_relationships = $feature->all_relationships;
|
|
|
+ $object_rels = $all_relationships['object'];
|
|
|
+ foreach ($object_rels as $rel_type => $rels){
|
|
|
+ foreach ($rels as $subject_type => $subjects){
|
|
|
+ foreach ($subjects as $subject){
|
|
|
+ if ($rel_type == 'derives from' and $subject_type == 'polypeptide') {
|
|
|
+ $protein = $subject->record->subject_id;
|
|
|
+ $protein = chado_expand_var($protein, 'field', 'feature.residues');
|
|
|
+
|
|
|
+ $list_items[] = '<a href="#residues">Protein sequence of ' . $protein->name . '</a>';
|
|
|
+ $sequences_html .= '<a name="protein-' . $protein->feature_id . '"></a>';
|
|
|
+ $sequences_html .= '<div class="tripal_feature-sequence-item">';
|
|
|
+ $sequences_html .= '<p><b>Protein sequence of ' . $protein->name . '</b></p>';
|
|
|
+ $sequences_html .= '<pre class="tripal_feature-sequence">';
|
|
|
+ $sequences_html .= '>' . tripal_get_fasta_defline($protein) . "\n";
|
|
|
+ $sequences_html .= preg_replace("/(.{50})/","\\1<br>", $protein->residues);
|
|
|
+ $sequences_html .= '</pre>';
|
|
|
+ $sequences_html .= '<a href="#sequences-top">back to top</a>';
|
|
|
+ $sequences_html .= '</div>';
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
|
|
|
if(count($featureloc_sequences) > 0){
|
|
|
- foreach($featureloc_sequences as $src => $attrs){
|
|
|
- print $attrs['formatted_seq'];
|
|
|
- }
|
|
|
+ foreach($featureloc_sequences as $src => $attrs){
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ $list_items[] = '<a href="#' . $attrs['src'] . '">Alignment at ' . $attrs['location'];
|
|
|
+ $sequences_html .= '<a name="' . $attrs['src'] . '"></a>';
|
|
|
+ $sequences_html .= '<div class="tripal_feature-sequence-item">';
|
|
|
+ $sequences_html .= '<p><b>Alignment at ' . $attrs['location'] .'</b></p>';
|
|
|
+ $sequences_html .= $attrs['formatted_seq'];
|
|
|
+ $sequences_html .= '<a href="#sequences-top">back to top</a>';
|
|
|
+ $sequences_html .= '</div>';
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- if ($residues) { ?>
|
|
|
- <pre id="tripal_feature-sequence-residues"><?php
|
|
|
-
|
|
|
- print preg_replace("/(.{50})/","\\1<br>",$feature->residues); ?>
|
|
|
- </pre> <?php
|
|
|
- }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ print '<a name="sequences-top"></a>';
|
|
|
+ print theme_item_list(array(
|
|
|
+ 'items' => $list_items,
|
|
|
+ 'title' => '',
|
|
|
+ 'type' => 'ul',
|
|
|
+ 'attributes' => array(),
|
|
|
+ ));
|
|
|
+
|
|
|
+
|
|
|
+ print $sequences_html;
|
|
|
}
|