PDB Reader

Main PDB Reader class and methods.

class PdbReaderProject(client)

Bases: BaseProject

A class representing a PDB Reader project.

This class provides methods for creating, manipulating, and downloading PDB (Protein Data Bank) related projects.

Parameters:

client (APIClient)

add_missing_residues(chain_id, residue_range)

Enable modeling for a range of missing residues.

Format for residue_range is START_END. E.g., 532_543.

See also

get_missing_residues()

Returns valid options for residue_range.

Parameters:
  • chain_id (str)

  • residue_range (str)

Return type:

None

add_mutation(chain_id, resid, new_resname, enable=False)

Adds a point mutation to a given chain.

Parameters:
  • chain_id (str) – chain index, e.g. PROT_A

  • resid (str) – resid to patch

  • new_resname (str) – residue to mutate to

  • enable (bool) – if True, enables chain_id if it isn’t already

Return type:

None

add_phosphorylation(chain_id, resid, patch, enable=False)

Phosphorylates a given residue.

Parameters:
  • chain_id (str) – chain index, e.g. PROT_A

  • resid (str) – resid to phosphorylate

  • patch (str) – name of phosphorylation patch to apply

  • enable (bool) – if True, enables chain_id if it isn’t already

Return type:

None

add_protonation(chain_id, resid, patch, enable=False)

Protonates a given residue.

Parameters:
  • chain_id (str) – chain index, e.g. PROT_A

  • resid (str) – resid to protonate

  • patch (str) – name of titration patch to apply

  • enable (bool) – if True, enables chain_id if it isn’t already

Return type:

None

add_ptm(chain_id, resid, patch, enable=False)

Adds post-translational modification (PTM) to a given residue.

Parameters:
  • chain_id (str) – chain index, e.g. PROT_A

  • resid (str) – resid to modify

  • patch (str) – name of PTM patch to apply

  • enable (bool) – if True, enables chain_id if it isn’t already

Return type:

None

add_ssbond(residue1, residue2, enable=False)

Add a disulfide bond between two residues.

If enable is True, then enables chain_id if it isn’t already.

Examples

# string format: "chain_id residue_id"
pdbreader_project.add_ssbond('PROT_A 50', 'PROT_A 62')

# if passing dict, it must be structed like below
pdbreader_project.add_ssbond(
    residue1={'chainIndex': 'PROT_A', 'resid': '50'},
    residue2={'chainIndex': 'PROT_A', 'resid': '62'})
Parameters:
Return type:

None

add_staple(staple_type, residue1, residue2, enable=False)

Add a staple between two residues.

If enable is True, then enables chain_id if it isn’t already.

Examples

# string format: "chain_id residue_id"
pdbreader_project.add_staple('RMETA3', 'PROT_A 50', 'PROT_A 62')

# if passing dict, it must be structed like below
pdbreader_project.add_staple(
    staple_type='RMETA3',
    residue1={'chainIndex': 'PROT_A', 'resid': '50'},
    residue2={'chainIndex': 'PROT_A', 'resid': '62'})
Parameters:
Return type:

None

confirm_chains(chain=None, ph=None, model=None, ffGeneration=None, covalentLigand=None)

Confirms chain selection settings by submitting PDB Reader STEP 2 form.

Although all relevant chain settings can be passed as args, this is only useful to override settings set using helper methods such as toggle_chain() and toggle_chains_by_type().

See usage example in ../user_guide/pdbreader

Parameters:
Return type:

bool

create_project(title, *, ff='charmmff', amberOptions=None, workspace=None, pdbSource=None, pdbId=None, customPdb=None, boltzProjectId=None, corrTop=None, renameDupl=None, calcPka=None)

Create a new PDB Reader project.

Parameters:
  • title (str) – The title of the project.

  • ff (str) – The force field to be used.

  • amberOptions (dict[str, str], optional) – AMBER options for different molecule types.

  • workspace (WorkspaceEnum | None)

  • pdbSource (PDBSource | None)

  • pdbId (str | None)

  • customPdb (str | TextIOWrapper | None)

  • boltzProjectId (str | None)

  • corrTop (bool | None)

  • renameDupl (bool | None)

  • calcPka (bool | None)

Returns:

True if the project was created successfully, False otherwise.

Return type:

bool

download_pdb(filename)

Download the PDB file of the project.

Parameters:

filename (str) – The name of the file to save the PDB data.

Return type:

None

download_project(filename='pdbreader.tar.gz')

Download the entire project as a compressed file.

Parameters:

filename (str, optional) – The name of the file to save. Defaults to ‘pdbreader.tar.gz’.

Return type:

None

get_available_dihedrals(as_string: False = False) DihedralInfoResponse
get_available_dihedrals(as_string: True) DihedralInfoParsed

Returns a list of orientable residues and their default angles (in degrees).

Parameters:

as_string (bool) – Whether to convert 2D lists to 1D list of strings

Returns:

If as_string is False (default), a dict with keys:

{
    'dihedrals': [(chainIndex, resid, angle), ...],
    'availableResidues': [(chainIndex, resid, resname), ...],
    'sideChainOrient': bool,  # True if enabled
}

Returns:

If as_string is True, a dict with keys:

{
    'dihedrals': ["chainIndex resid angle", ...],
    'availableResidues': ["chainIndex resid resname", ...],
    'sideChainOrient': bool,  # True if enabled
}

Return type:

DihedralInfo

get_chains(model_id=1, keep_pdb=False)

Return a description of chain information parsed by the MolCube server.

Server responds with whole pdb file as a string, which is usually not necessary

Parameters:
  • model_id (int) – Which model to return chain info for.

  • keep_pdb (bool) – Whether to keep the key containing the full structure under the pdb key.

Returns:

Chain info, mapped by type. For example:

{
    'protein': [
        {'chainIndex': 'PROT_A', ...},
        {'chainIndex': 'PROT_B', ...},
    ], ...
}

Return type:

ChainInfo

get_defaults()

Obtains all default settings from the MolCube server.

Usually, it is easier to just call set_defaults() without args.

Return type:

ModelingRequest

get_glycosylation_state(target: str) str
get_glycosylation_state(target: Glycosylation) str
get_glycosylation_state(target: None = None) dict[str, str]

Return ASCII trees for registered glycosylations.

Parameters:

target (str | Glycosylation | None) – Optional chain index (case-insensitive) or Glycosylation object.

Returns:

A list of formatted strings for a specific target, otherwise a dict mapping each chain index to its list of formatted strings.

Return type:

str | dict[str, str]

get_missing_residues(chain_id=None, terminal='all')

Return a list of missing residue ranges. By default, all ranges are included, but results can be filtered by chain and terminus.

Terminal options:

  • all: include terminal and non-terminal ranges (default)

  • terminal: include only terminal (cter or nter) ranges

  • cter: include only c-terminal ranges

  • nter: include only n-terminal ranges

  • non: include only non-terminal ranges

Parameters:
  • chain_id (str | None) – Limit results to the given chain.

  • terminal ('all' | 'terminal' | 'non' | 'cter' | 'nter') – Limit results to a given terminus type.

Returns:

list of ranges (chain_id, residue_range)

See format description in add_missing_residues().

Return type:

list[tuple[str, str]]

get_nonstandard_sdf(chain_id: str, resname: str = None, ph: float | None = None, ff_method: ForceFieldMethod = 'generate', ff_type: LigandForceField = 'fastOpenFF', optimize: bool = True) str
get_nonstandard_sdf(chain_id: None = None, resname: str = None, ph: float | None = None, ff_method: ForceFieldMethod = 'generate', ff_type: LigandForceField = 'fastOpenFF', optimize: bool = True) list[NonStandardSDFResult]
get_nonstandard_sdf(chain_id: str = None, resname: None = None, ph: float | None = None, ff_method: ForceFieldMethod = 'generate', ff_type: LigandForceField = 'fastOpenFF') list[NonStandardSDFResult]

Generate and return SDF string(s) for the given residues.

If no arguments are given, then an attempt is made to generate an SDF for all non-standard residues.

Parameters:
  • chain_id (str | None) – restrict results to this chain ID

  • resname (str | None) – restrict results to matching resname

  • ph (float | None) – apply this pH to the residue

  • ff_method (ForceFieldMethod)

  • ff_type (LigandForceField)

  • optimize (bool)

Returns:

If chain_id and resid are given, then the SDF is returned as a string. Otherwise, return value is a list of dicts with the following keys:

{
    'chain_id': str,
    'resname': str,
    'sdf': str,
}

Return type:

str | list[NonStandardSDFResult]

get_pdb_info()

Returns a large dict of most known info parsed by MolCube.

Return type:

dict[str, Any]

get_standalone_sdf(resname, source=None)

Obtain SDF for a standalone ligand.

To confirm the ligand’s structure, see validate_standalone_sdf().

Parameters:
  • resname (str) – ligand residue name

  • source (StandaloneSDFSource | None) – by default, uses previously saved SDF (if available) or RCSB.

Returns:

The SDF file, as a string.

Return type:

str

get_terminal_residues(chain_id)

Lists valid standard terminal residues for a given chain.

Parameters:

chain_id (str)

Return type:

tuple[str, str]

get_valid_missing_terminals(chain_id, residue_range)

Return valid terminal cap options for an omitted, non-terminal missing residue range.

Returns:

A dict of missing terminals, with the following keys.

  • cter: list of c-terminal caps

  • nter: list of n-terminal caps

Parameters:
  • chain_id (str)

  • residue_range (str)

Return type:

dict[‘cter’ | ‘nter’, list[str]]

get_valid_ssbond_residues(as_dict: False = False) list[str]
get_valid_ssbond_residues(as_dict: True = False) dict[str, list[str]]

Returns list of residues that can participate in disulfide bond

Parameters:

as_dict (bool)

Return type:

list[str] | dict[str, list[str]]

get_valid_staples()

Returns list of valid staple patches

Return type:

list[str]

model_pdb(chain=None, isMembrane=None, ffGeneration=None, sideChainOrient=None, ssbond=None, glycosylation=None, heme=None, stapling=None, covalentLigand=None, elasticNetwork=None, cysteinBridge=None, terminalCharge=None)

Confirms model manipulation options by submitting PDB Reader STEP 3 form.

Although all relevant settings can be passed as args, this is only useful to override settings set using helper methods such as add_staple().

See usage example in ../user_guide/pdbreader

Parameters:
Return type:

bool

orient_side_chains(dihedrals)

Change dihedral orientations by manually specifying angles.

Each angle should be specified according to the format: CHAIN RESID ANGLE, where angle is in degrees.

E.g.:

pdbreader.orient_side_chains([
    'PROT_A 1 30.0',
    'PROT_B 2 45.0',
])

Alternatively, each item may be a dict with the following keys:

chainIndex  str     chain or segment ID, e.g., PROT_A
resid       str     residue within chain, as a string, e.g. '123'
angle       float   angle in degrees, e.g., 45.0

If only a single bond needs to be rotated, it does not need to be enclosed in a list:

pdbreader.orient_side_chains('PROT_A 1 30.0')
Parameters:

dihedrals (str | Iterable[DihedralRequest | str])

Return type:

bool

remove_missing_residues(chain_id, residue_range)

Disable modeling for a range of missing residues.

Format for residue_range is START_END. E.g., 532_543.

See also

get_missing_residues()

Returns valid options for residue_range.

Parameters:
  • chain_id (str)

  • residue_range (str)

Return type:

None

remove_ssbond(residue1, residue2)

Removes a disulfide bond between two residues.

See add_ssbond() for example usage.

Parameters:
Return type:

None

reset_glycosylations(model=1)

Reset glycosylations to their default state

Parameters:

model (int)

resume_project(project_id, base_url='')

Resume a project by ID.

Parameters:
  • project_id (str) – A project UUID string.

  • base_url (str)

Return type:

dict[str, Any]

set_defaults(model_options=None)

Set default options.

If model_options is provided and omits the chain key, then the default chain options are chosen:

  • All chains except for water are enabled.

  • Non-terminal missing residue sequences are modeled.

The above defaults are also used if model_options is omitted.

Parameters:

model_options (ModelingRequest | None)

set_terminal_patch(chain_id, nter='', cter='', enable=False)

Set the terminal patch(es) for a chain.

The default value for nter/cter is used if omitted, or the current value, if it was previously given. If enable is True, then enables chain_id if it isn’t already.

Parameters:
  • chain_id (str)

  • nter (str)

  • cter (str)

  • enable (bool)

Return type:

None

toggle_chain(enable=None, disable=None)

Toggle chains by name.

Examples:

# enable or disable a single chain
pdbreader_project.toggle_chain(enable='PROT_A')
pdbreader_project.toggle_chain(disable='HETE_B')

# same as above
pdbreader_project.toggle_chain(enable='PROT_A', disable='HETE_B')

# enable or disable multiple chains
pdbreader_project.toggle_chain(enable=['PROT_A', 'PROT_C'], disable='PROT_B')
Parameters:
  • enable (Iterable[str] | str | None)

  • disable (Iterable[str] | str | None)

Return type:

None

_chain_options: Final[ChainRequest]

Prefer using the dedicated selection methods, but direct access to the full chain selection options is available here.

_chain_types: dict[str, CHAIN_TYPE]

Maps chain ID to chain type (protein, ion, glycan, etc.)

_model_by_chain: dict[str, Any]

Maps chain ID to model manipulation options; if you know the chain ID, this is easier than searching _model_options

_model_options: Final[ModelingRequest]

Prefer using the dedicated manipulation methods, but direct access to the full model manipulation options is available here.

_option_by_chain: dict[str, AnyChainIdx]

Maps chain ID to chain selection options; if you know the chain ID, this is easier than searching _chain_options

forcefield_type: str | None

FF type that was set during project creation

glyc_chain_indices: list[str]

Glycan chain IDs present or added to structure

glycosylations: dict[str, Glycosylation]

Glycan structural data

title: str

Project title set during project creation

Glycosylation

class Glycosylation(root, **kwargs)

Bases: object

Represents a full glycan chain.

Parameters:

root (Node)

add_sugar(node, parent_id, site1, site2='')

A shortcut for node.add_child(Link(...))

Parameters:
  • node (Node)

  • parent_id (int)

  • site1 (str)

  • site2 (str)

Return type:

int

apply_predefined_glycan(predefined_glycan)

Use the name of a predefined glycan instead of manually defining it.

Parameters:

predefined_glycan (PREDEFINED_GLYCAN | str)

Return type:

None

remove_sugar(node_id, cascade=True)

