In [ ]:
import matplotlib
%matplotlib inline

import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
import pandas as pd
import matplotlib.patches as mpatches

from sklearn.decomposition import PCA

In [53]:
sns.set_context('talk')
sns.set_style('white')

pd.options.mode.chained_assignment = None  # default='warn'

In [25]:
with open("4strains.prof") as f:
    next(f)
    lines = f.readlines()
    
    ideal = lines[:4]
    ideal = [list(map(float, s.split()[1:-1])) for s in ideal]
    print(ideal)
    
    we = lines[4:8]
    we = [list(map(float, s.split()[1:-1])) for s in we]
    print(we)


[[0.25, 0.16, 1.0, 0.8, 0.65, 0.47, 0.21, 0.29, 0.62, 0.25, 0.59], [0.71, 0.74, 0.0, 0.12, 0.18, 0.02, 0.13, 0.63, 0.23, 0.06, 0.0], [0.03, 0.1, 0.0, 0.09, 0.17, 0.02, 0.05, 0.07, 0.15, 0.03, 0.04], [0.0, 0.0, 0.0, 0.0, 0.0, 0.49, 0.62, 0.0, 0.0, 0.66, 0.37]]
[[0.3, 0.26, 0.9, 0.9, 0.83, 0.51, 0.27, 0.37, 0.78, 0.29, 0.65], [0.57, 0.6, 0.03, 0.08, 0.12, 0.01, 0.07, 0.52, 0.16, 0.02, 0.0], [0.14, 0.14, 0.03, 0.03, 0.05, 0.03, 0.08, 0.11, 0.06, 0.05, 0.01], [0.0, 0.0, 0.03, 0.0, 0.0, 0.45, 0.59, 0.0, 0.0, 0.64, 0.34]]

In [92]:
from matplotlib import pyplot as plt
import numpy as np

cmap = plt.cm.Dark2

X = [0, 1]
X_names = ["real", "we"]


f, (ax1, ax2, ax3, ax4, ax5, ax6, ax7, ax8, ax9, ax10, ax11) = plt.subplots(1, 11, figsize=(27,7.5), sharey=True)

axs = [ax1, ax2, ax3, ax4, ax5, ax6, ax7, ax8, ax9, ax10, ax11]

error = 0

for i in range(len(axs)):
    
    data1 = [ideal[0][i], we[0][i]]
    data2 = [ideal[1][i], we[1][i]]
    data3 = [ideal[2][i], we[2][i]]
    data4 = [ideal[3][i], we[3][i]]
    
    error += abs(data1[0]-data1[1]) + abs(data2[0]-data2[1]) + abs(data3[0]-data3[1]) + abs(data4[0]-data4[1])
    
    if i == 0:
        axs[i].set_ylabel("frequencies")

    axs[i].bar(X, data1, label='EDL', alpha=0.7, color=cmap(0.2))
    axs[i].bar(X, data2, bottom=data1, label='K12', alpha=0.7, color=cmap(0.3))
    axs[i].bar(X, data3, bottom=np.array(data1)+np.array(data2), label='TW', alpha=0.7, color=cmap(0.4))
    axs[i].bar(X, data4, bottom=np.array(data1)+np.array(data2)+np.array(data3),
               label='IAI39', alpha=0.7, color=cmap(0.6))
    plt.sca(axs[i])
    plt.xticks(X, X_names)
    plt.title("sample %s" % (i+1))

    if i == 10:
        plt.legend(loc = (0, -0.3))

plt.show()



In [76]:
round(error/(11*4),2)


Out[76]:
0.05

In [58]:
cmap[0]


---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-58-0845006eb560> in <module>()
----> 1 cmap[0]

TypeError: 'ListedColormap' object does not support indexing

In [ ]:


In [1]:
with open("infant_gut.prof") as f:
    next(f)
    lines = f.readlines()
    
    ideal = lines[:4]
    ideal = [list(map(float, s.split()[1:-1])) for s in ideal]
    print(ideal)
    
    we = lines[4:8]
    we = [list(map(float, s.split()[1:-1])) for s in we]
    print(we)


[[0.73, 0.74, 0.04, 0.13, 0.17, 0.04, 0.32, 0.75, 0.3, 0.2, 0.0], [0.24, 0.2, 0.95, 0.8, 0.8, 0.93, 0.52, 0.19, 0.64, 0.65, 1.0], [0.03, 0.06, 0.02, 0.07, 0.03, 0.02, 0.16, 0.06, 0.06, 0.15, 0.0], [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]]
[[0.48, 0.58, 0.0, 0.09, 0.06, 0.02, 0.32, 0.6, 0.26, 0.15, 0.02], [0.14, 0.12, 0.96, 0.81, 0.77, 0.9, 0.53, 0.12, 0.61, 0.69, 0.96], [0.01, 0.01, 0.0, 0.01, 0.01, 0.04, 0.1, 0.01, 0.01, 0.16, 0.04], [0.3, 0.23, 0.0, 0.04, 0.13, 0.02, 0.0, 0.24, 0.05, 0.06, 0.0]]

In [5]:
for i in range(11):
    s = sum([we[j][i] for j in range(len(we))])
    print(s)
    for j in range(len(we)):
        we[j][i] /= s


0.9299999999999999
0.94
0.96
0.9500000000000001
0.9700000000000001
0.9800000000000001
0.9500000000000001
0.97
0.93
1.06
1.02

In [6]:
from matplotlib import pyplot as plt
import numpy as np

cmap = plt.cm.Dark2

X = [0, 1]
X_names = ["article", "we"]


f, (ax1, ax2, ax3, ax4, ax5, ax6, ax7, ax8, ax9, ax10, ax11) = plt.subplots(1, 11, figsize=(27,7.5), sharey=True)

axs = [ax1, ax2, ax3, ax4, ax5, ax6, ax7, ax8, ax9, ax10, ax11]

error = 0

for i in range(len(axs)):
    
    data1 = [ideal[0][i], we[0][i]]
    data2 = [ideal[1][i], we[1][i]]
    data3 = [ideal[2][i], we[2][i]]
    data4 = [ideal[3][i], we[3][i]]
    
    error += abs(data1[0]-data1[1]) + abs(data2[0]-data2[1]) + abs(data3[0]-data3[1]) + abs(data4[0]-data4[1])
    
    if i == 0:
        axs[i].set_ylabel("frequencies")

    axs[i].bar(X, data1, label='strain 1', alpha=0.7, color=cmap(0.2))
    axs[i].bar(X, data2, bottom=data1, label='strain 3', alpha=0.7, color=cmap(0.3))
    axs[i].bar(X, data3, bottom=np.array(data1)+np.array(data2), label='strain 4', alpha=0.7, color=cmap(0.4))
    axs[i].bar(X, data4, bottom=np.array(data1)+np.array(data2)+np.array(data3),
               label='strain 5', alpha=0.7, color=cmap(0.6))
    plt.sca(axs[i])
    plt.xticks(X, X_names)
    plt.title("sample %s" % (i+1))

    if i == 10:
        plt.legend(loc = (0, -0.3))

plt.show()



In [ ]: