def __init__(self,S,atomindices=None,permuteindices=None): super(LPTraj,self).__init__(S) aidx = list(atomindices) if atomindices != None else [] pidx = list(itertools.chain(*permuteindices)) if permuteindices != None else [] if atomindices == None: self.TD = RMSD.TheoData(S['XYZList']) else: self.TD = RMSD.TheoData(S['XYZList'][:,np.array(aidx)])
target = c_xyzlist[which, :, :] progressive = False for i in range(1, len(xyzlist)): if progressive: target = c_xyzlist[i - i] rmsd, operator = kabsch(c_xyzlist[i], target, operator=True) c_xyzlist[i] = operator(c_xyzlist[i]) return c_xyzlist if __name__ == '__main__': "Some test code" N = 40 query = np.arange(N)[:, np.newaxis] * np.random.randn(N, 3) target = np.arange(N)[:, np.newaxis] * np.random.randn(N, 3) dist, op = kabsch(query, target) print('my rmsd ', dist) from msmbuilder.metrics import RMSD _rmsdcalc = RMSD() t0 = RMSD.TheoData(query[np.newaxis, :, :]) t1 = RMSD.TheoData(target[np.newaxis, :, :]) print('msmbuilder rmsd', _rmsdcalc.one_to_all(t0, t1, 0)[0]) print(np.sqrt(np.sum(np.square(target - op(query))) / N))