⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 standardtopologymodelercreator.java

📁 马尔科夫模型的c语言实现
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
import java.io.*;import java.util.*;class StandardTopologyModelerCreator{        BufferedReader reader;    ModelMaker modelmaker;    String hmmrow;        private final static double R_LOOP = 4.0;    private final static double HU_LOOP = 4.0;    private final static double HD_LOOP = 4.0;    private final static double C_LOOP = 2.0;    public StandardTopologyModelerCreator(String hmmfile, String outdir)    {	try {	    BufferedReader br = new BufferedReader(new FileReader(hmmfile));	    hmmrow = br.readLine();	    StringTokenizer st = new StringTokenizer(hmmrow, "\t ");	    if(st.countTokens() < 1) {		printerr("Could not create hmm");		System.exit(0);	    }	    modelmaker = new ModelMaker();	    	    /* read name */	    String hmmName = st.nextToken();	    	    /* read priorfiles */	    LinkedList priorfiles = new LinkedList();	    LinkedList priorScalers = new LinkedList();	    for(int i = 0; i < 9; i++) {		hmmrow = br.readLine();		st = new StringTokenizer(hmmrow, " \t");		st.nextToken();		priorfiles.add(st.nextToken());		priorScalers.add(st.nextToken());	    }	    /* read init distributions */	    double[][] emissionProbs = new double[9][20];	    for(int i = 0; i < 9; i++) {		hmmrow = br.readLine();		st = new StringTokenizer(hmmrow, "\t ");		if(st.countTokens() != 21) {		    printerr("Could not create hmm");		    System.exit(0);		}		st.nextToken();		for(int j = 0; j < 20; j++) {		    emissionProbs[i][j] = Double.parseDouble(st.nextToken());		}	    }	    /* read expected looplengths */	    hmmrow = br.readLine();	    st = new StringTokenizer(hmmrow, " \t");	    st.nextToken();	    int lengthO = Integer.parseInt(st.nextToken());	    hmmrow = br.readLine();	    st = new StringTokenizer(hmmrow, " \t");	    st.nextToken();	    int lengthI = Integer.parseInt(st.nextToken());	   	    createHMM(hmmName, priorfiles, priorScalers, emissionProbs, lengthO, lengthI);	    saveHMM(outdir);	}	catch(IOException e) {	    printerr("Could not read from hmmfile");	    System.exit(0);	}    }    /****************input/output handling**********************************/    private void println(String s)    {	System.out.println(s);    }    private void newln(){	System.out.println("");    }    private void printerr(String s)    {	System.out.println("Error: " + s);    }    private void print(String s)    {	System.out.print(s);	System.out.flush();    }    private String readln()    {	try {	String s = reader.readLine();	if(s == "" || s == null) {	    return null;	}	s = s.trim();	return s;	}	catch(IOException e) {	    P.INTERNAL_ERROR("DataReader.readLine: IOException");	    return null;	}    }            /*******************************HMM methods****************************/    private void createHMM(String name, LinkedList priorfiles, LinkedList priorScalers, double[][] emissionProbs, int lengthO,			   int lengthI)    {	modelmaker.createHMM(name);	modelmaker.setAlphabet(HMM.AMINO);	int res = modelmaker.createModule("s", HMM.STARTNODE, HMM.ZERO, 1, "0");		res = modelmaker.createModule("l_bott_u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l_top_u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l11u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l21u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l22u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l31u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l32u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l33u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l41u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l42u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l43u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l44u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l51u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l52u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l53u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l54u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l55u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l_bott_d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l_top_d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l11d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l21d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l22d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l31d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l32d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l33d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l41d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l42d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l43d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l44d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l51d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l52d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l53d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l54d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l55d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("g", HMM.SINGLELOOP, HMM.EVEN, 1, "g");		res = modelmaker.createModule("l_u", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("l_d", HMM.SINGLENODE, HMM.EVEN, 1, "l");	res = modelmaker.createModule("c", HMM.SINGLENODE, HMM.EVEN, 1, "c");	res = modelmaker.createModule("c_loop", HMM.SINGLELOOP, HMM.EVEN, 1, "c");		res = modelmaker.createModule("r1", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r2", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r3", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r4", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r5", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r6", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r7", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r8", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r9", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r10", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r11", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r12", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r13", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r14", HMM.SINGLENODE, HMM.EVEN, 1, "r");	res = modelmaker.createModule("r_loop", HMM.SINGLELOOP, HMM.EVEN, 1, "r");	res = modelmaker.createModule("hu1", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hu2", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hu3", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hu4", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hu5", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hu6", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hu7", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hu8", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hu9", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hu10", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hu11", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hu12", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hu_loop", HMM.SINGLELOOP, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hd1", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hd2", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hd3", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hd4", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hd5", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hd6", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hd7", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hd8", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hd9", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hd10", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hd11", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hd12", HMM.SINGLENODE, HMM.EVEN, 1, "h");	res = modelmaker.createModule("hd_loop", HMM.SINGLELOOP, HMM.EVEN, 1, "h");		res = modelmaker.createModule("L_bott_u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L_top_u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L11u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L21u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L22u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L31u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L32u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L33u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L41u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L42u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L43u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L44u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L51u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L52u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L53u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L54u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L55u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L_bott_d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L_top_d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L11d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L21d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L22d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L31d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L32d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L33d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L41d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L42d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L43d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L44d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L51d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L52d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L53d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L54d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L55d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("G", HMM.SINGLELOOP, HMM.EVEN, 1, "G");		res = modelmaker.createModule("L_u", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("L_d", HMM.SINGLENODE, HMM.EVEN, 1, "L");	res = modelmaker.createModule("C", HMM.SINGLENODE, HMM.EVEN, 1, "C");	res = modelmaker.createModule("C_loop", HMM.SINGLELOOP, HMM.EVEN, 1, "C");		res = modelmaker.createModule("R1", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R2", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R3", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R4", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R5", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R6", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R7", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R8", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R9", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R10", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R11", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R12", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R13", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R14", HMM.SINGLENODE, HMM.EVEN, 1, "R");	res = modelmaker.createModule("R_loop", HMM.SINGLELOOP, HMM.EVEN, 1, "R");	res = modelmaker.createModule("Hu1", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hu2", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hu3", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hu4", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hu5", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hu6", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hu7", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hu8", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hu9", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hu10", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hu11", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hu12", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hu_loop", HMM.SINGLELOOP, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hd1", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hd2", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hd3", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hd4", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hd5", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hd6", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hd7", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hd8", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hd9", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hd10", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hd11", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hd12", HMM.SINGLENODE, HMM.EVEN, 1, "H");	res = modelmaker.createModule("Hd_loop", HMM.SINGLELOOP, HMM.EVEN, 1, "H");       	res = modelmaker.createModule("ohelixi1", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ohelixi2", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ohelixi3", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ohelixi4", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ohelixi5", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ohelixi6", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ohelixi7", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ohelix", HMM.FORWARD_STD, HMM.EVEN, 2, 22, "M");	res = modelmaker.createModule("ohelixo2", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ohelixo3", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ohelixo4", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ohelixo5", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ohelixo6", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ohelixo7", HMM.SINGLENODE, HMM.EVEN, 1, "M");		res = modelmaker.createModule("ihelixi2", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ihelixi3", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ihelixi4", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ihelixi5", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ihelixi6", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ihelixi7", HMM.SINGLENODE, HMM.EVEN, 1, "M");		res = modelmaker.createModule("ihelix", HMM.FORWARD_STD, HMM.EVEN, 2, 22, "M");	res = modelmaker.createModule("ihelixo1", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ihelixo2", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ihelixo3", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ihelixo4", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ihelixo5", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ihelixo6", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("ihelixo7", HMM.SINGLENODE, HMM.EVEN, 1, "M");	res = modelmaker.createModule("e", HMM.ENDNODE, HMM.ZERO, 1, "0");		/* start */	modelmaker.setTransition("s", "g");	modelmaker.setTransition("s", "G");	modelmaker.setTransition("s", "l_u");	modelmaker.setTransition("s", "L_u");	modelmaker.initializeTransitionProbabilities("s");	

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -