macrocycle_sample.py Command Help
Command: $SCHRODINGER/run -FROM psp macrocycle_sample.py
usage: $SCHRODINGER/run -FROM psp macrocycle_sample.py <structure_file> [options]
Sample macrocycle conformations.
Given an input structure containing a macrocycle - a ring containing 8 or more atoms - this script will
attempt to generate a set number of distinct conformations using one of two methods, depending on the
macrocycle size. Macrocycle atoms can be selected using an ASL or all atoms in the entry can be considered
part of the macrocycle. The number of conformations generated per macrocycle is controlled by the '-target_nconf'
parameter. The reference structure is saved in the first frame of the output file and conformations are saved
in subsequent frames. Conformations will have the 'Conformations' sub-group label and will be sorted by Prime
energy.
If the macrocycle ring is smaller than 10 atoms, ConfgenX is used for sampling; if the ring is smaller than 8
atoms, the ring is not considered a macrocycle and the script terminates. For all other sizes, Prime-MCS is
used. To force sampling with Prime-MCS regardless of ring size, use the '-permissive' option.
ConfgenX is a rule-based conformational search method that generates a set number of conformations
quickly.
Prime-MCS is an efficient sampling algorithm designed to overcome kinetic barriers to torsional rotation in
the macrocycle ring. Sampling starts by identifying the largest ring in the structure and arbitrarily
splitting the backbone of the ring into two halves. These half loops are then independently sampled before
pairing to form a closed cycle. To minimize bias during half loop sampling, the split point (root) is 'spun'
to different positions to evenly sample from different points across the macrocycle. This can be configured
with the '-spinroot' parameter and some defaults are provided based on the number of target conformers. Pairing
is done in such a way to eliminate backbone clashes and cross-link restraint violations. If closure fails,
sampling is repeated with finer granularity. If repeated sampling fails, then the conformation is discarded. In
cases where closure fails, the '-spinroot' and '-freezeroot' parameters can be used to change the number of
root points and to mark bonds for no sampling, respectively; these parameters may help overcome sampling
problems but use of '-freezeroot' will bias the sampling towards the input structure. Closed cycles are then
clustered by RMSD and R-groups are then sampled for each backbone cluster. The lowest energy conformations are
chosen. To skip side chain sampling, use the '-backbone_only' option; this will return the backbone atoms
only of the macrocycle. To sample the macrocycle in the context of a receptor, use the '-receptor' option along
with the '-asl' option to specify the macrocycle atoms.
After sampling, the conformers can be optionally minimized with Prime or OPLS. Conformers are then clustered
by ring atom RMSD and unique conformers are selected based on a user-defined RMSD cutoff.
More information on the macrocycle sampling algorithm can be found at:
https://pubs.acs.org/doi/10.1021/acs.jcim.7b00052
positional arguments:
struct_file Input structure file containing the macrocycle; if the macrocycle is part of a larger structure, use the '-asl' option to specify the macrocycle atoms; to sample a macrocycle in the context of a receptor, use the '-receptor' option along with the '-asl' option to specify the macrocycle atoms
options:
-h, --help show this help message and exit
-v show program's version number and exit
-jobname JOBNAME, -JOBNAME JOBNAME, -j JOBNAME
Set the base name of outputs
Input/Output Options:
-asl ASL, --asl ASL Specify an ASL to select macrocycle atoms from the input structure; if not set, all atoms in the entry will be considered to be part of the macrocycle; to sample a macrocycle in the context of a receptor, use the '-receptor' option along with the '-asl' option to specify the macrocycle atoms default = all
-align_outputs, --align_outputs
Align output conformations to the input structure before writing them; default = False
-conf_only, --conf_only
Return the conformations only; do not return the reference structure
Sampling Options:
-target_nconf TARGET_NCONF, --target_nconf TARGET_NCONF
Target number of output conformations to generate per molecule; default = 1000
-treat_bad_torsions {ignore,fix,raise}, --treat_bad_torsions {ignore,fix,raise}
Choose what action to take when the input macrocycle has torsion violations
'ignore' (default): ignore all violations and proceed with sampling
'fix': attempt to fix the violations and proceed with sampling
'raise': raise an error if any violations are found
-sample_peptide, --sample_peptide
By default, Prime will not sample non N-methylated peptide bonds in macrocycles; use this parameter to sample all peptide bonds
-backbone_only, --backbone_only
Only sample the backbone atoms of the macrocycle; default = False
-rescore_by_core, --rescore_by_core
Rescore final conformers by the energy of the ring backbone (core); this scoring enriches for conformers with ring backbones closer to the native
-restr_smarts RESTR_SMARTS, --restr_smarts RESTR_SMARTS
Add position restraints to atoms that match the specified SMARTS pattern to preserve their geometry and only sample around them
-redundant_cutoff REDUNDANT_CUTOFF, --redundant_cutoff REDUNDANT_CUTOFF
RMSD cutoff (A) for filtering conformers; conformers are sampled from multiple roots across the ring and then clustered by ring RMSD; all conformers in each cluster are aligned to each other and those with an RMSD lower than this cutoff are considered redundant and filtered out; set to 0 to return all conformers; default = 0.2
-receptor, --receptor
Perform sampling in the context of a receptor; requires an ASL to be specified with '-asl' to select the macrocycle atoms; used in Prime-MCS only
-minimize {prime,opls}, --minimize {prime,opls}
Method to use for post-sampling minimization; default = None
-forcefield FORCEFIELD, --forcefield FORCEFIELD
Forcefield used for sampling and any minimization steps; default = None
-min_solvent {vacuum,water,chloroform}, --min_solvent {vacuum,water,chloroform}
If the Prime post-sampling minimization is specified, specify the solvent to use for minimization; default = vacuum
-freeze_bonds FREEZE_BONDS, --freeze_bonds FREEZE_BONDS
Specify atom pairs to not sample the bond(s) between; should be in the format '12-3,15-6' where the numbers are atom indices and atom pairs are separated by commas
-spinroot SPINROOT, --spinroot SPINROOT
Set the number of number of roots that will be sampled across the ring; if not set, the number of roots will be calculated based on '-target_nconf'; if '-target_nconf' is less than 100, the default is 1; if '-target_nconf' is greater than 100, the default is 10
-freezeroot FREEZEROOT, --freezeroot FREEZEROOT
When performing half loop sampling, do not sample this number of bonds around the root; this option helps when closure is difficult but it creates some dependence on the initial structure; this option can be used in conjunction with '-spinroot' to help with closure
-energy_cutoff ENERGY_CUTOFF, --energy_cutoff ENERGY_CUTOFF
Energy cutoff for filtering conformations; default = 100.0
-permissive Allow small macrocycles (< 10 ring atoms) to be sampled with Prime
Job Control Options:
-OPLSDIR OPLSDIR Specifies directory for custom forcefield parameters.
Job Control Options:
-HOST <hostname> Run job remotely on the indicated host entry.
-WAIT Do not return a prompt until the job completes.
-D, -DEBUG Show details of Job Control operation.
-NOJOBID Run the job directly, without Job Control layer.
Standard Options:
-NJOBS NJOBS Divide the overall job into NJOBS subjobs.
-RETRIES RETRIES If a subjob fails for any reason, it will be retried RETRIES times. (Default: 1)
-NOLAUNCH Set up subjob inputs, but don't run the jobs.
Examples:
1. Sample a macrocycle with Prime and generate 1000 conformations:
$SCHRODINGER/run -FROM psp macrocycle_sample.py macrocycle.maegz -target_nconf 1000
2. Sample a macrocycle with Prime, generate 1000 conformations and sample peptide bonds:
$SCHRODINGER/run -FROM psp macrocycle_sample.py macrocycle.maegz -target_nconf 1000 -sample_peptide
3. Sample a macrocycle with Prime and add restrain atoms during sampling that match the specified SMARTS pattern:
$SCHRODINGER/run -FROM psp macrocycle_sample.py macrocycle.maegz -target_nconf 1000 -restr_smarts 'CC/C=C/CC'
4. Sample a macrocycle with Prime and run the sampling jobs on multiple CPUs:
$SCHRODINGER/run -FROM psp macrocycle_sample.py macrocycle.maegz -target_nconf 1000 -HOST localhost:4
5. Sample a macrocycle and align the output conformations to the input structure:
$SCHRODINGER/run -FROM psp macrocycle_sample.py macrocycle.maegz -target_nconf 1000 -align_outputs
6. Sample the backbone (ring atoms) only of a macrocycle with Prime:
$SCHRODINGER/run -FROM psp macrocycle_sample.py macrocycle.maegz -target_nconf 1000 -backbone_only
7. Sample a macrocycle backbone in the context of a receptor:
$SCHRODINGER/run -FROM psp macrocycle_sample.py complex.maegz -target_nconf 1000 -receptor -asl 'ligand' -backbone_only