コード例 #1
0
ファイル: find_overlap.py プロジェクト: metajinomics/dev
def find_presence(gene,filelist,algene):
    fpri = []
    rpri = []
    for x in filelist:
        if(gene in x):
            fpri,rpri =  utils.read_trad_primer(x)
    fon = []
    for i in range(0,len(fpri)):
        if(utils.if_amplified(fpri[i],rpri[i],algene[gene])):
            fon.append([fpri[i],rpri[i]])
    return fon
コード例 #2
0
ファイル: find_least_primer.py プロジェクト: metajinomics/dev
def main():
    #read list
    list_gene = {}
    for line in open(sys.argv[1],'r'):
        spl = line.strip().split('\t')
        if(list_gene.has_key(spl[2])):
            temp = list_gene[spl[2]]
            temp.append(spl[1])
            list_gene[spl[2]] = temp
        else:
            temp = [spl[1]]
            list_gene[spl[2]] = temp

    #read fasta
    fafile = sys.argv[2]
    faseq = utils.read_fasta_usda(fafile)

    #read primers -> primer
    mypath = sys.argv[3]
    onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
    primer = {}
    for file in onlyfiles:
        if (file[:1] == "."):
            continue
        fullpath = mypath+file
        fpri,rpri = utils.read_trad_primer(fullpath)
        locus = file.split('.')[0]
        if(primer.has_key(locus)):
            temp = primer[locus]
            temp.append([fpri,rpri])
            primer[locus] = temp
        else:
            primer[locus] = [fpri,rpri]
    
#    print list_gene
    for item in list_gene.items():                                                                      
        if(len(item[1]) >1):
            genename = item[0]
            g1 = item[1][0]
            g2 = item[1][1]
            if( primer.has_key(g1) and primer.has_key(g2)):
                find_least_primer_two_gene(g1,g2,faseq,primer,genename)
            #else:
            #    print g1,g2
        else:
            genename = item[0]
            g1 = item[1][0]
            if(primer.has_key(g1)):
                find_lease_primer_one_gene(g1,faseq,primer,genename)
コード例 #3
0
ファイル: check_primers.py プロジェクト: metajinomics/dev
def main():
    oligotm = sys.argv[1]
    ntthal = sys.argv[2]
    minTm = 55
    maxTm = 100
    maxHair = 24
    #read primer
    file = sys.argv[3]
    fpri,rpri = utils.read_trad_primer(file)
    #print fpri
    #print rpri
    for f in fpri:
        check_mt(f,oligotm, minTm, maxTm)
        check_hair(f,ntthal,maxHair)
    for r in rpri:
        check_mt(r,oligotm, minTm, maxTm)
        check_hair(r,ntthal,maxHair)
コード例 #4
0
ファイル: find_primer.py プロジェクト: metajinomics/dev
def main():
    min = 200
    max = 370
    #parameters that used
    mis = 0
    #read primer
    fpri, rpri = utils.read_trad_primer(sys.argv[1])
    lfile = sys.argv[2]
    num = 0
    seq = utils.read_fasta(sys.argv[2])
    for item in seq.items():
        se = item[1]
        for f in fpri:
            for i in range(0, len(se)-len(f)):
                str1 = se[i:len(f)+i]
                #print str1, f
                #print mismatch(str1,f,mis)
                if mismatch(str1,f,mis):
                    #print "match"
                    num += 1
                    output = ">F:"+lfile+"_"+str(num)+"\n"+f+'\n'
                    #print output
                    #print ">F:",f, i
                    for r in rpri:
                        rp = r
                        for j in range(0, len(se)-len(rp)):
                            str2 = se[j:len(rp)+j]
                            if mismatch(str2,rp,mis):
                                #print "match"
                                frp = reverse_complement.get_rc(rp)
                                #print ">R:",frp,j+len(rp), j+len(rp)-i
                                flen = j+len(rp)-i
                                #print flen
                                if(flen >min and flen<max):
                                    output = output + ">R:"+lfile+"_"+str(num)+"\n"+frp+'\n'
                                    print output