📄 shadowmsatmhmmcreator.java
字号:
import java.io.*;import java.util.*;class ShadowMsaTMHMMCreator{ BufferedReader reader; ModelMaker modelmaker; String hmmrow; /* first input parameter is a file with description of init values etc * second input parameter is a name of outputdir */ public ShadowMsaTMHMMCreator(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 < 7; 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[8][22]; for(int i = 0; i < 8; i++) { hmmrow = br.readLine(); st = new StringTokenizer(hmmrow, "\t "); if(st.countTokens() != 23) { printerr("Could not create hmm"); System.exit(0); } st.nextToken(); for(int j = 0; j < 22; j++) { emissionProbs[i][j] = Double.parseDouble(st.nextToken()); } } /* read expected looplengths */ hmmrow = br.readLine(); st = new StringTokenizer(hmmrow, " \t"); st.nextToken(); int lengthOL = Integer.parseInt(st.nextToken()); hmmrow = br.readLine(); st = new StringTokenizer(hmmrow, " \t"); st.nextToken(); int lengthOS = Integer.parseInt(st.nextToken()); hmmrow = br.readLine(); st = new StringTokenizer(hmmrow, " \t"); st.nextToken(); int lengthI = Integer.parseInt(st.nextToken()); hmmrow = br.readLine(); st = new StringTokenizer(hmmrow, " \t"); st.nextToken(); double Po = Double.parseDouble(st.nextToken()); hmmrow = br.readLine(); st = new StringTokenizer(hmmrow, " \t"); st.nextToken(); int f_i = Integer.parseInt(st.nextToken()); int q_i = Integer.parseInt(st.nextToken()); hmmrow = br.readLine(); st = new StringTokenizer(hmmrow, " \t"); st.nextToken(); int f_o = Integer.parseInt(st.nextToken()); int q_o = Integer.parseInt(st.nextToken()); hmmrow = br.readLine(); st = new StringTokenizer(hmmrow, " \t"); st.nextToken(); double gapOpenerProb = Double.parseDouble(st.nextToken()); hmmrow = br.readLine(); st = new StringTokenizer(hmmrow, " \t"); st.nextToken(); double gapLenProb = Double.parseDouble(st.nextToken()); createHMM(hmmName, priorfiles, priorScalers, emissionProbs, lengthOL, lengthOS, lengthI, Po, f_i, q_i, f_o, q_o, gapOpenerProb, gapLenProb); 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 lengthOL, int lengthOS, int lengthI, double Po, int f_i, int q_i, int f_o, int q_o, double gapOpenerProb, double gapLenProb) { modelmaker.createHMM(name); modelmaker.setAlphabet(HMM.AMINO_DOUBLE_GAP); int res = modelmaker.createModule("s", HMM.STARTNODE, HMM.ZERO, 1, "0"); res = modelmaker.createModule("in10", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in10_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in11", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in11_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in12", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in12_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in13", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in13_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in14", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in14_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in15", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in15_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in16", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in16_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in17", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in17_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in18", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in18_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in19", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in19_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in20", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in20_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in21", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in21_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in22", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in22_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in23", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in23_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in24", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in24_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in25", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in25_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in26", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in26_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in27", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in27_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in28", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in28_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in29", HMM.SINGLENODE, HMM.EVEN, 1, "i"); res = modelmaker.createModule("in29_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("inglob1", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("inglob1_s", HMM.SINGLELOOP, HMM.EVEN, 1, "i"); res = modelmaker.createModule("outglob10", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob10_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob11", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob11_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob12", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob12_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob13", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob13_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob14", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob14_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob15", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob15_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob16", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob16_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob17", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob17_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob18", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob18_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob19", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob19_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob20", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob20_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob21", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob21_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob22", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob22_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob23", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob23_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob24", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob24_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob25", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob25_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob26", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob26_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob27", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob27_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob28", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob28_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob29", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglob29_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglobLong", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("outglobLong_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out10", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out10_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out11", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out11_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out12", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out12_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out13", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out13_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out14", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out14_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out15", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out15_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out16", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out16_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out17", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out17_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out18", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out18_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out19", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out19_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out20", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out20_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out21", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out21_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out22", HMM.SINGLENODE, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out22_s", HMM.SINGLELOOP, HMM.EVEN, 1, "o"); res = modelmaker.createModule("out23", HMM.SINGLENODE, HMM.EVEN, 1, "o");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -