work on data buffer for aLeaves MAFFT suite + clean up
[jalview.git] / forester / java / src / org / forester / sdi / GSDIR.java
index 8eeca62..dc3fcae 100644 (file)
@@ -35,41 +35,45 @@ import org.forester.util.BasicDescriptiveStatistics;
 \r
 public class GSDIR extends GSDI {\r
 \r
-    private int                   _min_duplications_sum;\r
-    private final BasicDescriptiveStatistics                  _duplications_sum_stats;\r
-    private final List<Phylogeny> _min_duplications_sum_gene_trees;\r
+    private int                              _min_duplications_sum;\r
+    private final BasicDescriptiveStatistics _duplications_sum_stats;\r
+    private final List<Phylogeny>            _min_duplications_sum_gene_trees;\r
 \r
     public GSDIR( final Phylogeny gene_tree, final Phylogeny species_tree, final boolean strip_gene_tree, final int x )\r
             throws SDIException {\r
         super( gene_tree, species_tree, true, strip_gene_tree, true, 1 );\r
         _min_duplications_sum = Integer.MAX_VALUE;\r
         _min_duplications_sum_gene_trees = new ArrayList<Phylogeny>();\r
-        _duplications_sum_stats = new  BasicDescriptiveStatistics();\r
+        _duplications_sum_stats = new BasicDescriptiveStatistics();\r
         linkNodesOfG();\r
         final List<PhylogenyNode> gene_tree_nodes_post_order = new ArrayList<PhylogenyNode>();\r
         for( final PhylogenyNodeIterator it = gene_tree.iteratorPostorder(); it.hasNext(); ) {\r
             gene_tree_nodes_post_order.add( it.next() );\r
         }\r
         for( final PhylogenyNode root : gene_tree_nodes_post_order ) {\r
-            _gene_tree.reRoot( root );\r
+            _duplications_sum = 0;\r
+            _speciation_or_duplication_events_sum = 0;\r
+            _speciations_sum = 0;\r
+            _gene_tree.reRoot( root.getId() ); //TODO reRoot( root )\r
             PhylogenyMethods.preOrderReId( getSpeciesTree() );\r
             //TEST, remove later\r
-            for( final PhylogenyNodeIterator it = getGeneTree().iteratorPostorder(); it.hasNext(); ) {\r
+            for( final PhylogenyNodeIterator it = _gene_tree.iteratorPostorder(); it.hasNext(); ) {\r
                 final PhylogenyNode g = it.next();\r
                 if ( g.isInternal() ) {\r
                     g.setLink( null );\r
                 }\r
             }\r
             geneTreePostOrderTraversal();\r
-            _duplications_sum_stats.addValue( getMinDuplicationsSum() );\r
-            if ( getDuplicationsSum() < getMinDuplicationsSum() ) {\r
-                _min_duplications_sum = getDuplicationsSum();\r
+            if ( _duplications_sum < _min_duplications_sum ) {\r
+                _min_duplications_sum = _duplications_sum;\r
                 _min_duplications_sum_gene_trees.clear();\r
                 _min_duplications_sum_gene_trees.add( getGeneTree().copy() );\r
             }\r
-            else if ( getDuplicationsSum() == getMinDuplicationsSum() ) {\r
+            else if ( _duplications_sum == _min_duplications_sum ) {\r
                 _min_duplications_sum_gene_trees.add( getGeneTree().copy() );\r
             }\r
+            System.out.println( getDuplicationsSum() );\r
+            _duplications_sum_stats.addValue( _duplications_sum );\r
         }\r
     }\r
 \r