prolint.core.groups

Atom group extensions for ProLint.

This module provides extended atom group classes with additional functionality for biomolecular interaction analysis.

Classes

PLAtomGroupBase

Abstract base class for ProLint atom group operations.

ExtendedAtomGroup

Extended MDAnalysis AtomGroup with additional ProLint functionality.

Module Contents

class prolint.core.groups.PLAtomGroupBase[source]

Bases: abc.ABC

Abstract base class for ProLint atom group operations.

Defines the interface for atom group manipulation methods used throughout ProLint.

abstractmethod add(resname: str | list[str] | None = None, atomname: str | list[str] | None = None, resnum: int | list[int] | None = None, atomids: int | list[int] | None = None) ExtendedAtomGroup[source]

Add atoms to the atom group.

Parameters:
  • resname (str or list of str, optional) – Residue name(s) to add.

  • atomname (str or list of str, optional) – Atom name(s) to add.

  • resnum (int or list of int, optional) – Residue number(s) to add.

  • atomids (int or list of int, optional) – Atom ID(s) to add.

Returns:

New atom group with added atoms.

Return type:

ExtendedAtomGroup

abstractmethod remove(resname: str | list[str] | None = None, atomname: str | list[str] | None = None, resnum: int | list[int] | None = None, atomids: int | list[int] | None = None) ExtendedAtomGroup[source]

Remove atoms from the atom group.

Parameters:
  • resname (str or list of str, optional) – Residue name(s) to remove.

  • atomname (str or list of str, optional) – Atom name(s) to remove.

  • resnum (int or list of int, optional) – Residue number(s) to remove.

  • atomids (int or list of int, optional) – Atom ID(s) to remove.

Returns:

New atom group with specified atoms removed.

Return type:

ExtendedAtomGroup

abstractmethod get_resnames(resids: Iterable[int], out: type[list] | type[dict] = list) list[str] | Dict[int, str][source]

Get residue names for given residue IDs.

Parameters:
  • resids (Iterable of int) – Residue IDs to look up.

  • out (type, default=list) – Output format: list or dict.

Returns:

Residue names as list or as {resid: resname} mapping.

Return type:

list of str or dict

abstractmethod get_resids(resname: str) numpy.ndarray[source]

Get residue IDs for a given residue name.

Parameters:

resname (str) – Residue name to look up.

Returns:

Array of residue IDs matching the residue name.

Return type:

ndarray

abstractmethod get_all_resids(resnames: Iterable[str], out: type[list] | type[dict] = list) list[numpy.ndarray] | Dict[str, numpy.ndarray][source]

Get residue IDs for multiple residue names.

Parameters:
  • resnames (Iterable of str) – Residue names to look up.

  • out (type, default=list) – Output format: list or dict.

Returns:

Residue IDs as list of arrays or as {resname: resids} mapping.

Return type:

list or dict

abstractmethod filter_resids_by_resname(resids: Iterable[int], resname: str) numpy.ndarray[source]

Filter residue IDs to keep only those matching a residue name.

Parameters:
  • resids (Iterable of int) – Residue IDs to filter.

  • resname (str) – Residue name to match.

Returns:

Subset of input resids that match the residue name.

Return type:

ndarray

property unique_resnames: numpy.ndarray[source]
Abstractmethod:

Unique residue names in the atom group.

Returns:

Array of unique residue names.

Return type:

ndarray

property resname_counts: collections.Counter[source]
Abstractmethod:

Count of residues for each residue name.

Returns:

Mapping of residue name to count.

Return type:

Counter

class prolint.core.groups.ExtendedAtomGroup(*args: Any, **kwargs: Any)[source]

Bases: MDAnalysis.AtomGroup, PLAtomGroupBase

Extended MDAnalysis AtomGroup with additional ProLint functionality.

Provides enhanced methods for manipulating and querying atom selections, with cached properties for efficient repeated access.

Parameters:
  • *args (tuple) – Arguments passed to MDAnalysis AtomGroup.

  • **kwargs (dict) – Keyword arguments passed to MDAnalysis AtomGroup.

Examples

>>> from prolint import Universe
>>> u = Universe("topology.gro", "trajectory.xtc")
>>> u.database.unique_resnames
array(['POPC', 'POPE', 'CHOL'], dtype='<U4')
>>> u.database.resname_counts
Counter({'POPC': 128, 'POPE': 64, 'CHOL': 32})

Add atoms:

>>> extended = u.database.add(resname="DPPC")

Remove atoms:

>>> filtered = u.database.remove(resname="CHOL")

See also

Universe.query

Query atom group (typically protein)

Universe.database

Database atom group (typically lipids)

add(resname: str | list[str] | None = None, atomname: str | list[str] | None = None, resnum: int | list[int] | None = None, atomids: int | list[int] | None = None) ExtendedAtomGroup[source]

Add atoms to the atom group.

See PLAtomGroupBase.add() for parameter documentation.

remove(resname: str | list[str] | None = None, atomname: str | list[str] | None = None, resnum: int | list[int] | None = None, atomids: int | list[int] | None = None) ExtendedAtomGroup[source]

Remove atoms from the atom group.

See PLAtomGroupBase.remove() for parameter documentation.

get_resnames(resids: Iterable[int], out: type[list] | type[dict] = list) list[str] | Dict[int, str][source]

Get residue names for given residue IDs.

See PLAtomGroupBase.get_resnames() for parameter documentation.

get_resids(resname: str) numpy.ndarray[source]

Get residue IDs for a given residue name.

See PLAtomGroupBase.get_resids() for parameter documentation.

get_all_resids(resnames: Iterable[str], out: type[list] | type[dict] = list) list[numpy.ndarray] | Dict[str, numpy.ndarray][source]

Get residue IDs for multiple residue names.

See PLAtomGroupBase.get_all_resids() for parameter documentation.

filter_resids_by_resname(resids: Iterable[int], resname: str) numpy.ndarray[source]

Filter residue IDs to keep only those matching a residue name.

See PLAtomGroupBase.filter_resids_by_resname() for parameter documentation.

property unique_resnames: numpy.ndarray[source]

Unique residue names in the atom group.

Returns:

Array of unique residue names.

Return type:

ndarray

property resname_counts: collections.Counter[source]

Count of residues for each residue name.

Returns:

Mapping of residue name to count.

Return type:

Counter