matching_a_rigid_body_to_a_known_fragment
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| matching_a_rigid_body_to_a_known_fragment [2011/08/25 06:18] – alancoelho | matching_a_rigid_body_to_a_known_fragment [2025/09/19 15:18] (current) – external edit 127.0.0.1 | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Matching a rigid body to a known fragment ====== | ||
| + | The translation and rotation parameters of a known rigid body fragment within a unit cell can be determined by refining a rigid body against the known fragment. Consider a known fragment comprising two C atoms with sites named wC1 and wC2. Then create two more sites called C1 and C2 as follows: | ||
| + | |||
| + | |||
| + | <code topas> | ||
| + | continue_after_convergence | ||
| + | xdd... | ||
| + | str... | ||
| + | site wC1... occ C 0 | ||
| + | site wC2... occ C 0 | ||
| + | ... | ||
| + | site C1... | ||
| + | site C2... | ||
| + | ... | ||
| + | rigid | ||
| + | z_matrix C1... | ||
| + | z_matrix C2... | ||
| + | rotate @... | ||
| + | rand_xyz 2 | ||
| + | translate | ||
| + | tx ... val_on_continue = Val + Rand(-2, 2); | ||
| + | ty ... val_on_continue = Val + Rand(-2, 2); | ||
| + | tz ... val_on_continue = Val + Rand(-2, 2); | ||
| + | |||
| + | Distance_Restrain(" | ||
| + | Distance_Restrain(" | ||
| + | |||
| + | Here the known site positions start with ' | ||
| + | |||
| + | Refinement would then fit the rigid body against the known site positions. | ||
| + | |||
| + | --- // | ||
| + | |||
| + | This works as long as you don't have to consider symmetry equivalents of the C1 and wC1 sites for the mapping to work (e.g. atoms in adjacent unit cells). | ||
| + | |||
| + | <code topas> | ||
| + | Match_Site(B4_1, | ||
| + | |||
| + | macro Match_Site(s1, | ||
| + | { | ||
| + | #m_ifarg c "" | ||
| + | # | ||
| + | #m_endif | ||
| + | box_interaction to_N 0 s1 s2 c = R; | ||
| + | local =c/Z;: Rcalc | ||
| + | penalty = (wby) c^2; | ||
| + | } | ||
| + | |||
| + | </ | ||