fragmenstein.mpro package

class fragmenstein.MProVictor(category: str | None = None, **options)[source]

Bases: Victor

__init__(category: str | None = None, **options)[source]

Initialise Victor in order to allow either combinations (merging/linking without a given aimed for molecule) or placements (using a given aimed for molecule).

param hits:

list of rdkit molecules

param pdb_filename:

file of apo structure

param pdb_block:

alternative for above: a string of apo structure

param ligand_resn:

3 letter code or your choice

param ligand_resi:

Rosetta-style pose(int) or pdb(str)

param covalent_resn:

only CYS accepted. if smiles has no * it is ignored

param covalent_resi:

Rosetta-style pose(int) or pdb(str)

param extra_protein_constraint:

multiline string of constraints relevant to the protein

param pose_fx:

a function to call with pose to tweak or change something before minimising.

param monster_random_seed:

a random seed for rdkit Embedding

param settings:

Not used in base version of Victor

Some arguments can be defined externally:

# These are the default settings for fragmenstein. # To overide please define $FRAGMENSTEIN_SETTINGS as a yaml file. # or pass an environment variable _prior_ to import # e.g. ff_constraint becomes $FRAGMENSTEIN_FF_CONSTRAINT. # These will have priority over the defaults. # Note there are no safeguards against typos. # For the command line interface, see fragmenstein/_cli_defaults.py

# General settings work_path: output monster_average_position: false monster_throw_on_discard: false ff_minisation: true

# During the RDKit minisation, how much lee-way to give an atom before it gets penalised. ff_max_displacement: 0.1

# During the RDKit minisation, how much to penalise an atom that is too far from its ideal position. ff_constraint: 5.

# During the RDKit minisation, how many iterations to run. ff_max_iterations: 200

# During the RDKit minisation, use the neighbourhood to constrain the molecule. ff_use_neighborhood: true ff_neighborhood: 6.0 ff_allow_lax: true ff_prevent_cis: true

# For Wictor, weird things happen if True ff_minimise_ideal: false

# OpenMM settings mm_restraint_k: 1000.0 mm_tolerance: 10.0 # mmu.kilocalorie_per_mole / (mmu.nano * mmu.meter) mm_max_iterations: 0 # 0 is infinite mm_mobile_radius: 8.0 # mmu.angstrom

classmethod analyse_postera()[source]
constraint_function_type = 'FLAT_HARMONIC'
classmethod fetch_postera()[source]
classmethod from_hit_codes(hit_codes: List[str], **options)[source]
classmethod from_postera_row(row: Series, results: Optional = None)[source]
place(*args, **options)[source]

Places a followup (smiles) into the protein based upon the hits. Do note that while Monster’s place accepts a mol, while place_smiles a smiles Victor’s place accepts only smiles.

Parameters:
  • smiles – smiles of followup, optionally covalent (_e.g._ *CC(=O)CCC)

  • long_name – gets used for filenames so will get corrected

  • merging_mode

  • atomnames – an optional dictionary that gets used by Params.from_smiles

  • custom_map – see Monster.place and Monster.renumber_followup_custom_map

  • extra_ligand_constraint

Returns:

static poised_pose_fx()[source]

Histidine protonated on delta (HID) and cysteine in thiolate.

static pose_fx()[source]

Histidine protonated on epsilon — HIE.

fragmenstein.mpro.dataframe.fetch_postera() DataFrame[source]

Reads the submission file off Github. For a local version, just postera = read_postera(file). :return:

fragmenstein.mpro.dataframe.read_postera(filename: str) DataFrame[source]