def pairHmmRun2(QuerySeq,trSeq,tProb,eProb_M,eProb_X,qName): ### InitLookupTable() #print "QuerySeq ", QuerySeq #print "trSeq ", trSeq #print "tProb:\n", tProb pen = 1.0 eProb_Y = np.array([pen, pen, pen, pen]) nq = len(QuerySeq) #QuerySeq represents the putative TR region in the Query from 3DP step ntr = len(trSeq) #trSeq is the repeat Element #coarse estimation of TRs in QuerySeq #estTRinQ = int(nq/ntr) estTRinQ = (nq/float(ntr)) #A factor reflecting unrestricted TR estimation mltFactor = 1.5 #Converting QuerySeq to integers q = np.arange(nq,dtype=np.int) tempQ = map(ord,QuerySeq) q = np.asarray(tempQ) #Defining the repeatSeq for pairHmm repeatSeq = trSeq*(int(mltFactor*estTRinQ)+1) #print "estTRinQ: ",estTRinQ*mltFactor #print "repeatSeq: ",repeatSeq #Constructing the repeat array and converting to integers nr = len(repeatSeq) r = np.arange(nr,dtype=np.int) tempR = map(ord,repeatSeq) r = np.asarray(tempR) #print "nr: ",nr," nq: ",nq, " ntr: ", ntr #np.set_printoptions(suppress=True) Lf_M = np.zeros((nq+1,nr+1))-1.0*float("inf") Lf_X= np.zeros((nq+1,nr+1))-1.0*float("inf") Lf_Y = np.zeros((nq+1,nr+1))-1.0*float("inf") Lf_M,Lf_X,Lf_Y = pHf2.forwardProbLog(q,nq,r,nr,Lf_M,Lf_X,Lf_Y,eProb_M,eProb_X,eProb_Y,tProb) print "##done_FWD_Calc##\n" edf = np.zeros((nr+1)) num_TR,llr,index,ProbMax,edf,LendAt = pHf2.numTRlog(Lf_M,Lf_X,Lf_Y,ntr,nr,nq) LLRcutOff = 0.01 LallQR,index = pHf2.getAllFwdProb(Lf_M,Lf_X,Lf_Y,ntr,nr,nq) print "##AllFwdProb##\n" #lowerBound, devList, diffLLR,LLR = getLowerBound3(LallQR,index,nq,ntr,LLRcutOff,qName) diffLLR,LLR = getLowerBound_OldMethod(LallQR,index,nq,ntr,LLRcutOff,qName) print "##LowerBound##\n" #return num_TR, diffLLR, LLR,lowerBound,devList #UNCOMMENT THIS FOR THE NEW METHOD return num_TR, diffLLR, LLR #THIS IS FOR THE OLD METHOD
def pairHmmRun2(QuerySeq, trSeq, tProb, eProb_M, eProb_X, qName): ### InitLookupTable() #print "QuerySeq ", QuerySeq #print "trSeq ", trSeq #print "tProb:\n", tProb pen = 1.0 eProb_Y = np.array([pen, pen, pen, pen]) nq = len( QuerySeq ) #QuerySeq represents the putative TR region in the Query from 3DP step ntr = len(trSeq) #trSeq is the repeat Element #coarse estimation of TRs in QuerySeq #estTRinQ = int(nq/ntr) estTRinQ = (nq / float(ntr)) #A factor reflecting unrestricted TR estimation mltFactor = 1.5 #Converting QuerySeq to integers q = np.arange(nq, dtype=np.int) tempQ = map(ord, QuerySeq) q = np.asarray(tempQ) #Defining the repeatSeq for pairHmm repeatSeq = trSeq * (int(mltFactor * estTRinQ) + 1) #print "estTRinQ: ",estTRinQ*mltFactor #print "repeatSeq: ",repeatSeq #Constructing the repeat array and converting to integers nr = len(repeatSeq) r = np.arange(nr, dtype=np.int) tempR = map(ord, repeatSeq) r = np.asarray(tempR) #print "nr: ",nr," nq: ",nq, " ntr: ", ntr #np.set_printoptions(suppress=True) Lf_M = np.zeros((nq + 1, nr + 1)) - 1.0 * float("inf") Lf_X = np.zeros((nq + 1, nr + 1)) - 1.0 * float("inf") Lf_Y = np.zeros((nq + 1, nr + 1)) - 1.0 * float("inf") Lf_M, Lf_X, Lf_Y = pHf2.forwardProbLog(q, nq, r, nr, Lf_M, Lf_X, Lf_Y, eProb_M, eProb_X, eProb_Y, tProb) print "##done_FWD_Calc##\n" edf = np.zeros((nr + 1)) num_TR, llr, index, ProbMax, edf, LendAt = pHf2.numTRlog( Lf_M, Lf_X, Lf_Y, ntr, nr, nq) LLRcutOff = 0.01 LallQR, index = pHf2.getAllFwdProb(Lf_M, Lf_X, Lf_Y, ntr, nr, nq) print "##AllFwdProb##\n" #lowerBound, devList, diffLLR,LLR = getLowerBound3(LallQR,index,nq,ntr,LLRcutOff,qName) diffLLR, LLR = getLowerBound_OldMethod(LallQR, index, nq, ntr, LLRcutOff, qName) print "##LowerBound##\n" #return num_TR, diffLLR, LLR,lowerBound,devList #UNCOMMENT THIS FOR THE NEW METHOD return num_TR, diffLLR, LLR #THIS IS FOR THE OLD METHOD
def pairHmmRun(QuerySeq, trSeq, tProb, eProb_M, eProb_X): ### InitLookupTable() #print "QuerySeq ", QuerySeq #print "trSeq ", trSeq #print "tProb:\n", tProb pen = 1.0 eProb_Y = np.array([pen, pen, pen, pen]) nq = len( QuerySeq ) #QuerySeq represents the putative TR region in the Query from 3DP step ntr = len(trSeq) #trSeq is the repeat Element #coarse estimation of TRs in QuerySeq #estTRinQ = int(nq/ntr) estTRinQ = (nq / float(ntr)) #A factor reflecting unrestricted TR estimation mltFactor = 1.5 #Converting QuerySeq to integers q = np.arange(nq, dtype=np.int) tempQ = map(ord, QuerySeq) q = np.asarray(tempQ) #Defining the repeatSeq for pairHmm repeatSeq = trSeq * (int(mltFactor * estTRinQ) + 1) #print "estTRinQ: ",estTRinQ*mltFactor #print "repeatSeq: ",repeatSeq #Constructing the repeat array and converting to integers nr = len(repeatSeq) r = np.arange(nr, dtype=np.int) tempR = map(ord, repeatSeq) r = np.asarray(tempR) #print "nr: ",nr," nq: ",nq, " ntr: ", ntr #np.set_printoptions(suppress=True) Lf_M = np.zeros((nq + 1, nr + 1)) - 1.0 * float("inf") Lf_X = np.zeros((nq + 1, nr + 1)) - 1.0 * float("inf") Lf_Y = np.zeros((nq + 1, nr + 1)) - 1.0 * float("inf") Lf_M, Lf_X, Lf_Y = pHf2.forwardProbLog(q, nq, r, nr, Lf_M, Lf_X, Lf_Y, eProb_M, eProb_X, eProb_Y, tProb) print "##done_FWD_Calc##\n" edf = np.zeros((nr + 1)) num_TR, llr, index, ProbMax, edf, LendAt = pHf2.numTRlog( Lf_M, Lf_X, Lf_Y, ntr, nr, nq) #num_TR,llr,index,ProbMax,edf,LendAt = numTRlog(Lf_M,Lf_X,Lf_Y,ntr,nr,nq) #print "LendAt: ", LendAt #print "index: ", index #print "edf: ", edf samplesNumTR = generateSamples(edf, index, ntr, 50) print "##sampling##\n" LLRcutOff = 0.01 LallQR, index = pHf2.getAllFwdProb(Lf_M, Lf_X, Lf_Y, ntr, nr, nq) #print "index where max prob exists: ", index print "##AllFwdProb##\n" #lowerBound, devList, maxLlrIdx = getLowerBound(LallQR,index,nq,ntr,LLRcutOff) highDivLen, highDivRegion = getLowerBound2(LallQR, index, nq, ntr, LLRcutOff) print "##LowerBound##\n" return num_TR, llr, ProbMax, samplesNumTR, highDivLen, highDivRegion
def pairHmmRun(QuerySeq,trSeq,tProb,eProb_M,eProb_X): ### InitLookupTable() #print "QuerySeq ", QuerySeq #print "trSeq ", trSeq #print "tProb:\n", tProb pen = 1.0 eProb_Y = np.array([pen, pen, pen, pen]) nq = len(QuerySeq) #QuerySeq represents the putative TR region in the Query from 3DP step ntr = len(trSeq) #trSeq is the repeat Element #coarse estimation of TRs in QuerySeq #estTRinQ = int(nq/ntr) estTRinQ = (nq/float(ntr)) #A factor reflecting unrestricted TR estimation mltFactor = 1.5 #Converting QuerySeq to integers q = np.arange(nq,dtype=np.int) tempQ = map(ord,QuerySeq) q = np.asarray(tempQ) #Defining the repeatSeq for pairHmm repeatSeq = trSeq*(int(mltFactor*estTRinQ)+1) #print "estTRinQ: ",estTRinQ*mltFactor #print "repeatSeq: ",repeatSeq #Constructing the repeat array and converting to integers nr = len(repeatSeq) r = np.arange(nr,dtype=np.int) tempR = map(ord,repeatSeq) r = np.asarray(tempR) #print "nr: ",nr," nq: ",nq, " ntr: ", ntr #np.set_printoptions(suppress=True) Lf_M = np.zeros((nq+1,nr+1))-1.0*float("inf") Lf_X= np.zeros((nq+1,nr+1))-1.0*float("inf") Lf_Y = np.zeros((nq+1,nr+1))-1.0*float("inf") Lf_M,Lf_X,Lf_Y = pHf2.forwardProbLog(q,nq,r,nr,Lf_M,Lf_X,Lf_Y,eProb_M,eProb_X,eProb_Y,tProb) print "##done_FWD_Calc##\n" edf = np.zeros((nr+1)) num_TR,llr,index,ProbMax,edf,LendAt = pHf2.numTRlog(Lf_M,Lf_X,Lf_Y,ntr,nr,nq) #num_TR,llr,index,ProbMax,edf,LendAt = numTRlog(Lf_M,Lf_X,Lf_Y,ntr,nr,nq) #print "LendAt: ", LendAt #print "index: ", index #print "edf: ", edf samplesNumTR = generateSamples(edf,index,ntr,50) print "##sampling##\n" LLRcutOff = 0.01 LallQR,index = pHf2.getAllFwdProb(Lf_M,Lf_X,Lf_Y,ntr,nr,nq) #print "index where max prob exists: ", index print "##AllFwdProb##\n" #lowerBound, devList, maxLlrIdx = getLowerBound(LallQR,index,nq,ntr,LLRcutOff) highDivLen, highDivRegion = getLowerBound2(LallQR,index,nq,ntr,LLRcutOff) print "##LowerBound##\n" return num_TR, llr, ProbMax, samplesNumTR, highDivLen, highDivRegion