schrodinger.application.mcpro.perturbations module

Classes for dealing with graphs for constructing optimal FEP pathways.

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.application.mcpro.perturbations.PertID(fragA=None, fragB=None, weight=None)

Storage class for perturbation identification

class schrodinger.application.mcpro.perturbations.PertReorder(start=None, end=None, start_dummies=None, end_dummies=None)

Storage class for perturbation reordering

add_atom(start, end, start_dummy, end_dummy)

Method to add an atom to the reorder list

class schrodinger.application.mcpro.perturbations.Perturbations(verticies, pert_db_file=None, pert_db_type='ring')

Class to read, create, and manipulate the graph of perturbations from which user-specified list of fragments will be converted to a list of FEPs to be run

analyze_paths(reference=None)

Method to get shortest paths based on the lowest scoring minimum spanning graph. Central vertex against which all ddGs will be computed may be found automatically or selecte by the user. Reference vertex must be a member of the subgraph

create_adjacent_list(perturb_ids, verticies)

Method takes the complete list of perturbation IDs and the list of fragments currently of interest and creates the symmetric reweighted adjacent list in the form

G = { ‘A’:{‘B’:1, ‘C’:10},
‘B’:{‘C’:10, ‘A’:1}, ‘C’:{‘A’:10, ‘B’:1}}
dijkstra(G, start, end=None)

Implementation of Dijkstra’s algorithm to find the shortest path between start and end verticies. Note G is a hash of the form, where the verticies (A, B, C) are connected by edges with weights of 1 or 10.

G = { ‘A’:{‘B’:1, ‘C’:10},
‘B’:{‘C’:10, ‘A’:1}, ‘C’:{‘A’:10, ‘B’:1}}

All weights must be positive and symmetric, i.e. A-B weight must equal B-A weight.

generate_reordered_ct(mode, ct, reorder_obj)

Method to convert input ct for use in Model System creation for FEP mode = 1 convert ct for use as starting struture mode = 2 convert ct for use as ending structure

Take input structure, add any necessary dummy atoms, create new reorder list, reorder molecule.

get_best_vertex(verticies, dist)

Method to return lowest weighted connection to vertex G found in verticies

get_diff_pert(path, found_pert, adj_list)

Method looks for perturbations found in path and not found in array of pertub_ids in found_pert and sums their weights

get_directed_pert(pertid)

Method that returns the directed perturbation path taken from the perturbation database for an A->B transformation

get_gui_table()

Method to return two lists containing the FEPs to be performed text_curr_pert contains ‘A -> B’ once for each sub-perturbation needed text_path_pert contains the titles for each sub-perturbation

get_pert_data()
get_pert_reference()
get_pert_unique_feps()

return a directed list of all unique perturbations to be performed

get_text_path(path, fromLig, toLig)

Method converts a path to the text labels suitable for output in the GUI table

get_weight(verticies, pertid)

Method to identify if current pertid fragments are found in the vertex list and return appropriate scale factors

grab_reorder_obj(start, end)

return PertReorder objects for start and end structures

modify_ct(startCt, endCt)

Method to set bond lengths/angles/torsions for dummy atoms found in start/end Cts

shortestPath(G, start, end)

Find a single shortest path from the given start vertex to the given end vertex. The input has the same conventions as dijkstra(). The output is a list of the vertices in order along the shortest path.

schrodinger.application.mcpro.perturbations.adjustDum(ct, value, atom1, atom2, atom3=None, atom4=None)

Adjust a distance, angle or dihedral angle. If atom3 is None then the distance between atom1 and atom2 will be set to value, atom2 and all atoms attached to that atom will be moved. If atom4 is None then the angle between atom1, atom2 and atom3 will set to value, atom3 and all other atoms attached to that will be moved. If all atoms are specified then the dihedral angle made by atom1, atom2, atom3 and atom4 will be set to value and atom4 and all other atoms attached to that will be moved. All distances are specified in Angstroms, all angles in degrees.

All atom arguments can be integers or _StructureAtom objects. There is no return value for this function.

schrodinger.application.mcpro.perturbations.convert_to_pos_dihedral(inDih)
schrodinger.application.mcpro.perturbations.find_pert_db(pert_db_type='ring')

Method to return perturbation database path

schrodinger.application.mcpro.perturbations.gen_reordered_ct(mode, ct, reorder_obj)

Method to convert input ct for use in Model System creation for FEP mode = 1 convert ct for use as starting struture mode = 2 convert ct for use as ending structure

Take input structure, add any necessary dummy atoms, create new reorder list, reorder molecule.

schrodinger.application.mcpro.perturbations.import_perturbations(file)

Method reads the perturbation database which includes a list of perturbation ids and the structural reordering lists/dummy additions. Data in perturb_ids[] is directional, i.e. fragA->fragB

schrodinger.application.mcpro.perturbations.modify_ct(startCt, endCt)

Method to set bond lengths/angles/torsions for dummy atoms found in start/end Cts

schrodinger.application.mcpro.perturbations.set_dummy_geometry(ct, refct, tmp)

Set dummy atom geometries in ct bond, angle, and torsions are set off first bond/angle/torsion found in refct that doesn’t correspond to a newly added dummy atom. datom-batom-aatom,tatom