コード例 #1
0
def generate_align_html(alignment):
    ret = []

    inter = []
    for i in alignment.get('qDNA.a'):
        inter.append(colorify(i.upper()))
    ret.append(inter)
    
    inter = []
    for i in alignment.get('match.a'):
        inter.append(colorify(i.upper()))
    ret.append(inter)
    
    inter = []
    for i in alignment.get('tDNA.a'):
        inter.append(i.upper())
    ret.append(inter)
    return ret
コード例 #2
0
ファイル: blast_to_ionogram.py プロジェクト: Jorges1000/TS
def gen_colorify(rowCol, alignstringfill):
    align = []
    inter = []
    index = 0
    for i in alignstringfill[rowCol][:3]:
        if index != 2:
            inter.append(colorify(i.upper()))
            index += 1
        else:
            inter.append(i.upper())
    return inter
コード例 #3
0
ファイル: tfParse.py プロジェクト: Jorges1000/TS
def ionograms(metrics):
    """generage ionograms from tf information"""
    for k, v in metrics.iteritems():
        title = str(k)
        savePaths = []
        alignment = []
        for i in range(10):
            key = "Top " + str(i + 1)
            if key in v:
                index = i + 1
                e = v[key]
                splitE = e.split(",")
                row = splitE[0]
                col = splitE[1]
                pre = splitE[2]
                post = splitE[3]
                ideal = splitE[4]
                bars = splitE[5]
                called = splitE[6]
                preA = [float(i) for i in pre.strip().split(" ")]
                postA = [float(i) for i in post.strip().split(" ")]
                rowCol = "(%s,%s)" % (row, col)

                header = title + " Pre-Corrected " + rowCol
                preIonogram = plotters.IonogramJMR("TACG", preA[: len(preA)], preA[: len(preA)], header)
                preIonogram.render()
                preSavePath = "Pre-Corrected_%s_%s.png" % (index, title)
                pylab.savefig(preSavePath)

                header = title + " Post-Corrected " + rowCol
                preIonogram = plotters.IonogramJMR("TACG", postA[: len(postA)], postA[: len(postA)], header)
                preIonogram.render()
                postSavePath = "Post-Corrected_%s_%s.png" % (index, title)
                pylab.savefig(postSavePath)
                savePaths.append([preSavePath, postSavePath])
                alignment = [called, bars, ideal]
                alignhtml = []
                index = 0
                for string in alignment:
                    ainter = []
                    if index != 2:
                        index += 1
                        for i in string:
                            ainter.append(colorify(i.upper()))
                    else:
                        for i in string:
                            ainter.append(i.upper())
                    alignhtml.append(ainter)
        # print savePaths
        if len(savePaths) > 0:
            generateWeb(savePaths, title, alignhtml)
