schrodinger.application.matsci.network_cg_mapping.classification module

Classify bonded components for network or molecular CG mapping.

Classification is intentionally conservative. Each complete bonded component is analyzed through its heavy-atom AtomicNetwork. A component is routed to the network mapper when it has a nonzero PBC cycle-winding rank or a finite repeat rank of at least two. Other components remain available to the existing protein and general molecular mappers. Components containing protein atoms are retained on the protein route without repeat analysis.

This first implementation does not divide one bonded component into separate network and molecular regions.

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.application.matsci.network_cg_mapping.classification.ComponentClassification(component_index: int, atom_ids: Sequence[int], heavy_atom_ids: Sequence[int], use_network_mapper: bool, repeat_model: Optional[RepeatModel], network: Optional[AtomicNetwork] = None, diagnostics: Sequence[str] = ())

Bases: object

Mapping-policy classification for one complete bonded component.

atom_ids includes hydrogens so the result partitions the original Structure. Repeat detection uses only heavy_atom_ids. network and repeat_model are None for components containing no heavy atoms or assigned to the protein mapper.

Parameters:
  • component_index – One-based component index in deterministic order

  • atom_ids – All Structure atom indices in the component

  • heavy_atom_ids – Non-hydrogen atom indices used for repeat detection

  • use_network_mapper – Whether to route the component to network mapping

  • repeat_model – Detected heavy-atom repeat representation, if any

  • network – Converted heavy-atom network used for repeat detection

  • diagnostics – Explanation of the routing decision

component_index: int
atom_ids: Sequence[int]
heavy_atom_ids: Sequence[int]
use_network_mapper: bool
repeat_model: Optional[RepeatModel]
network: Optional[AtomicNetwork] = None
diagnostics: Sequence[str] = ()
__init__(component_index: int, atom_ids: Sequence[int], heavy_atom_ids: Sequence[int], use_network_mapper: bool, repeat_model: Optional[RepeatModel], network: Optional[AtomicNetwork] = None, diagnostics: Sequence[str] = ()) → None
schrodinger.application.matsci.network_cg_mapping.classification.component_atom_ids(struct)

Return complete bonded components in deterministic atom-index order.

Parameters:

struct (Structure) – Structure whose components should be found

Return type:

tuple(model.AtomGroup)

Returns:

Sorted atom indices for each bonded component

schrodinger.application.matsci.network_cg_mapping.classification.protein_atom_ids(struct)

Return atoms that must retain priority for the protein mapping route.

The protein ASL identifies protein atoms even if protein mapping was not completed. Successfully protein-mapped atoms are also recognized from the Martini mapping marker and original residue metadata. Requiring all three properties distinguishes them from other specialized Martini mappings.

Parameters:

struct (Structure) – Structure whose protein atoms should be identified

Return type:

frozenset[int]

Returns:

Atom indices reserved for the protein route

schrodinger.application.matsci.network_cg_mapping.classification.classify_components(struct)

Classify complete bonded components for network or molecular mapping.

Nonzero PBC cycle winding is decisive evidence of an infinite-periodic network. A zero-winding component is routed to network mapping only when the translation detector finds at least two independent finite repeat directions. In particular, a finite rank-one polymer remains molecular.

Parameters:

struct (Structure) – Complete atomistic Structure to classify

Return type:

tuple(ComponentClassification)

Returns:

Component classifications forming a disjoint atom partition