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')
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