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