X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=forester%2Fjava%2Fsrc%2Forg%2Fforester%2Fsdi%2FSDIR.java;h=bc395c345b6a7dc49b85422dc1a0d28b91f43f11;hb=fbb7c0a322111e5221773fed19591da29296efb5;hp=7af2359389b62a1a822c1385bcc605d3a4fc9e2c;hpb=9bad57b1ba0f75075ab8c6bda1dedb906f8c6280;p=jalview.git diff --git a/forester/java/src/org/forester/sdi/SDIR.java b/forester/java/src/org/forester/sdi/SDIR.java index 7af2359..bc395c3 100644 --- a/forester/java/src/org/forester/sdi/SDIR.java +++ b/forester/java/src/org/forester/sdi/SDIR.java @@ -23,7 +23,7 @@ // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA // // Contact: phylosoft @ gmail . com -// WWW: www.phylosoft.org/forester +// WWW: https://sites.google.com/site/cmzmasek/home/software/forester package org.forester.sdi; @@ -45,11 +45,11 @@ import org.forester.phylogeny.iterators.PhylogenyNodeIterator; *
  • Mapping cost L
  • Phylogeny height - which is the largest distance from * root to external node (minimizing of which is the same as "midpoint rooting") * - * + * * @see SDIse - * + * * @see SDI - * + * * @author Christian M. Zmasek */ public class SDIR { @@ -76,7 +76,7 @@ public class SDIR { /** * Returns the number of differently rooted trees which minimize the * (rooting) "criterion" - as determined by method "infer". - * + * * @see #infer(Phylogeny,Phylogeny,boolean,boolean,boolean,boolean,int,boolean) * @return number of differently rooted trees which minimized the criterion */ @@ -97,7 +97,7 @@ public class SDIR { * not necessarily zero. *

    * (Last modified: 01/22/00) - * + * * @see #infer(Phylogeny,Phylogeny,boolean,boolean,boolean,boolean,int,boolean) * @return the minimal difference in tree heights -- IF calculated by * "infer" @@ -113,7 +113,7 @@ public class SDIR { * IMPORTANT : If the tree is not rooted by minimizing the sum of * duplications or the mapping cost L, then this number is NOT NECESSARILY * the MINIMAL number of duplications. - * + * * @see #infer(Phylogeny,Phylogeny,boolean,boolean,boolean,boolean,int,boolean) * @return (minimal) number of duplications */ @@ -126,7 +126,7 @@ public class SDIR { * minimize_mapping_cost is set to true. *

    * (Last modified: 11/07/00) - * + * * @see #infer(Phylogeny,Phylogeny,boolean,boolean,boolean,boolean,int,boolean) * @return the minimal mapping cost "L" -- IF calculated by "infer" */ @@ -142,7 +142,7 @@ public class SDIR { * first criterion. *

    * (Last modified: 01/12/00) - * + * * @see #infer(Phylogeny,Phylogeny,boolean,boolean,boolean,boolean,int,boolean) * @return the minimal tree height -- IF calculated by "infer" */ @@ -153,7 +153,7 @@ public class SDIR { /** * Returns the sum of times (in ms) needed to run method infer of class SDI. * Final variable TIME needs to be set to true. - * + * * @return sum of times (in ms) needed to run method infer of class SDI */ public long getTimeSumSDI() { @@ -188,7 +188,7 @@ public class SDIR { * *

    * (Last modified: 10/01/01) - * + * * @param gene_tree * a binary (except deepest node) gene Phylogeny * @param species_tree @@ -212,7 +212,7 @@ public class SDIR { * Array) must be no lower than 1 * @return array of rooted Trees with duplication vs. speciation assigned if * return_trees is set to true, null otherwise - * @throws SDIException + * @throws SDIException */ public Phylogeny[] infer( final Phylogeny gene_tree, final Phylogeny species_tree, @@ -292,7 +292,7 @@ public class SDIR { prev_root_c2 = prev_root.getChildNode2(); prev_root_was_dup = prev_root.isDuplication(); final PhylogenyBranch current_branch = branches.get( j ); - g.reRoot( current_branch ); + GSDIR.reRoot( current_branch, g ); if ( minimize_mapping_cost || minimize_sum_of_dup ) { duplications = sdise.updateM( prev_root_was_dup, prev_root_c1, prev_root_c2 ); } @@ -494,8 +494,8 @@ public class SDIR { branches.add( new PhylogenyBranch( t.getRoot().getChildNode1(), t.getRoot().getChildNode2() ) ); return branches; } - final Set one = new HashSet(); - final Set two = new HashSet(); + final Set one = new HashSet(); + final Set two = new HashSet(); PhylogenyNode node = t.getRoot(); while ( !node.isRoot() || !two.contains( node.getId() ) ) { if ( !node.isExternal() && !two.contains( node.getId() ) ) { @@ -543,10 +543,10 @@ public class SDIR { double diff = 0.0; double height = 0.0; final double[] height_diff = new double[ 2 ]; - final double l0 = t.calculateSubtreeHeight( t.getRoot().getChildNode( 0 ) ); - final double l1 = t.calculateSubtreeHeight( t.getRoot().getChildNode( 1 ) ); + final double l0 = t.calculateSubtreeHeight( t.getRoot().getChildNode( 0 ), false ); + final double l1 = t.calculateSubtreeHeight( t.getRoot().getChildNode( 1 ), false ); diff = l0 - l1; - height = t.getHeight(); + height = t.calculateHeight(false); if ( d > 0.0 ) { if ( ( 2 * d ) > Math.abs( diff ) ) { child0.setDistanceToParent( d - ( diff / 2.0 ) );