2 package org.forester.application;
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;
15 public class simple_node_processor {
17 private final static String BASE = "b_";
19 public static void main( final String args[] ) {
23 CommandLineArguments cla = null;
24 cla = new CommandLineArguments( args );
25 in = cla.getFile( 0 );
26 out = cla.getFile( 1 );
28 System.out.println( out + " already exists" );
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();
38 while ( it.hasNext() ) {
39 final PhylogenyNode node = it.next();
40 processNode( node, i, out.toString() );
43 // final PhylogenyWriter writer = new PhylogenyWriter();
44 // writer.toPhyloXML( out, phylogeny_0, 0 );
46 catch ( final Exception e ) {
47 System.out.println( e.getLocalizedMessage() );
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 );
61 private static void processNode( final PhylogenyNode node, final int i, 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 );
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( "" );
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( "" );
89 // node.setName( "" );
90 Taxonomy t = node.getNodeData().getTaxonomy();
91 System.out.println( t.getTaxonomyCode() + "\t" + t.getScientificName() + "\t" + t.getCommonName()
95 //System.out.println( "node " + node + " has not tax" );