Coordination

Coordination

Author:

Orion Cohen, Tingzheng Hou, Kara Fong

Year:

2021

Copyright:

GNU Public License v3

Elucidate the coordination of each solvating species.

Coordination numbers for each solvent are automatically calculated, along with the types of every coordinating atom.

While coordination can be used in isolation, it is meant to be used as an attribute of the Solute class. This makes instantiating it and calculating the solvation data a non-issue.

class solvation_analysis.coordination.Coordination[source]

Calculate the coordination number for each solvent.

Coordination calculates the coordination number by averaging the number of coordinated solvents in all of the solvation shells. This is equivalent to the typical method of integrating the solute-solvent RDF up to the solvation radius cutoff. As a result, Coordination calculates species-species coordination numbers, not the total coordination number of the solute. So if the coordination number of mol1 is 3.2, there are on average 3.2 mol1 residues within the solvation distance of each solute.

The coordination numbers are made available as an mean over the whole simulation and by frame.

Parameters:
  • solvation_data (pandas.DataFrame) – The solvation data frame output by Solute.

  • n_frames (int) – The number of frames in solvation_data.

  • n_solutes (int) – The number of solutes in solvation_data.

  • solvent_counts (Dict[str, int]) – A dictionary of the number of residues for each solvent.

  • atom_group (MDAnalysis.core.groups.AtomGroup) – The atom group of all atoms in the universe.

Examples

# first define Li, BN, and FEC AtomGroups
>>> solute = Solute(Li, {'BN': BN, 'FEC': FEC, 'PF6': PF6})
>>> solute.run()
>>> solute.coordination.coordination_numbers
{'BN': 4.328, 'FEC': 0.253, 'PF6': 0.128}
__init__(solvation_data, n_frames, n_solutes, solvent_counts, atom_group)[source]
static from_solute(solute)[source]

Generate a Coordination object from a solute.

Parameters:

solute (Solute)

Return type:

Pairing

property coordination_numbers

A dictionary where keys are residue names (str) and values are the mean coordination number of that residue (float).

property coordination_numbers_by_frame

A DataFrame of the mean coordination number of in each frame of the trajectory.

property coordinating_atoms

Fraction of each atom_type participating in solvation, calculated for each solvent.

property coordination_vs_random

Coordination number relative to random coordination.

Values higher than 1 imply a higher coordination than expected from random distribution of solvents. Values lower than 1 imply a lower coordination than expected from random distribution of solvents.