4 $description_from => [ $feature ]
10 'Name' => feature_link( $feature ),
11 ( $synonyms ? ( 'Synonyms / aliases' => $synonyms ) : () ),
12 'Type' => cvterm_link( $feature->type, 'caps' ),
13 ( $length ? ( 'Length' => $length ) : () ),
14 'Organism' => organism_link($feature->organism),
21 ( $description ? ( 'Description' => $description || '<span class="ghosted">none</span>' ) : () ),
22 ( $featurelocs->count ? ( 'Location(s)' => join('', map "<div>$_</div>\n", location_list( $feature, $featurelocs )) ) : () ),
23 ( $cvterms_html =~ /\S/ ? ( 'Ontology term(s)' => $cvterms_html ) : () ),
27 <& /feature/dbxrefs.mas, dbxrefs => [ $feature->dbxref, $feature->secondary_dbxrefs ] &>
30 use SGN::View::Feature qw/
31 feature_link cvterm_link organism_link feature_length
36 use CXGN::Page::FormattingHelpers qw/info_table_html/;
37 use CXGN::Tools::Identifiers;
38 use CXGN::Tools::Text qw/commify_number/;
42 my $description = join( '<br />', grep $_, map get_descriptions($_), @$description_from );
44 my $length = commify_number( feature_length( $feature, $feature->search_related('featureloc_features') ) );
46 my $cvterms_html = $m->scomp( '/feature/feature_cvterms.mas', feature => $feature );
50 map { s/(\S+)/my $id = $1; CXGN::Tools::Identifiers::link_identifier($id) || $id/ge; $_ }
52 grep $_->name ne $feature->name,