import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
+import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import org.forester.phylogeny.data.Accession;
import org.forester.phylogeny.data.Annotation;
import org.forester.phylogeny.data.BranchColor;
-import org.forester.phylogeny.data.NodeData.NODE_DATA;
+import org.forester.phylogeny.data.NodeDataField;
import org.forester.phylogeny.data.Sequence;
import org.forester.phylogeny.data.Taxonomy;
import org.forester.phylogeny.iterators.PhylogenyNodeIterator;
import org.forester.util.ForesterConstants;
import org.forester.util.ForesterUtil;
import org.forester.util.SequenceAccessionTools;
+import org.forester.util.StringInt;
import org.forester.ws.seqdb.UniProtTaxonomy;
public class TreePanelUtil {
if ( cp.isShowSeqSymbols() && node.getNodeData().isHasSequence()
&& !ForesterUtil.isEmpty( node.getNodeData().getSequence().getSymbol() ) ) {
TreePanelUtil
- .showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getSequence().getSymbol(), sb );
+ .showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getSequence().getSymbol(), sb );
}
if ( cp.isShowGeneNames() && node.getNodeData().isHasSequence()
&& !ForesterUtil.isEmpty( node.getNodeData().getSequence().getGeneName() ) ) {
&& ( node.getNodeData().getSequence().getAccession() != null )
&& !ForesterUtil.isEmpty( node.getNodeData().getSequence().getAccession().toString() ) ) {
TreePanelUtil.showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getSequence().getAccession()
- .toString(), sb );
+ .toString(), sb );
}
if ( cp.isShowTaxonomyCode() && node.getNodeData().isHasTaxonomy()
&& !ForesterUtil.isEmpty( node.getNodeData().getTaxonomy().getTaxonomyCode() ) ) {
TreePanelUtil.showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getTaxonomy()
- .getTaxonomyCode(), sb );
+ .getTaxonomyCode(), sb );
}
if ( cp.isShowTaxonomyScientificNames() && node.getNodeData().isHasTaxonomy()
&& !ForesterUtil.isEmpty( node.getNodeData().getTaxonomy().getScientificName() ) ) {
TreePanelUtil.showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getTaxonomy()
- .getScientificName(), sb );
+ .getScientificName(), sb );
}
if ( cp.isShowTaxonomyCommonNames() && node.getNodeData().isHasTaxonomy()
&& !ForesterUtil.isEmpty( node.getNodeData().getTaxonomy().getCommonName() ) ) {
TreePanelUtil
- .showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getTaxonomy().getCommonName(), sb );
- }
- if ( ( cp.isShowSeqNames() || cp.isShowSeqSymbols() || cp.isShowSequenceAcc() )
- && node.getNodeData().isHasSequence()
- && !ForesterUtil.isEmpty( node.getNodeData().getSequence().getMolecularSequence() ) ) {
- TreePanelUtil.showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getSequence()
- .getMolecularSequence(), sb );
- }
+ .showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getTaxonomy().getCommonName(), sb );
+ }
+ // if ( ( cp.isShowSeqNames() || cp.isShowSeqSymbols() || cp.isShowSequenceAcc() )
+ // && node.getNodeData().isHasSequence()
+ // && !ForesterUtil.isEmpty( node.getNodeData().getSequence().getMolecularSequence() ) ) {
+ // TreePanelUtil.showExtDescNodeDataUserSelectedHelperHelper( node.getNodeData().getSequence()
+ // .getMolecularSequence(), sb );
+ // }
final String s = sb.toString().trim();
if ( !ForesterUtil.isEmpty( s ) ) {
data.add( s );
TreePanelUtil.collapseSubtree( n, true );
if ( !n.getNodeData().isHasTaxonomy() ) {
n.getNodeData().setTaxonomy( ( Taxonomy ) n.getAllExternalDescendants().get( 0 ).getNodeData()
- .getTaxonomy().copy() );
+ .getTaxonomy().copy() );
}
inferred = true;
}
final List<PhylogenyNode> descs = PhylogenyMethods.getAllDescendants( n );
for( final PhylogenyNode desc : descs ) {
desc.getBranchData()
- .setBranchColor( new BranchColor( tree_panel.calculateTaxonomyBasedColor( tax ) ) );
+ .setBranchColor( new BranchColor( tree_panel.calculateTaxonomyBasedColor( tax ) ) );
}
}
}
if ( n.getNodeData().isHasTaxonomy()
&& ( !ForesterUtil.isEmpty( n.getNodeData().getTaxonomy().getScientificName() )
|| !ForesterUtil.isEmpty( n.getNodeData().getTaxonomy().getCommonName() ) || !ForesterUtil
- .isEmpty( n.getNodeData().getTaxonomy().getTaxonomyCode() ) ) ) {
+ .isEmpty( n.getNodeData().getTaxonomy().getTaxonomyCode() ) ) ) {
if ( !ForesterUtil.isEmpty( n.getNodeData().getTaxonomy().getRank() )
&& n.getNodeData().getTaxonomy().getRank().equalsIgnoreCase( rank ) ) {
final BranchColor c = new BranchColor( tree_panel.calculateTaxonomyBasedColor( n.getNodeData()
- .getTaxonomy() ) );
+ .getTaxonomy() ) );
TreePanelUtil.colorizeSubtree( n, c );
++colorizations;
if ( !ForesterUtil.isEmpty( n.getNodeData().getTaxonomy().getScientificName() ) ) {
for( final String lin : node.getNodeData().getTaxonomy().getLineage() ) {
if ( true_lineage_to_color_map.containsKey( lin ) ) {
TreePanelUtil
- .colorizeSubtree( node, new BranchColor( true_lineage_to_color_map.get( lin ) ) );
+ .colorizeSubtree( node, new BranchColor( true_lineage_to_color_map.get( lin ) ) );
++colorizations;
success = true;
break;
.getSynonyms().isEmpty() );
}
- static int makeSB( final List<String> data, final Options optz, final StringBuilder sb ) {
+ static final int nodeDataIntoStringBuffer( final List<String> data, final Options optz, final StringBuilder sb ) {
final SortedMap<String, Integer> map = new TreeMap<String, Integer>();
int size = 0;
- if ( ( optz.getExtDescNodeDataToReturn() != NODE_DATA.SEQUENCE_MOL_SEQ )
- && ( optz.getExtDescNodeDataToReturn() != NODE_DATA.SEQUENCE_MOL_SEQ_FASTA )
- && ( optz.getExtDescNodeDataToReturn() != NODE_DATA.GO_TERM_IDS ) ) {
+ if ( ( optz.getExtDescNodeDataToReturn() != NodeDataField.SEQUENCE_MOL_SEQ_FASTA )
+ && ( optz.getExtDescNodeDataToReturn() != NodeDataField.GO_TERM_IDS ) ) {
for( final String d : data ) {
if ( !ForesterUtil.isEmpty( d ) ) {
if ( map.containsKey( d ) ) {
}
}
}
- for( final Entry<String, Integer> e : map.entrySet() ) {
- final String v = e.getKey();
- final Object c = e.getValue();
- sb.append( v );
- sb.append( "\t" );
- sb.append( c );
- sb.append( ForesterUtil.LINE_SEPARATOR );
+ if ( ( optz.getExtDescNodeDataToReturn() == NodeDataField.DOMAINS_ALL )
+ || ( optz.getExtDescNodeDataToReturn() == NodeDataField.DOMAINS_COLLAPSED_PER_PROTEIN )
+ || ( optz.getExtDescNodeDataToReturn() == NodeDataField.SEQ_ANNOTATIONS ) ) {
+ final ArrayList<StringInt> sis = new ArrayList<StringInt>();
+ for( final Entry<String, Integer> e : map.entrySet() ) {
+ sis.add( new StringInt( e.getKey(), e.getValue() ) );
+ }
+ Collections.sort( sis, new StringInt.DescendingIntComparator() );
+ for( final StringInt si : sis ) {
+ sb.append( si.getString() );
+ sb.append( "\t" );
+ sb.append( si.getInt() );
+ sb.append( ForesterUtil.LINE_SEPARATOR );
+ }
+ }
+ else {
+ for( final Entry<String, Integer> e : map.entrySet() ) {
+ final String v = e.getKey();
+ final Object c = e.getValue();
+ sb.append( v );
+ sb.append( "\t" );
+ sb.append( c );
+ sb.append( ForesterUtil.LINE_SEPARATOR );
+ }
}
size = map.size();
}