inprogress
[jalview.git] / forester / java / src / org / forester / application / simple_node_processor.java
1
2 package org.forester.application;
3
4 import java.io.File;
5
6 import org.forester.io.parsers.phyloxml.PhyloXmlParser;
7 import org.forester.phylogeny.Phylogeny;
8 import org.forester.phylogeny.PhylogenyNode;
9 import org.forester.phylogeny.data.Taxonomy;
10 import org.forester.phylogeny.factories.ParserBasedPhylogenyFactory;
11 import org.forester.phylogeny.factories.PhylogenyFactory;
12 import org.forester.phylogeny.iterators.PhylogenyNodeIterator;
13 import org.forester.util.CommandLineArguments;
14
15 public class simple_node_processor {
16
17     private final static String BASE = "b_";
18
19     public static void main( final String args[] ) {
20         File in = null;
21         File out = null;
22         try {
23             CommandLineArguments cla = null;
24             cla = new CommandLineArguments( args );
25             in = cla.getFile( 0 );
26             out = cla.getFile( 1 );
27             if ( out.exists() ) {
28                 System.out.println( out + " already exists" );
29                 System.exit( -1 );
30             }
31             final PhylogenyFactory factory = ParserBasedPhylogenyFactory.getInstance();
32             final PhyloXmlParser xml_parser = new PhyloXmlParser();
33             final Phylogeny[] phylogenies_0 = factory.create( in, xml_parser );
34             final Phylogeny phylogeny_0 = phylogenies_0[ 0 ];
35             // final PhylogenyNodeIterator it = phylogeny_0.iteratorPostorder();
36             final PhylogenyNodeIterator it = phylogeny_0.iteratorExternalForward();
37             int i = 0;
38             while ( it.hasNext() ) {
39                 final PhylogenyNode node = it.next();
40                 processNode( node, i, out.toString() );
41                 i++;
42             }
43             //   final PhylogenyWriter writer = new PhylogenyWriter();
44             //   writer.toPhyloXML( out, phylogeny_0, 0 );
45         }
46         catch ( final Exception e ) {
47             System.out.println( e.getLocalizedMessage() );
48             e.printStackTrace();
49             System.exit( -1 );
50         }
51     }
52
53     //    private static void processNode( final PhylogenyNode node, final int i ) {
54     //        node.setDistanceToParent( PhylogenyNode.DISTANCE_DEFAULT );
55     //        if ( !node.isExternal() ) {
56     //            if ( ( node.getName() == null ) || node.getName().isEmpty() ) {
57     //                node.setName( BASE + i );
58     //            }
59     //        }
60     //    }
61     private static void processNode( final PhylogenyNode node, final int i, final String label ) {
62         //if ( node.isExternal() ) {
63         //    final String c = "" + node.getNodeData().getBinaryCharacters().getPresentCount();
64         //    final String s = node.getNodeData().getTaxonomy().getScientificName();
65         //    System.out.println( s + "\t" + c );
66         //}
67         //        if ( !node.isExternal() ) {
68         //            if ( !node.getNodeData().isHasTaxonomy() ) {
69         //                if ( !ForesterUtil.isEmpty( node.getName() ) ) {
70         //                    if ( ( node.getName().indexOf( "_" ) < 0 ) && ( node.getName().indexOf( "&" ) < 0 )
71         //                            && ( node.getName().indexOf( " " ) < 0 ) ) {
72         //                        Taxonomy t = new Taxonomy();
73         //                        t.setScientificName( node.getName() );
74         //                        node.getNodeData().addTaxonomy( t );
75         //                        node.setName( "" );
76         //                    }
77         //                }
78         //            }
79         //        }
80         if ( node.isExternal() ) {
81             if ( node.getNodeData().isHasTaxonomy() ) {
82                 //  final Taxonomy t = node.getNodeData().getTaxonomy();
83                 //  t.setIdentifier( null );
84                 //if ( !ForesterUtil.isEmpty( t.getTaxonomyCode() ) && t.getTaxonomyCode().length() == 5 ) {
85                 //    if ( node.getName().equalsIgnoreCase( t.getTaxonomyCode() ) ) {
86                 //        node.setName( "" );
87                 //    }
88                 //}
89                 // node.setName( "" );
90                 final Taxonomy t = node.getNodeData().getTaxonomy();
91                 System.out.println( t.getTaxonomyCode() + "\t" + t.getScientificName() + "\t" + t.getCommonName()
92                         + "\t" + label );
93             }
94             else {
95                 //System.out.println( "node " + node + " has not tax" );
96             }
97         }
98     }
99 }