Package schrodinger :: Package application :: Package desmond :: Package packages :: Package msys :: Module knot
[hide private]
[frames] | no frames]

Module knot


Given a system, find any instances where a bond is 'threaded' through a ring, 
like so

                /-------       \       /                 \     /                    \----\  ---------------               \         /                       \-------/         
The algorithm works as follows:

    1. Produce a list of all cycles in the bond topology (i.e. rings)
    2. For each ring:
        a. Use boxing and distance cutoffs to reduce the number of bonds to check against
        b. Divide the ring into N triangles
        c. Check for a triangle-line intersection between the triangle and each relevant bond

Functions [hide private]
 
ut_intersection()
 
FindKnots(mol, max_cycle_size=None, selection='all', ignore_excluded_knots=False, verbose=False)
 
get_lipid_atoms(cycle, bond, dms)
 
fix_thread(mol, cycle, bond, idx, move_lipid, dirty, verbose=True)
 
fix_all_threads(mol, intersections, move_lipid=False, verbose=True)
 
UntieKnots(mol, max_cycle_size=None, selection="all", move_lipid=False, iteration_limit=20, ignore_excluded_knots=False, verbose=True)