def plot_synteny(seq1, ind1, seq2, ind2, y1, y2,
featType, matrix, cm, seqname):
"""This function plots all the lines for each"""
myPatches = []
colormap = {"COX1": '#c0d9ef',
"L": '#e8f1df',
"I": '#f7dedc',
"16S": '#ff2e00',
"12S": '#ffc239',
"cal": '#ffff54',
"COX2": "#7fce66",
"ND2": "#00ae60",
"COX3": "#00aeec",
"ND1": "#006fbb",
"*": "#ffffff",
"(": "#ded9c5",
"Q": "#ffc294",
"?": "#b5a2c4",
"ND4": "#968b5a",
"ND3": "#00fc65",
"ND4L": "#00dcf0",
"ND6": "#ff994e",
"ND5": "#dc31e6",
"X": "#d8d8d8",
"G": "#abdce7",
"CYTB": "#ff0059"}
for i in range(len(seq1)):
feat1 = seq1[i]
feat2 = seq2[i]
if feat1 != '-' and feat2 != '-':
xs = []
ys = []
xs.append(ind1[i]) # top left
ys.append(y1)
xs.append(ind1[i] + 1) # top right
ys.append(y1)
xs.append(ind2[i] + 1) # bottom right
ys.append(y2)
xs.append(ind2[i]) #bottom left
ys.append(y2)
xs.append(ind1[i]) #top left
ys.append(y1)
alpha = 0.5
if featType in ['CDS', 'gene']:
try:
val = matrix[(feat1, feat2)]
except:
val = matrix[(feat2, feat1)]
color = cm[val]
alpha = color[-1]
elif featType == 'rRNA':
if feat1 != feat2:
alpha=0
color = colormap[seqname]
stack1 = np.column_stack([xs, ys])
myPatches.append(patches.Polygon(stack1, closed=True,
color = color,
alpha = alpha,
lw=0))
return myPatches
评论列表
文章目录