A shortcut for node.remove_child(...)`

Parameters:
  • node_id (int)

  • cascade (bool)

set_glycan_name_lookup(glycan_site_table)

Build case-insensitive lookup table from glycan_site_table keys.

Parameters:

glycan_site_table (dict[str, Any])

set_modification(node_id, key, value)

Set modification on a given node within glycan chain.

Parameters:
  • node_id (int)

  • key (str)

  • value (dict | str)

Bases: object

Describes the linkage between two glycans or between a glycan and amino acid.

Parameters:
  • parent (Node)

  • child (Node)

  • site1 (str)

  • site2 (str)

class Node(name, type, chain='', resid='', chain_index='', modifications=<factory>, site='', id=None, incoming=None, outgoing=<factory>, casperSeq='')

Bases: object

A Node representing an individual glycan (or linked amino acid) within a chain.

Parameters:
  • name (str)

  • type (str | GLYP_NODE_TYPE)

  • chain (str)

  • resid (str)

  • chain_index (str)

  • modifications (dict[str, str | dict[str, Any]])

  • site (str)

  • id (int | None)

  • incoming ('Link' | None)

  • outgoing (list['Link'])

  • casperSeq (str)

add_child(link)

Link a glycan (or amino acid) to this one.

Parameters:

link (Link)

remove_child(link)

Link a link between two glycans or between a glycan and amino acid.

Parameters:

link (Link)

Schemata

type AnyChainIdx = GlycanChainIndexRequest | HemeChainIndexRequest | IonChainIndexRequest | StandaloneChainIndexRequest | WaterChainIndexRequest
type ChainInfo = dict[CHAIN_TYPE, list[dict[str, Any]]]

molcube.pdbreader.conf

Misc. structural definitions and parameters.

class AvailableGlycan

Bases: TypedDict

Ncarbon: int
charge: int
modifications: NotRequired[dict[int, str]]
name: str
sites: dict[int, str]
stereochemistry: 'L' | 'D' | 'R' | 'S'
symbol: NotRequired[GlycanSymbol]
type: str
class AvailableGlycansResponse

Bases: TypedDict

availableInfo: AvailableInfo
glycans: dict[str, AvailableGlycan]
class AvailableGlycolipids

Bases: TypedDict

lipids: dict[str, str]
name: str
class AvailableInfo

Bases: TypedDict

glycanAvailable: dict[str, str]
glycolipidsAvailable: dict[str, AvailableGlycolipids]
modificationAvailable: dict[str, str | dict['L' | 'D' | 'R' | 'S', str]]
class AvailableIons

Bases: TypedDict

amberff: list[tuple[str, str]]
charmmff: list[tuple[str, str]]
drudeff: list[tuple[str, str]]
martiniff: None
class CSMLResult

Bases: TypedDict

charge: int
pdb: NotRequired[str]
resname: str
class ForceFieldFileFormats

Bases: TypedDict

format1: list[str]
format2: list[str]
class GenForcefieldTypes

Bases: TypedDict

generate: list[tuple[str, str]]
upload: list[tuple[str, str]]
class GlycanSymbol

Bases: TypedDict

color: str
shape: str
class NonStandardSDFResult

Bases: TypedDict

chain_id: str
resname: str
sdf: str
class PredefinedGlyInfoLinkage

Bases: TypedDict

residue1: int
residue2: int
site1: int
site2: int
class PredefinedGlyInfoRequest

Bases: TypedDict

linkages: list[PredefinedGlyInfoLinkage]
residues: dict[int, PredefinedGlyInfoResidue]
class PredefinedGlyInfoResidue

Bases: TypedDict

modifications: dict[str, str | dict[str, Any]]
name: str
type: str
class PredefinedGlycanData

Bases: TypedDict

N-glycans

Maps name of predefined N-glycan to its sequence

Type:

dict[str, molcube.pdbreader.conf.PredefinedGlyInfoRequest]

O-glycans

Maps name of predefined O-glycan to its sequence

Type:

dict[str, molcube.pdbreader.conf.PredefinedGlyInfoRequest]

class Step3RenderResponse

Bases: TypedDict

availIons: AvailableIons
availLinker: dict[str, Any]
availPayload: dict[str, Any]
fileFormatsByForceFieldType: ForceFieldFileFormats
forceFieldMethods: list[tuple[str, str]]
genForceFieldTypes: GenForcefieldTypes
lipidTails: list[tuple[str, str]]
patchDescription: dict[str, dict[str, dict[str, str]]]
predefinedGlycans: PredefinedGlycanData

molcube.pdbreader.literals

These definitions exist for the benefit of type checkers and language servers, to allow them to give more precise hints about what values are allowed for a given argument, or how some return values are structured.

type AMBERFF_ION = 'AG' | 'Ag' | 'AL' | 'BA' | 'BR' | 'Be' | 'CA' | 'CD' | 'CE' | 'Ce' | 'CL' | 'CO' | 'CR' | 'CS' | 'CU1' | 'CU' | 'Cr' | 'Dy' | 'Er' | 'EU' | 'EU3' | 'F' | 'FE2' | 'FE' | 'GD3' | 'HG' | 'Hf' | 'IN' | 'IOD' | 'K+' | 'LA' | 'LI' | 'LU' | 'MG' | 'MN' | 'Na+' | 'Nd' | 'NI' | 'PB' | 'PD' | 'PR' | 'PT' | 'Ra' | 'RB' | 'Sm' | 'SM' | 'Sn' | 'SR' | 'TB' | 'Th' | 'TL' | 'Tl' | 'Tm' | 'V2+' | 'Y' | 'YB2' | 'ZN' | 'Zr'
type CHAIN_TYPE = 'protein' | 'nucleicAcid' | 'standaloneLigand' | 'heme' | 'ion' | 'water' | 'glycan'
type CHARMMFF_ION = 'AG1P' | 'AG2P' | 'AL3P' | 'AU1P' | 'AU3P' | 'BAR' | 'BE2P' | 'BI3P' | 'CAL' | 'CD' | 'CE3P' | 'CES' | 'CLA' | 'CO3P' | 'CR2P' | 'CR3P' | 'CU1P' | 'CU2P' | 'DY3P' | 'ER3P' | 'EU2P' | 'EU3P' | 'FE2P' | 'FE3P' | 'GA3P' | 'GD3P' | 'HE01' | 'HG2P' | 'HO3P' | 'IN3P' | 'LA3P' | 'LIT' | 'LU3P' | 'MG' | 'MN2P' | 'MN3P' | 'ND3P' | 'NE01' | 'NI2P' | 'PB2P' | 'PD2P' | 'PM3P' | 'POT' | 'PR3P' | 'PT2P' | 'PU3P' | 'RA2P' | 'RH3P' | 'RUB' | 'SC3P' | 'SM2P' | 'SM3P' | 'SN2P' | 'SOD' | 'SR2P' | 'TB3P' | 'TI1P' | 'TI3P' | 'TL3P' | 'TU3P' | 'U3P' | 'V2P' | 'V3P' | 'Y3P' | 'YB2P' | 'YB3P' | 'ZN'
type DNA = 'OL15' | 'BSC1'
type DRUDEFF_ION = 'LIT' | 'POT' | 'SOD' | 'RUB' | 'CES' | 'F' | 'CLA' | 'BR' | 'I' | 'ZN'
type ForceFieldMethod = 'generate' | 'upload' | 'substitution' | 'existing'
type ForceFieldType = 'charmmff' | 'amberff' | 'martiniff' | 'drudeff'
type GLYCAN = 'GLYCAM_06j'
type GLYP_NODE_TYPE = 'PROTEIN' | 'A' | 'B' | 'LIPID'
type LIPID = 'Lipid21' | 'Lipid17'
type LIPID_TAIL = 'LYSM' | 'CYSP' | 'CYSF' | 'CYSG' | 'GLYM' | 'CYSL'
type LigandForceField = 'fastOpenFF' | 'openff' | 'fastGAFF' | 'gaff' | 'fastXFF' | 'xff'
type PDBSource = 'RCSB' | 'AlphaFold' | 'Custom' | 'Predicted'
type PREDEFINED_GLYCAN = 'M3' | 'M5' | 'M9' | 'FA2G2S2' | 'FA3G3S3' | 'FA4G4S4' | 'FA2BG2S2' | 'Hybrid' | 'Core 1' | 'Core 2' | 'Core 3' | 'Core 4' | 'Core 5' | 'Core 6' | 'Core 7' | 'Core 8' | 'Extended Core 1' | 'Extended Core 2' | 'Extended Core 3' | 'Extended Core 4'
type PTMLike = 'protonation' | 'phosphorylation' | 'ptm'
type Protein = 'FF19SB' | 'FF14SB' | 'FF14SBonlysc'
type RNA = 'OL3' | 'YIL' | 'Shaw'
type ResidueLinkType = 'ssbond' | 'stapling'
type ResidueType = 'standalone' | 'nonstandard' | 'covalent' | 'conjugated' | 'linkage'
type SDFSource = 'pdb' | 'rcsb'
type StandaloneSDFSource = 'rcsb' | 'custom' | 'saved' | 'original'
type Water = 'OPC' | 'TIP3P' | 'TIP4PD' | 'TIP4PEW'
type Workspace = 'personal' | 'team'

molcube.pdbreader.enums

These definitions exist mostly for internal validation values passed to functions.

class AMBERFF_ION(*values)

Bases: StrEnum

AG = 'AG'
AL = 'AL'
Ag = 'Ag'
BA = 'BA'
BR = 'BR'
Be = 'Be'
CA = 'CA'
CD = 'CD'
CE = 'CE'
CO = 'CO'
CR = 'CR'
CS = 'CS'
CU = 'CU'
CU1 = 'CU1'
Ce = 'Ce'
Cl = 'CL'
Cr = 'Cr'
Dy = 'Dy'
EU = 'EU'
EU3 = 'EU3'
Er = 'Er'
F = 'F'
FE = 'FE'
FE2 = 'FE2'
GD3 = 'GD3'
HG = 'HG'
Hf = 'Hf'
IN = 'IN'
IOD = 'IOD'
K = 'K+'
LA = 'LA'
LI = 'LI'
LU = 'LU'
MG = 'MG'
MN = 'MN'
NI = 'NI'
Na = 'Na+'
Nd = 'Nd'
PB = 'PB'
PD = 'PD'
PR = 'PR'
PT = 'PT'
RB = 'RB'
Ra = 'Ra'
SM = 'SM'
SR = 'SR'
Sm = 'Sm'
Sn = 'Sn'
TB = 'TB'
TL = 'TL'
Th = 'Th'
Tl = 'Tl'
Tm = 'Tm'
V2 = 'V2+'
Y = 'Y'
YB2 = 'YB2'
ZN = 'ZN'
Zr = 'Zr'
class CHAIN_TYPE(*values)

Bases: StrEnum

GLYCAN = 'glycan'
HEME = 'heme'
ION = 'ion'
NUCLEIC_ACID = 'nucleicAcid'
PROTEIN = 'protein'
STANDALONE_LIGAND = 'standaloneLigand'
WATER = 'water'
class CHARMMFF_ION(*values)

Bases: StrEnum

AG1P = 'AG1P'
AG2P = 'AG2P'
AL3P = 'AL3P'
AU1P = 'AU1P'
AU3P = 'AU3P'
BAR = 'BAR'
BE2P = 'BE2P'
BI3P = 'BI3P'
CAL = 'CAL'
CD = 'CD'
CE3P = 'CE3P'
CES = 'CES'
CLA = 'CLA'
CO3P = 'CO3P'
CR2P = 'CR2P'
CR3P = 'CR3P'
CU1P = 'CU1P'
CU2P = 'CU2P'
DY3P = 'DY3P'
ER3P = 'ER3P'
EU2P = 'EU2P'
EU3P = 'EU3P'
FE2P = 'FE2P'
FE3P = 'FE3P'
GA3P = 'GA3P'
GD3P = 'GD3P'
HE01 = 'HE01'
HG2P = 'HG2P'
HO3P = 'HO3P'
IN3P = 'IN3P'
LA3P = 'LA3P'
LIT = 'LIT'
LU3P = 'LU3P'
MG = 'MG'
MN2P = 'MN2P'
MN3P = 'MN3P'
ND3P = 'ND3P'
NE01 = 'NE01'
NI2P = 'NI2P'
PB2P = 'PB2P'
PD2P = 'PD2P'
PM3P = 'PM3P'
POT = 'POT'
PR3P = 'PR3P'
PT2P = 'PT2P'
PU3P = 'PU3P'
RA2P = 'RA2P'
RH3P = 'RH3P'
RUB = 'RUB'
SC3P = 'SC3P'
SM2P = 'SM2P'
SM3P = 'SM3P'
SN2P = 'SN2P'
SOD = 'SOD'
SR2P = 'SR2P'
TB3P = 'TB3P'
TI1P = 'TI1P'
TI3P = 'TI3P'
TL3P = 'TL3P'
TU3P = 'TU3P'
U3P = 'U3P'
V2P = 'V2P'
V3P = 'V3P'
Y3P = 'Y3P'
YB2P = 'YB2P'
YB3P = 'YB3P'
ZN = 'ZN'
class DNA(*values)

Bases: StrEnum

BSC1 = 'BSC1'
OL15 = 'OL15'
class DRUDEFF_ION(*values)

Bases: StrEnum

BR = 'BR'
CES = 'CES'
CLA = 'CLA'
F = 'F'
I = 'I'
LIT = 'LIT'
POT = 'POT'
RUB = 'RUB'
SOD = 'SOD'
ZN = 'ZN'
class ForceFieldMethod(*values)

Bases: StrEnum

EXISTING = 'existing'
GENERATE = 'generate'
SUBSTITUTION = 'substitution'
UPLOAD = 'upload'
class ForceFieldType(*values)

Bases: StrEnum

AMBERFF = 'amberff'
CHARMMFF = 'charmmff'
DRUDEFF = 'drudeff'
MARTINIFF = 'martiniff'
class GLYP_NODE_TYPE(*values)

Bases: StrEnum

ALPHA = 'A'
BETA = 'B'
LIPID = 'LIPID'
PROTEIN = 'PROTEIN'
class Glycan(*values)

Bases: StrEnum

GLYCAM06J = 'GLYCAM_06j'
class LIPID_TAIL(*values)

Bases: StrEnum

CYSF = 'CYSF'
CYSG = 'CYSG'
CYSL = 'CYSL'
CYSP = 'CYSP'
GLYM = 'GLYM'
LYSM = 'LYSM'
class LigandForceField(*values)

Bases: StrEnum

GAFF = 'gaff'
GAFF_FAST = 'fastGAFF'
OPENFF = 'openff'
OPENFF_FAST = 'fastOpenFF'
XFF = 'xff'
XFF_FAST = 'fastXFF'
class Lipid(*values)

Bases: StrEnum

LIPID17 = 'Lipid17'
LIPID21 = 'Lipid21'
class PDBSource(*values)

Bases: StrEnum

CUSTOM = 'Custom'
RCSB = 'RCSB'
class PREDEFINED_GLYCAN(*values)

Bases: StrEnum

CORE_1 = 'Core 1'
CORE_2 = 'Core 2'
CORE_3 = 'Core 3'
CORE_4 = 'Core 4'
CORE_5 = 'Core 5'
CORE_6 = 'Core 6'
CORE_7 = 'Core 7'
CORE_8 = 'Core 8'
EXTENDED_CORE_1 = 'Extended Core 1'
EXTENDED_CORE_2 = 'Extended Core 2'
EXTENDED_CORE_3 = 'Extended Core 3'
EXTENDED_CORE_4 = 'Extended Core 4'
FA2BG2S2 = 'FA2BG2S2'
FA2G2S2 = 'FA2G2S2'
FA3G3S3 = 'FA3G3S3'
FA4G4S4 = 'FA4G4S4'
HYBRID = 'Hybrid'
M3 = 'M3'
M5 = 'M5'
M9 = 'M9'
class Protein(*values)

Bases: StrEnum

FF14SB = 'FF14SB'
FF14SBonlysc = 'FF14SBonlysc'
FF19SB = 'FF19SB'
class RNA(*values)

Bases: StrEnum

OL3 = 'OL3'
SHAW = 'Shaw'
YIL = 'YIL'
class ResidueType(*values)

Bases: StrEnum

CONJUGATED = 'conjugated'
COVALENT = 'covalent'
LINKAGE = 'linkage'
NONSTANDARD = 'nonstandard'
STANDALONE = 'standalone'
class SDFSource(*values)

Bases: StrEnum

PDB = 'pdb'
RCSB = 'rcsb'
class StandaloneSDFSource(*values)

Bases: StrEnum

CUSTOM = 'custom'
ORIGINAL = 'original'
RCSB = 'rcsb'
SAVED = 'saved'
class Water(*values)

Bases: StrEnum

OPC = 'OPC'
TIP3P = 'TIP3P'
TIP4PD = 'TIP4PD'
TIP4PEW = 'TIP4PEW'
class Workspace(*values)

Bases: StrEnum

PERSONAL = 'personal'
TEAM = 'team'

molcube.pdbreader.responses

This section describes the structure of some data returned by the MolCube servers.

class DihedralInfoParsed

Bases: TypedDict

availableResidues: list[str]
dihedrals: list[str]
sideChainOrient: bool
class DihedralInfoResponse

Bases: TypedDict

availableResidues: list[tuple[str, str, str]]
dihedrals: list[tuple[str, str, float]]
sideChainOrient: bool
class DihedralInfoResponseModel(*args, **kwargs)

Bases: BaseModel

Parameters:
  • args (Any)

  • kwargs (Any)

Return type:

Any

availableResidues: list[tuple[str, str, str]]
dihedrals: list[tuple[str, str, float]]
sideChainOrient: bool
type DihedralInfo = DihedralInfoResponse | DihedralInfoParsed