コード例 #4
0
ファイル: blast_to_ionogram.py プロジェクト: Jorges1000/TS
def blastToIonogram(blastPath, displayNum, byLength, key, floworder, getPerfect):
    blast = open(blastPath, "r")
    fullRowCol = {}
    firstIdentity = []
    alignstring = {}
    startVal = {}
    endVal = {}
    currentQuery = None
    for line in blast:
        if "Iteration_query-def>" in line:
            if line not in fullRowCol:
                line = line.strip()
                line = line.strip().split(">")
                line = line[1].split("<")
                line = str(line[0])
                line = line.strip()
                fullRowCol[line] = []
                alignstring[line] = []
                currentQuery = line
        if byLength:
            if "Hsp_qseq" in line:
                fullRowCol[currentQuery].append(line.strip())
        else:
            if "Hsp_bit-score" in line:
                fullRowCol[currentQuery].append(line.strip())
        if "Hsp_query-from" in line:
            alignstring[currentQuery].append(line.strip())
        if "Hsp_query-to" in line:
            alignstring[currentQuery].append(line.strip())
        if "Hsp_align-len" in line:
            alignstring[currentQuery].append(line.strip())
        if "Hsp_positive" in line:
            alignstring[currentQuery].append(line.strip())
        if "Hsp_qseq" in line:
            alignstring[currentQuery].append(line.strip())
        if "Hsp_midline" in line:
            alignstring[currentQuery].append(line.strip())
        if "Hsp_hseq" in line:
            alignstring[currentQuery].append(line.strip())

    #print alignstring
    alignstringfill = {}
    for k,v in alignstring.iteritems():
        curval = None
        curkey = None
        bars = None
        if len(v)>0:
            fr = v[0].split(">")
            fr = fr[1].split("<")
            fr = fr[0]
            #print fr
            to = v[1].split(">")
            to = to[1].split("<")
            to = to[0]
            #print to
            pos = v[2].split(">")
            pos = pos[1].split("<")
            pos = pos[0]
            #print pos
            lengt = v[3].split(">")
            lengt = lengt[1].split("<")
            lengt = lengt[0]
            #print length
            q = v[4].split(">")
            q = q[1].split("<")
            q=q[0]
            #print q
            s = v[5].split(">")
            s = s[1].split("<")
            s = s[0]
            #print s
            bars = v[6].split(">")
            bars = bars[1].split("<")
            bars = bars[0]
            #print bars
            output = [q,bars,s,fr,to,pos,lengt]
            curKey = k.split("|")
            row = curKey[0].split("r")[-1]
            col = curKey[1].split("c")[-1]
            rowcol = (int(row), int(col))
            alignstringfill[rowcol] = output
    #print fullRowCol
    filtered = {}
    for k,v in fullRowCol.iteritems():
        curVal = None
        curKey = None
        if len(v) > 0:
            curVal = v[0].split(">")
            curVal = curVal[1].split("<")
            curVal = curVal[0]
            curKey = k.split("|")
            row = curKey[0].split("r")[-1]
            col = curKey[1].split("c")[-1]
            rowcol = (int(row), int(col))
            if byLength:
                filtered[rowcol] = length(curVal)
            else:
                filtered[rowcol] = float(curVal)
    sortedWells = sorted(filtered.items(), key=itemgetter(1), reverse = True)
    topfive = []
    classData = []
    readsVcycles = []
    perfect_alignments = []
    for rowcol,val in sortedWells:
        dif = abs(int(alignstringfill[rowcol][3])-int(alignstringfill[rowcol][4]))
        to = int(alignstringfill[rowcol][4])
        fro = int(alignstringfill[rowcol][3])
        string = alignstringfill[rowcol][0]
        matched = alignstringfill[rowcol][5]
        lengt = alignstringfill[rowcol][6]
        if 'N' not in string:
            if to<3 or fro<3 and dif>21:
                topfive.append((rowcol,val))
                classData.append((rowcol,val,dif,string))
                if matched == lengt:
                    perfect_alignments.append((rowcol,val))
    if getPerfect:
        topfive = perfect_alignments[:displayNum]
    else:
        topfive = topfive[:displayNum]
    if len(classData)<10000:
        cycles_vs_align_len(classData, blastPath, floworder)
    else:
        cycles_vs_align_len(classData[:10000], blastPath, floworder)
    alignmenthtml = {}
    space_string = {}
    for rowcol,val in topfive:
        inter = []
        index = 0
        for i in alignstringfill[rowcol][:3]:
            if index == 0:
                inter.append(i.upper())
                index += 1
            else:
                inter.append(colorify(i.upper()))
            alignmenthtml[rowcol] = inter
        countLen = math.floor(len(alignstringfill[rowcol][:3][0]))
        #print alignstringfill[rowcol][:3][0]
        space_string[rowcol] = "".join(get_align_num(countLen))
    return (topfive, alignmenthtml, alignstringfill, space_string)
コード例 #5
0
ファイル: test.py プロジェクト: mahfuznow/colorify
from colorify import *

# initializing COLORIFY
init_colorify()

#this will generate text in random color
for i in range(10):
    print(colorify("Random Colored text"))

# text color = green
print(colorify("Sucess", C.green))
# text color = black , background color = green
print(colorify("Sucess", C.black, C.green))

print(colorify("Error ", C.red))
print(colorify("Error ", C.white, C.red))

print(colorify("Alert ", C.orange))
print(colorify("Alert ", C.black, C.orange))

print(colorify("Info  ", C.blue))
print(colorify("Info  ", C.white, C.crimson))

#this will print all the color
printAllColor()