Пример #1
0
def draw_index(probs, n_picks=1, UseFastMethod=True):
    """Draw a number (or many numbers, controlled by n_picks), weighted by the probabilities probs."""
    if UseFastMethod:
        t = np.cumsum(probs)
        s = sum(probs)
        return np.searchsorted(t, np.random.rand(n_picks) * s)


tcounts = mmread(
    '/Users/tud51931/projects/MSM/msm/ff03-hybridkcenter/RMSDCluster4.2/lagtime50/tCounts.UnMapped.mtx'
)
Assignment = Serializer.LoadFromHDF(
    '/Users/tud51931/projects/MSM/msm/ff03-hybridkcenter/RMSDCluster4.2/lagtime50/Assignments.Fixed.h5'
)
trajnum = 100
frames = Assignment['Data'].shape[1]
a = Serializer()
a['Data'] = -1 * np.ones((trajnum, frames))
for traj in range(trajnum):
    print '%d of %d Trajectories' % (traj, trajnum)
    startstate = 126
    a['Data'][traj, 0] = startstate
    for step in range(1, frames):
        probs = tcounts.data[tcounts.row == startstate] / sum(
            tcounts.data[tcounts.row == startstate])
        a['Data'][traj, step] = tcounts.col[tcounts.row == startstate][
            draw_index(probs)[0]]
        startstate = a['Data'][traj, step]

a.SaveToHDF('Assignments.rmsd4.2.faked.h5')
Пример #2
0
    Path = "/Users/tud51931/projects/MSM/msm/ff03-dihedralhybrid/"
    metrics = 'Dihedral'
elif metrics.lower() == 'rmsd':
    Path = "/Users/tud51931/projects/MSM/msm/ff03-hybridkcenter/"
    metrics = 'RMSD'
Path = os.path.join(Path, '%sCluster%0.1f' % (metrics, cutoff))

AssignmentFile = os.path.join(Path, "Data", "Assignments.h5")
A = Serializer.LoadFromHDF(AssignmentFile)
StateAssignment = hct.get_StatesAssignments(AssignmentFiles=A)
RMSDFile = os.path.join(Path, "Data", "RMSD.h5")
RMSD = Serializer.LoadFromHDF(RMSDFile)
rmsd_allstates = {}
for state in StateAssignment.keys():
    rmsd_singlestate = []
    for trajid in StateAssignment[state].keys():
        rmsd_singlestate += list(
            RMSD['Data'][int(trajid)][StateAssignment[state][trajid]])
    rmsd_allstates[int(state)] = rmsd_singlestate

maxstatelength = max([len(i) for i in rmsd_allstates.values()])
StateRMSDs = copy.deepcopy(RMSD)
StateRMSDs['Data'] = -1 * np.ones((len(rmsd_allstates), maxstatelength))
for state in rmsd_allstates.keys():
    statelength = len(rmsd_allstates[state])
    StateRMSDs['Data'][state][:statelength] = rmsd_allstates[state][:]
fn = "StateRMSDs_%sCluster%0.1f.h5" % (metrics, cutoff)
Serializer.SaveToHDF(StateRMSDs, fn)
print "Save to %s" % fn
print "Done."