Skip to content

Topology Status #926

@CalCraven

Description

@CalCraven

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'
  2. 'name'
  3. 'angle_types'
  4. 'atom_types'
  5. 'bond_types'
  6. 'dihedral_types'
  7. 'improper_types'
  8. '_pairpotential_types'
  9. 'pairpotential_types'
  10. '_sites'
  11. 'sites'
  12. '_virtual_sites'
  13. 'virtual_sites'
  14. '_bonds'
  15. 'bonds'
  16. '_box'
  17. 'box'
  18. '_scaling_factors'
  19. 'scaling_factors'
  20. '_combining_rule'
  21. 'combining_rule'
  22. 'connection_types'
  23. 'connections'
  24. 'identify_connections'
  25. 'positions'
  26. 'unique_site_labels'
  27. '_unit_system'
  28. 'unit_system'

Conversions

  1. 'to_dataframe'
  2. 'load'
  3. 'save'
  4. 'write_forcefield'

Garbage Handlers

  1. 'remove_connection'
  2. 'remove_pairpotentialtype'
  3. 'remove_site'

Adders

  1. 'add_connection'
  2. 'add_pairpotentialtype'
  3. 'add_site'
  4. '_add_virtual_site'

Getters

  1. 'get_lj_scale'
  2. 'get_scaling_factors'
  3. 'get_electrostatics_scale'
  4. 'get_forcefield'
  5. 'get_index`
  6. '_get_untyped_sites'
  7. '_get_scaling_factor'

Setters

  1. 'set_electrostatics_scale'
  2. 'set_lj_scale'
  3. 'set_rigid'
  4. 'set_scaling_factors'
  5. '_set_scaling_factor'

iter methods

  1. 'iter_connections_by_site'
  2. 'iter_sites'
  3. 'iter_sites_by_molecule'
  4. 'iter_sites_by_residue'

Methods we can remove

  1. '_bookkeep_potentials'
  2. '_potentials_count'
  3. 'is_updated'
  4. 'update_angle_types'
  5. 'update_atom_types'
  6. 'update_bond_types'
  7. 'update_connection_types'
  8. 'update_dihedral_types'
  9. 'update_improper_types'
  10. 'update_topology'
  11. 'n_angles'
  12. 'n_bonds'
  13. 'n_connections'
  14. 'n_dihedrals'
  15. 'n_impropers'
  16. 'n_sites'
  17. 'n_virtual_sites'

Discuss

  1. '_angles'
  2. 'angles'
  3. '_dihedrals'
  4. 'dihedrals'
  5. '_impropers'
  6. 'impropers'
  7. '_unique_connections' # uncertain if this is used enough
  8. 'create_subtop' # not sure this is useful for anything

Condense

  1. '_get_angles_for' # replace if we have implement bond_graph
  2. '_get_bonds_for' # replace if we have implement bond_graph
  3. '_get_dihedrals_for' # replace if we have implement bond_graph
  4. '_get_untyped_angles' # condense into get_untyped_connections
  5. '_get_untyped_bonds' # condense into get_untyped_connections
  6. '_get_untyped_dihedrals' # condense into get_untyped_connections
  7. '_get_untyped_impropers' # condense into get_untyped_connections
  8. 'angle_type_expressions' # topology expressions
  9. 'atom_type_expressions'
  10. 'bond_type_expressions'
  11. 'connection_type_expressions'
  12. 'dihedral_type_expressions'
  13. 'improper_type_expressions'
  14. 'pairpotential_type_expressions'
  15. 'is_fully_typed' # some get_istyped method
  16. 'is_typed' # some get_istyped method
  17. 'get_untyped' # some get_istyped method
  18. '_typed' # some get_istyped method
  19. '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
  2. 'molecule_scaling_factors'
  3. '_pandas_from_parameters' # This should just be a function that takes a topology
  4. '_parse_dataframe_attrs' # This should just be a function that takes a topology
  5. '_parse_parameter_expression' # move to some sort of topology parser utils or the units module
  6. 'convert_potential_styles' # move to conversions.py
  7. 'convert_unit_styles' # move to conversions.py

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions