def blat_getseqlen(par): sequence = par['sequence'] blatport = par['blatport'] gfcpath = par['gfcpath'] pblength = par['pblength'] file2bit = par['file2bit'] dtm = par['dtm'] minIdentity = par['minIdentity'] st = 0 # pblength = 48 seqlen = len(sequence) - pblength print(seqlen, blatport, gfcpath, sequence[0:10]) probelist = list() while st < seqlen: sp = st+pblength nowseq = sequence[st:sp] st += 5 if not nowseq: continue if not prefilter.atcg_filter(nowseq, 7): if 0 < blat.blat_search_sequence(gfcpath, sequence=nowseq, blatport=blatport, minIdentity=minIdentity, file2bit=file2bit) < 2: if not primer3_filter.primer3_filter(sequence=nowseq, dtm=dtm): probelist.append(nowseq) st += pblength return probelist
def probefilter(nowpbcounter): sequence, seqname, start = nowpbcounter['seq'].split('\t') dTm = nowpbcounter['dTm'] rPrimer = nowpbcounter['rprimer'] keep = False if prefilter.atcg_filter(sequence, 5): # print(self.sequence, " not pass atcg") pass elif dTm == -1: keep = True else: if rPrimer: if primer3_filter.primer3_filter_withRprimer(sequence, rPrimer, dtm=dTm): pass else: keep = True else: if primer3_filter.primer3_filter(sequence, dtm=dTm): pass else: keep = True return (nowpbcounter['seq'], keep)
def probefilter(nowpbcounter): sequence, seqname, start = nowpbcounter['seq'].split('\t') dTm = nowpbcounter['dTm'] rPrimer = nowpbcounter['rprimer'] keep = False if prefilter.atcg_filter(sequence, 5): # print(self.sequence, " not pass atcg") pass else: if rPrimer: if primer3_filter.primer3_filter_withRprimer(sequence, rPrimer, dtm=dTm): pass else: keep = True else: if primer3_filter.primer3_filter(sequence, dtm=dTm): pass else: keep = True return (nowpbcounter['seq'], keep)
def exonerate_getseqlen(par): sequence = par['sequence'] exonerateport = par['exonerateport'] ep = par['ep'] minIdentity = par['minIdentity'] pblength = par['pblength'] print(sequence[1:10], exonerateport, ep, minIdentity, pblength) st = 0 # pblength = 48 seqlen = len(sequence) - pblength probelist = list() tmpfa = sequence[1:10] + str(random.randint(1, 100)) + str(int(time.time())) + '.fa' tmpfaio = open(tmpfa,'w') tmpseq = dict() while st < seqlen: sp = st+pblength nowseq = sequence[st:sp] st += 5 # print(nowseq) if not nowseq: continue if not prefilter.atcg_filter(nowseq, 7): if nowseq in tmpseq: tmpseq[nowseq] += 1 else: tmpseq[nowseq] = 1 for nowseq in tmpseq: if tmpseq[nowseq] == 1: print('>',nowseq, sep='', file=tmpfaio) print(nowseq, file=tmpfaio) tmpfaio.close() exonerate.exonerate_search_sequence2(ep=ep, sequencefile=tmpfa, exonerateport=exonerateport, minIdentity=minIdentity) return probelist