schrodinger.application.matsci.martini3_types module¶
Martini 3 bead-type taxonomy.
Defines the bead-naming system used by the Martini 3 force field: size prefixes (regular/small/tiny), chemical types (P/N/C/Q/X/W/D), numeric levels, and interaction-modifier suffixes, plus the parsing/predicate helpers used throughout the M3 toolchain.
This module has no dependency on coarsegrain and is intended as a
low-level building block that both coarsegrain and martini3_ff
(force-field parameterization and mapping) may import safely.
Reference: Souza, P.C.T. et al. Martini 3: a general purpose force field for coarse-grained molecular dynamics. Nature Methods 18, 382-388 (2021).
Copyright Schrodinger, LLC. All rights reserved.
- schrodinger.application.matsci.martini3_types.parseBeadType(bead_name)¶
Parse a Martini 3 bead name into its components.
- Parameters:
bead_name – bead type string, e.g. ‘SP2a’, ‘TC5’, ‘Q3n’
- Return type:
tuple(str, str, int or None, str)
- Returns:
(size_prefix, chem_letter, numeric_level_or_None, suffix)
- Raises:
ValueError – if the bead name is invalid or nonconforming
- schrodinger.application.matsci.martini3_types.generateAllBeadTypes()¶
Generate the full set of valid Martini 3 bead types.
The enumeration follows:
For each size prefix (R, S, T):
For each chemical type with levels (P, N, C, Q, X):
For each level in that type’s range:
Bare type + each single suffix + each compound suffix
For standalone types (W, D): bare type only
Plus the virtual site type ‘U’
- Return type:
list(str)
- Returns:
sorted list of all valid Martini 3 bead type strings
- schrodinger.application.matsci.martini3_types.isMartini3ChargedType(bead_name)¶
Return True if the bead is a charged (Q-family) type.
- Parameters:
bead_name – Martini 3 bead type string
- Return type:
bool
- Returns:
True if Q-family
- schrodinger.application.matsci.martini3_types.isMartini3RingType(bead_name)¶
Return True if the bead is a ring type (S-size prefix in Martini 3 denotes aliphatic ring beads, T-size prefix denotes aromatic ring beads).
In Martini 3, ring-like behavior is determined by the size prefix: S-beads are used for aliphatic rings and T-beads for aromatic rings.
- Parameters:
bead_name – Martini 3 bead type string
- Return type:
bool
- Returns:
True if S-prefix or T-prefix bead
- schrodinger.application.matsci.martini3_types.isMartini3SmallType(bead_name)¶
Return True if the bead is a small (S-prefix) type.
- Parameters:
bead_name – Martini 3 bead type string
- Return type:
bool
- Returns:
True if S-prefix bead
- schrodinger.application.matsci.martini3_types.isMartini3TinyType(bead_name)¶
Return True if the bead is a tiny (T-prefix) type.
- Parameters:
bead_name – Martini 3 bead type string
- Return type:
bool
- Returns:
True if T-prefix bead
- schrodinger.application.matsci.martini3_types.isMartini3RegularType(bead_name)¶
Return True if the bead is a regular-size (no prefix) type.
- Parameters:
bead_name – Martini 3 bead type string
- Return type:
bool
- Returns:
True if regular-size bead
- schrodinger.application.matsci.martini3_types.isMartini3VirtualSite(bead_name)¶
Return True if the bead is a virtual site (type U).
- Parameters:
bead_name – Martini 3 bead type string
- Return type:
bool
- Returns:
True if virtual site
- schrodinger.application.matsci.martini3_types.isMartini3WaterType(bead_name)¶
Return True if the bead is a water type (W, SW, TW).
- Parameters:
bead_name – Martini 3 bead type string
- Return type:
bool
- Returns:
True if water type
- schrodinger.application.matsci.martini3_types.isMartini3DivalentType(bead_name)¶
Return True if the bead is a divalent type (D, SD, TD).
- Parameters:
bead_name – Martini 3 bead type string
- Return type:
bool
- Returns:
True if divalent type
- schrodinger.application.matsci.martini3_types.getMartini3Mass(bead_name)¶
Return the mass for a Martini 3 bead based on its size prefix.
R (regular) = 72 amu, S (small) = 54 amu, T (tiny) = 36 amu, U (virtual) = 24 amu.
- Parameters:
bead_name – Martini 3 bead type string
- Return type:
float
- Returns:
mass in amu
- schrodinger.application.matsci.martini3_types.getMartini3SizePrefix(bead_name)¶
Return the size prefix character for a Martini 3 bead.
- Parameters:
bead_name – Martini 3 bead type string
- Return type:
str
- Returns:
‘’ for regular, ‘S’ for small, ‘T’ for tiny
- schrodinger.application.matsci.martini3_types.getMartini3ChemType(bead_name)¶
Return the chemical type letter for a Martini 3 bead.
- Parameters:
bead_name – Martini 3 bead type string
- Return type:
str
- Returns:
single-letter chemical type (P, N, C, Q, X, W, D, or U)
- schrodinger.application.matsci.martini3_types.getMartini3Level(bead_name)¶
Return the numeric level for a Martini 3 bead, or None if standalone.
- Parameters:
bead_name – Martini 3 bead type string
- Return type:
int or None
- Returns:
numeric level 1 to 6, or None for standalone types
- schrodinger.application.matsci.martini3_types.getMartini3Suffix(bead_name)¶
Return the interaction modifier suffix for a Martini 3 bead.
- Parameters:
bead_name – Martini 3 bead type string
- Return type:
str
- Returns:
suffix string (empty if no suffix)
- schrodinger.application.matsci.martini3_types.isValidMartini3Type(bead_name)¶
Return True if the bead name is a valid Martini 3 type.
Validates chemical type, numeric level range, and suffix combination.
- Parameters:
bead_name – candidate bead type string
- Return type:
bool
- Returns:
True if valid