ProjectInfo = Serializer.LoadFromHDF(
    '/Users/tud51931/projects/MSM/msm/ff03-hybridkcenter/sourcedata/ProjectInfo.h5'
)
Counts = -1 * np.ones(
    (ProjectInfo['NumTrajs'], max(ProjectInfo['TrajLengths'])))
print Counts.shape

Savepath = '/Users/tud51931/projects/MSM/msm/ff03-hybridkcenter/result/NvOfTrajectory'
plt.figure()
plt.xlabel('Steps')
plt.ylabel('Nv')
plt.hold(False)
for i in range(0, 93):
    T = Trajectory.LoadFromHDF(
        '/Users/tud51931/projects/MSM/msm/ff03-hybridkcenter/sourcedata/Trajectories/trj%d_hc.h5'
        % i)
    Hcount = hct.count_Helix(T)
    plt.title('Nv-steps of Traj%d' % i)
    plt.plot(range(len(Hcount)), Hcount, '.')
    print 'Save figure to %s/Nvoftraj%d.png' % (Savepath, i)
    plt.savefig('%s/Nvoftraj%d.png' % (Savepath, i))
    Counts[i, :len(Hcount)] = Hcount[:]

Counts_ma = np.ma.array(Counts, mask=[Counts == -1])
H_mean = Counts_ma.mean(0)
H_std = Counts_ma.std(0)
print H_mean

plt.figure()
plt.plot(range(len(H_mean)), H_mean, 'b')
Beispiel #2
0
def Nvprediction():
    try:
        mean_numhelix_states = loadtxt('mean_numhelix_states.dat')
    except IOError:

        StatesAsi = hct.get_StatesAssignments(Assignments)
        NumHelix_states = hct.compute_numhelix_states(StatesAsi)
        #print "NumHelix_states",NumHelix_states
        #savetxt('NumHelix_states',NumHelix_states)
        states = [int(i) for i in NumHelix_states.keys()]
        states.sort()
        mean_numhelix_states = []
        std_numhelix_states = []
        for state in states:
            mean_numhelix_states.append(np.mean(NumHelix_states['%d' % state]))
            std_numhelix_states.append(np.std(NumHelix_states['%d' % state]))
        savetxt('mean_numhelix_states.dat', mean_numhelix_states)
        savetxt('std_numhelix_states.dat', std_numhelix_states)
    #plt.figure()
    #plt.errorbar(states,mean_numhelix_states,std_numhelix_states)
    #plt.xlabel("State ID")
    #plt.ylabel("Number of Helix")
    #plt.savefig("Numhelix_states")
    #plt.show()

    P0 = np.zeros(len(Population))
    for data in Assignments['Data']:
        P0[data[0]] += 1
    P0 = P0 / P0.sum()
    populationslist = []
    for k in range(140):  # tau = 50, so 140*50 = 7000
        populationslist.append(P0)
        P0 *= Tmatrix

    numhelix = np.dot(np.array(populationslist),
                      np.array(mean_numhelix_states).reshape(-1, 1))
    print numhelix
    numhelix = numhelix.reshape(1, -1)[0]
    plt.figure()
    plt.plot(
        np.arange(0, 7000, 50),
        numhelix,
        'ro',
    )  # tau = 50, so 140*50 = 7000
    plt.hold(True)

    Counts = -1 * np.ones(
        (ProjectInfo['NumTrajs'], max(ProjectInfo['TrajLengths'])))
    print Counts.shape

    for i in range(0, 93):
        T = Trajectory.LoadFromHDF(
            '/Users/tud51931/projects/MSM/msm/ff03-hybridkcenter/sourcedata/Trajectories/trj%d_hc.h5'
            % i)
        Hcount = hct.count_Helix(T)
        Counts[i, :len(Hcount)] = Hcount[:]

    Counts_ma = np.ma.array(Counts, mask=[Counts == -1])
    H_mean = Counts_ma.mean(0)
    H_std = Counts_ma.std(0)
    print H_mean

    plt.plot(range(len(H_mean)), H_mean, 'b')

    plt.title('Nv-steps')
    plt.xlabel('Steps')
    plt.ylabel('Nv')
    plt.legend(('Nv_msm', 'Nv_rawdata'), loc='upper left')
    figname = 'Nv_prediction_%sCluster%0.1f_tau%d.png' % (metrics, cutoff, tau)
    plt.savefig(figname)
    print "Save to %s" % figname