Package edu.msu.cme.rdp.classifier.train.validation

Source Code of edu.msu.cme.rdp.classifier.train.validation.DecisionMakerTest

/*
* DecisionMakerTest.java
* NetBeans JUnit based test
*
* Created on June 25, 2002, 3:59 PM
*/               

package edu.msu.cme.rdp.classifier.train.validation;

import edu.msu.cme.rdp.classifier.train.LineageSequence;
import edu.msu.cme.rdp.classifier.train.LineageSequenceParser;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.Reader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import junit.framework.Test;
import junit.framework.TestCase;
import junit.framework.TestSuite;

        
/**
*
* @author wangqion
*/
public class DecisionMakerTest extends TestCase {

    public DecisionMakerTest(java.lang.String testName) {
        super(testName);
    }       
       
    public static void main(java.lang.String[] args) {
        junit.textui.TestRunner.run(suite());
    }
   
    /** Test of getBestClasspath method, of class Classification.DecisionMaker. */
    public void testGetBestClasspath() throws IOException{
      System.out.println("testGetBestClasspath");
      Reader taxReader = new FileReader(System.class.getResource("/test/classifier/testDMtaxon.txt").getFile());
      TreeFactory factory = new TreeFactory(taxReader);
     
      File infileReader = new File(System.class.getResource("/test/classifier/testDMtrain.fasta").getFile())
   
      LineageSequenceParser parser = new LineageSequenceParser(infileReader);    
      
      while ( parser.hasNext() ){
        factory.addSequence( (LineageSequence)parser.next());       
      }  
      //after all the training set is being parsed, calculate the prior probability for all the words.
     
      factory.calculateWordPrior();           
     
      List nodeList = new ArrayList();
      HierarchyTree root = factory.getRoot();
      //root.getNodeList("GENUS", nodeList);
           
      DecisionMaker dm = new DecisionMaker(factory);
      //test addResult()
       
        HashMap determinedMap = new HashMap ();
   
    HierarchyTree Gammaproteobacteria = root.getSubclassbyName("Proteobacteria").getSubclassbyName("Gammaproteobacteria");
   
    HierarchyTree Enterobacteriales = Gammaproteobacteria.getSubclassbyName("Enterobacteriales");
        HierarchyTree determinedGenusNode = Enterobacteriales.getSubclassbyName("Enterobacteriaceae").getSubclassbyName("Enterobacter");   //Enterobacter
       
    HierarchyTree aNode = determinedGenusNode;
    while (aNode != null){     
      determinedMap.put(aNode, new ValidationClassificationResult(aNode, 0, 0));
      aNode = aNode.getParent();
    }
   
    HierarchyTree bestNode = Gammaproteobacteria.getSubclassbyName("Vibrionales").getSubclassbyName("Vibrionaceae").getSubclassbyName("Vibrio")// Vibrio
    dm.addResult(new ValidationClassificationResult(bestNode, 1), determinedMap);
    assertEquals( ((ValidationClassificationResult)determinedMap.get(determinedGenusNode)).getNumOfVotes(), 0.0f, 0.0001)//Enterobacter
    assertEquals( ((ValidationClassificationResult)determinedMap.get(Enterobacteriales)).getNumOfVotes(), 0.0f, 0.0001)//Enterobacteriales
    assertEquals( ((ValidationClassificationResult)determinedMap.get(Gammaproteobacteria)).getNumOfVotes(), 1.0f, 0.0001)//Gammaproteobacteria
       
        //Enterobacter
    dm.addResult(new ValidationClassificationResult(determinedGenusNode, 1), determinedMap);
    assertEquals( ((ValidationClassificationResult)determinedMap.get(determinedGenusNode)).getNumOfVotes(), 1.0f, 0.0001)//Enterobacter
    assertEquals( ((ValidationClassificationResult)determinedMap.get(Enterobacteriales)).getNumOfVotes(), 1.0f, 0.0001)//Enterobacteriales
    assertEquals( ((ValidationClassificationResult)determinedMap.get(Gammaproteobacteria)).getNumOfVotes(), 2.0f, 0.0001)//Gammaproteobacteria
   
    dm.addResult(new ValidationClassificationResult(determinedGenusNode, 1), determinedMap);
              
        bestNode = root.getSubclassbyName("Firmicutes").getSubclassbyName("Clostridia").getSubclassbyName("Clostridiales").getSubclassbyName("Clostridiaceae").getSubclassbyName("Clostridium")// Clostridium
        dm.addResult(new ValidationClassificationResult(bestNode, 1), determinedMap);
    assertEquals( ((ValidationClassificationResult)determinedMap.get(determinedGenusNode)).getNumOfVotes(), 2.0f, 0.0001)//Enterobacter
    assertEquals( ((ValidationClassificationResult)determinedMap.get(Enterobacteriales)).getNumOfVotes(), 2.0f, 0.0001)//Enterobacteriales
    assertEquals( ((ValidationClassificationResult)determinedMap.get(Gammaproteobacteria)).getNumOfVotes(), 3.0f, 0.0001)//Gammaproteobacteria
    assertEquals( ((ValidationClassificationResult)determinedMap.get(root)).getNumOfVotes(), 4.0f, 0.0001)//Bacteria
        // end test addResult()
    
    }
 
    public static Test suite() {
      TestSuite suite = new TestSuite(DecisionMakerTest.class);
     
      return suite;
    }
     

}
TOP

Related Classes of edu.msu.cme.rdp.classifier.train.validation.DecisionMakerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.