Topology Status
**A summary of the question or discussion topic.**
Topology is a pretty bulky object with lots of methods. This is a mix of forward facing methods, deprecated methods, and just can be difficult to parse through. This list of Topology attributes provides a place for some discussion of ways to trim this down and only present information that would be useful. Also, parsing a topology would be much easier if we included a default bond_graph with the topology, which will enable fast searching of attributes by bond neighbors and would perhaps simplify some of the many parsing methods in Topology.
#### Keep
1. '_name'
1. 'name'
1. 'angle_types'
1. 'atom_types'
1. 'bond_types'
1. 'dihedral_types'
1. 'improper_types'
1. '_pairpotential_types'
1. 'pairpotential_types'
1. '_sites'
1. 'sites'
1. '_virtual_sites'
1. 'virtual_sites'
1. '_bonds'
1. 'bonds'
1. '_box'
1. 'box'
1. '_scaling_factors'
1. 'scaling_factors'
1. '_combining_rule'
1. 'combining_rule'
1. 'connection_types'
1. 'connections'
1. 'identify_connections'
1. 'positions'
1. 'unique_site_labels'
1. '_unit_system'
1. 'unit_system'
#### Conversions
1. 'to_dataframe'
1. 'load'
1. 'save'
1. 'write_forcefield'
#### Garbage Handlers
1. 'remove_connection'
1. 'remove_pairpotentialtype'
1. 'remove_site'
#### Adders
1. 'add_connection'
1. 'add_pairpotentialtype'
1. 'add_site'
1. '_add_virtual_site'
#### Getters
1. 'get_lj_scale'
1. 'get_scaling_factors'
1. 'get_electrostatics_scale'
1. 'get_forcefield'
1. 'get_index`
1. '_get_untyped_sites'
1. '_get_scaling_factor'
#### Setters
1. 'set_electrostatics_scale'
1. 'set_lj_scale'
1. 'set_rigid'
1. 'set_scaling_factors'
1. '_set_scaling_factor'
#### iter methods
1. 'iter_connections_by_site'
1. 'iter_sites'
1. 'iter_sites_by_molecule'
1. 'iter_sites_by_residue'
#### Methods we can remove
1. '_bookkeep_potentials'
1. '_potentials_count'
1. 'is_updated'
1. 'update_angle_types'
1. 'update_atom_types'
1. 'update_bond_types'
1. 'update_connection_types'
1. 'update_dihedral_types'
1. 'update_improper_types'
1. 'update_topology'
1. 'n_angles'
1. 'n_bonds'
1. 'n_connections'
1. 'n_dihedrals'
1. 'n_impropers'
1. 'n_sites'
1. 'n_virtual_sites'
## Discuss
1. '_angles'
1. 'angles'
1. '_dihedrals'
1. 'dihedrals'
1. '_impropers'
1. 'impropers'
1. '_unique_connections' # uncertain if this is used enough
1. 'create_subtop' # not sure this is useful for anything
#### Condense
1. '_get_angles_for' # replace if we have implement bond_graph
1. '_get_bonds_for' # replace if we have implement bond_graph
1. '_get_dihedrals_for' # replace if we have implement bond_graph
1. '_get_untyped_angles' # condense into get_untyped_connections
1. '_get_untyped_bonds' # condense into get_untyped_connections
1. '_get_untyped_dihedrals' # condense into get_untyped_connections
1. '_get_untyped_impropers' # condense into get_untyped_connections
1. 'angle_type_expressions' # topology expressions
1. 'atom_type_expressions'
1. 'bond_type_expressions'
1. 'connection_type_expressions'
1. 'dihedral_type_expressions'
1. 'improper_type_expressions'
1. 'pairpotential_type_expressions'
1. 'is_fully_typed' # some get_istyped method
1. 'is_typed' # some get_istyped method
1. 'get_untyped' # some get_istyped method
1. '_typed' # some get_istyped method
1. 'typed' # some get_istyped method
#### Extract into other modules
1. '_molecule_scaling_factors' # can we condense molecule information into a single class that has this information
1. 'molecule_scaling_factors'
1. '_pandas_from_parameters' # This should just be a function that takes a topology
1. '_parse_dataframe_attrs' # This should just be a function that takes a topology
1. '_parse_parameter_expression' # move to some sort of topology parser utils or the units module
1. 'convert_potential_styles' # move to conversions.py
1. 'convert_unit_styles' # move to conversions.py
0 条评论