def plot_nucleotide_diversity(ax, fqlists, invert=False):
'''
Create a FastQC-like "?Per base sequence content" plot
Plot fraction of nucleotides per position
zip will stop when shortest read is exhausted
'''
if invert:
fqlists = [list(reversed(read)) for read in fqlists]
numreads = len(fqlists)
sns.set_style("darkgrid")
l_A, = ax.plot(
np.array([pos.count('A') / numreads for pos in zip(*fqlists)]), 'green', label='A')
l_T, = ax.plot(
np.array([pos.count('T') / numreads for pos in zip(*fqlists)]), 'red', label='T')
l_G, = ax.plot(
np.array([pos.count('G') / numreads for pos in zip(*fqlists)]), 'black', label='G')
l_C, = ax.plot(
np.array([pos.count('C') / numreads for pos in zip(*fqlists)]), 'blue', label='C')
if invert:
ax.set_xticklabels(-1 * ax.get_xticks().astype(int))
return [l_A, l_T, l_G, l_C]
评论列表
文章目录