예제 #1
0
    def cross_prediction_residual(self, chain, range1, tlsdict1, range2, tlsdict2):
        msd1, msd2, msd1_predict2, msd2_predict1 = CrossPrectionResidual(
            chain, range1, tlsdict1, range2, tlsdict2)
        return msd1_predict2 + msd2_predict1

        IT1, IL1, IS1, IO1 = tls_calcs.isotlsdict2tensors(tlsdict1)
        IT2, IL2, IS2, IO2 = tls_calcs.isotlsdict2tensors(tlsdict2)
        return Constants.RAD2DEG2 * symmtensor33diff(IL1, IL2)
예제 #2
0
    def cross_prediction_residual(self, chain, range1, tlsdict1, range2, tlsdict2):
        msd1, msd2, msd1_predict2, msd2_predict1 = CrossPrectionResidual(
            chain, range1, tlsdict1, range2, tlsdict2)
        return msd1_predict2 + msd2_predict1

        IT1, IL1, IS1, IO1 = tls_calcs.isotlsdict2tensors(tlsdict1)
        IT2, IL2, IS2, IO2 = tls_calcs.isotlsdict2tensors(tlsdict2)
        return Constants.RAD2DEG2 * symmtensor33diff(IL1, IL2)
예제 #3
0
def ResidualInfo(chain, range, tlsdict):
    IT, IL, IS, IO = tls_calcs.isotlsdict2tensors(tlsdict)

    num_atoms = 0
    weight_sum = 0.0
    msd_sum = 0.0
    atomiter = iter_fragment_atoms(chain.iter_fragments(*range))
    for atm, uiso_tls in TLS.iter_itls_uiso(atomiter, IT, IL, IS, IO):
        num_atoms += 1
        delta = atm.temp_factor - (Constants.U2B * uiso_tls)
        msd_sum += atm.occupancy * delta**2
        weight_sum += atm.occupancy
    msd = msd_sum / weight_sum
    return msd
예제 #4
0
def ResidualInfo(chain, range, tlsdict):
    IT, IL, IS, IO = tls_calcs.isotlsdict2tensors(tlsdict)

    num_atoms = 0
    weight_sum = 0.0
    msd_sum = 0.0
    atomiter = iter_fragment_atoms(chain.iter_fragments(*range))
    for atm, uiso_tls in TLS.iter_itls_uiso(atomiter, IT, IL, IS, IO):
        num_atoms += 1
        delta = atm.temp_factor - (Constants.U2B * uiso_tls)
        msd_sum += atm.occupancy * delta**2
        weight_sum += atm.occupancy
    msd = msd_sum / weight_sum
    return msd