private static final BasicStroke STROKE_2 = new BasicStroke( 2f );
private static final double TWO_PI = 2 * Math.PI;
private final static int WIGGLE = 2;
+ private static final String SHOW_ONLY_THIS_CONF_TYPE = null; //TODO remove me
HashMap<Long, Short> _nodeid_dist_to_leaf = new HashMap<Long, Short>();
final private Arc2D _arc = new Arc2D.Double();
private AffineTransform _at;
private float _y_distance = 0.0f;
private int _length_of_longest_text;
private int _longest_domain;
+ public final static boolean SPECIAL_DOMAIN_COLORING = true;
// private Image offscreenImage;
// private Graphics offscreenGraphics;
// private Dimension offscreenDimension;
&& ( node.getNodeData().getSequence().isMolecularSequenceAligned() )
&& ( !ForesterUtil.isEmpty( node.getNodeData().getSequence().getMolecularSequence() ) ) ) {
// FIXME
- sum += 100;
+ sum += RenderableMsaSequence.DEFAULT_WIDTH + 30;
}
if ( sum >= max_length ) {
_longest_ext_node_info = max_length;
}
final Color getTaxonomyBasedColor( final PhylogenyNode node ) {
- if ( node.getNodeData().isHasTaxonomy() ) {
+ if ( node.isExternal() && node.getNodeData().isHasTaxonomy() ) {
return calculateTaxonomyBasedColor( node.getNodeData().getTaxonomy() );
}
// return non-colorized color
&& ( node.getNodeData().getSequence().getDomainArchitecture() != null ) ) {
RenderableDomainArchitecture rds = null;
if ( !( node.getNodeData().getSequence().getDomainArchitecture() instanceof RenderableDomainArchitecture ) ) {
- rds = new RenderableDomainArchitecture( node.getNodeData().getSequence().getDomainArchitecture() );
+ if ( SPECIAL_DOMAIN_COLORING ) {
+ rds = new RenderableDomainArchitecture( node.getNodeData().getSequence()
+ .getDomainArchitecture(), node.getName() );
+ }
+ else {
+ rds = new RenderableDomainArchitecture( node.getNodeData().getSequence()
+ .getDomainArchitecture() );
+ }
node.getNodeData().getSequence().setDomainArchitecture( rds );
}
else {
final List<PhylogenyNode> additional_nodes = new ArrayList<PhylogenyNode>();
if ( getFoundNodes0() != null ) {
for( final Long id : getFoundNodes0() ) {
- additional_nodes.add( _phylogeny.getNode( id ) );
+ final PhylogenyNode n = _phylogeny.getNode( id );
+ if ( n != null ) {
+ additional_nodes.add( n );
+ }
}
}
if ( getFoundNodes1() != null ) {
for( final Long id : getFoundNodes1() ) {
if ( ( getFoundNodes0() == null ) || !getFoundNodes0().contains( id ) ) {
- additional_nodes.add( _phylogeny.getNode( id ) );
+ final PhylogenyNode n = _phylogeny.getNode( id );
+ if ( n != null ) {
+ additional_nodes.add( n );
+ }
}
}
}
Collections.sort( confidences );
final StringBuilder sb = new StringBuilder();
for( final Confidence confidence : confidences ) {
- final double value = confidence.getValue();
- if ( value != Confidence.CONFIDENCE_DEFAULT_VALUE ) {
- if ( value < getOptions().getMinConfidenceValue() ) {
- return;
- }
- if ( not_first ) {
- sb.append( "/" );
- }
- else {
- not_first = true;
- }
- sb.append( FORMATTER_CONFIDENCE.format( ForesterUtil.round( value, getOptions()
- .getNumberOfDigitsAfterCommaForConfidenceValues() ) ) );
- if ( getOptions().isShowConfidenceStddev() ) {
- if ( confidence.getStandardDeviation() != Confidence.CONFIDENCE_DEFAULT_VALUE ) {
- sb.append( "(" );
- sb.append( FORMATTER_CONFIDENCE.format( ForesterUtil.round( confidence.getStandardDeviation(),
- getOptions()
- .getNumberOfDigitsAfterCommaForConfidenceValues() ) ) );
- sb.append( ")" );
+ if ( ForesterUtil.isEmpty( SHOW_ONLY_THIS_CONF_TYPE )
+ || ( !ForesterUtil.isEmpty( confidence.getType() ) && confidence.getType()
+ .equalsIgnoreCase( SHOW_ONLY_THIS_CONF_TYPE ) ) ) {
+ final double value = confidence.getValue();
+ if ( value != Confidence.CONFIDENCE_DEFAULT_VALUE ) {
+ if ( value < getOptions().getMinConfidenceValue() ) {
+ return;
+ }
+ if ( not_first ) {
+ sb.append( "/" );
+ }
+ else {
+ not_first = true;
+ }
+ sb.append( FORMATTER_CONFIDENCE.format( ForesterUtil.round( value, getOptions()
+ .getNumberOfDigitsAfterCommaForConfidenceValues() ) ) );
+ if ( getOptions().isShowConfidenceStddev() ) {
+ if ( confidence.getStandardDeviation() != Confidence.CONFIDENCE_DEFAULT_VALUE ) {
+ sb.append( "(" );
+ sb.append( FORMATTER_CONFIDENCE.format( ForesterUtil.round( confidence
+ .getStandardDeviation(), getOptions()
+ .getNumberOfDigitsAfterCommaForConfidenceValues() ) ) );
+ sb.append( ")" );
+ }
}
}
}
if ( isNodeDataInvisible( node ) && !to_graphics_file && !to_pdf ) {
return 0;
}
- if ( getOptions().isShowBranchLengthValues()
+ if ( getControlPanel().isWriteBranchLengthValues()
&& ( ( getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.RECTANGULAR )
|| ( getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.ROUNDED ) || ( getPhylogenyGraphicsType() == PHYLOGENY_GRAPHICS_TYPE.EURO_STYLE ) )
&& ( !node.isRoot() ) && ( node.getDistanceToParent() != PhylogenyDataUtil.BRANCH_LENGTH_DEFAULT ) ) {
if ( getOptions().isRightLineUpDomains() ) {
rds.render( ( float ) ( ( getMaxDistanceToRoot() * getXcorrectionFactor() )
+ _length_of_longest_text + ( ( _longest_domain - rds.getTotalLength() ) * rds
- .getRenderingFactorWidth() ) ), node.getYcoord() - ( h / 2 ), g, this, to_pdf );
+ .getRenderingFactorWidth() ) ), node.getYcoord() - ( h / 2.0f ), g, this, to_pdf );
}
else {
rds.render( ( float ) ( ( getMaxDistanceToRoot() * getXcorrectionFactor() ) + _length_of_longest_text ),
- node.getYcoord() - ( h / 2 ),
+ node.getYcoord() - ( h / 2.0f ),
g,
this,
to_pdf );
}
}
else {
- rds.render( node.getXcoord() + x, node.getYcoord() - ( h / 2 ), g, this, to_pdf );
+ rds.render( node.getXcoord() + x, node.getYcoord() - ( h / 2.0f ), g, this, to_pdf );
}
}
else {
rds.render( ( ( getPhylogeny().getFirstExternalNode().getXcoord() + _length_of_longest_text ) - 20 )
+ ( ( _longest_domain - rds.getTotalLength() ) * rds
.getRenderingFactorWidth() ),
- node.getYcoord() - ( h / 2 ),
+ node.getYcoord() - ( h / 2.0f ),
g,
this,
to_pdf );
}
else {
rds.render( getPhylogeny().getFirstExternalNode().getXcoord() + _length_of_longest_text,
- node.getYcoord() - ( h / 2 ),
+ node.getYcoord() - ( h / 2.0f ),
g,
this,
to_pdf );
&& ( node.getNodeData().getSequence().isMolecularSequenceAligned() )
&& ( !ForesterUtil.isEmpty( node.getNodeData().getSequence().getMolecularSequence() ) ) ) {
final RenderableMsaSequence rs = RenderableMsaSequence.createInstance( node.getNodeData().getSequence()
- .getMolecularSequence(), getConfiguration() );
+ .getMolecularSequence(), node.getNodeData().getSequence().getType(), getConfiguration() );
if ( rs != null ) {
final int default_height = 7;
float y = getYdistance();
final int h = y < default_height ? ForesterUtil.roundToInt( y ) : default_height;
rs.setRenderingHeight( h > 1 ? h : 2 );
if ( getControlPanel().isDrawPhylogram() ) {
- if ( getOptions().isLineUpRendarableNodeData() ) {
- rs.render( ( float ) ( ( getMaxDistanceToRoot() * getXcorrectionFactor() ) + _length_of_longest_text ),
- node.getYcoord() - ( h / 2 ),
- g,
- this,
- to_pdf );
- }
- else {
- rs.render( node.getXcoord() + x, node.getYcoord() - ( h / 2 ), g, this, to_pdf );
- }
+ rs.render( ( float ) ( ( getMaxDistanceToRoot() * getXcorrectionFactor() ) + _length_of_longest_text ),
+ node.getYcoord() - ( h / 2.0f ),
+ g,
+ this,
+ to_pdf );
}
else {
rs.render( getPhylogeny().getFirstExternalNode().getXcoord() + _length_of_longest_text,
- node.getYcoord() - ( h / 2 ),
+ node.getYcoord() - ( h / 2.0f ),
g,
this,
to_pdf );