Example #1
0
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
Example #2
0
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)
Example #3
0
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)
Example #4
0
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