schrodinger.pipeline.stages.ligprep module

Stages for running LigPrep.

LigPrepStage - runs LigPrep on input structures PostLigPrepStage - limits stereos, removes penalized states

Copyright Schrodinger, LLC. All rights reserved.

class schrodinger.pipeline.stages.ligprep.LigPrepStage(*args, **kwargs)

Bases: schrodinger.pipeline.stage.Stage

Pipeline stage for running LigPrep on the input structures

checkProducts()

Overrides the checkProducts() method of Stage class. If USE_EPIK is True, adds ‘epik’ as required prodct before the actual check is performed. Will get called after the instance of this stage is created.

missingOutput(logfile)

Returns True if logfile is present and shows that no structures where returned by LigPrep.

operate()

Run the stage on the input structure file set.

processJobOutputs()

After all LigPrep subjobs are complete, read each output file and combined them into one file, or a few files with up to 100K structures in each file. Structures are NOT combined if COMBINEOUTS is set to False. Instead each file is renamed in order to have a Pipeline-compliant name.

recombineInputLigands()

Read all input structures, while optionally skipping bad structures, and save each structure into a subjob input file. Optionally structures may be retitled where the compound ID of a structure is determined either from UNIQUEFIELD property, or each structure is assumed to be its own compound (no variants).

Structures can also be mixed within subjobs in order to make subjob lengths more uniform, if MIXLIGS is set to True.

setupJobs()

Setup LigPrep subjobs by building up a command to submit, and passing that command to JobDJ via addJob().

class schrodinger.pipeline.stages.ligprep.PostLigPrepStage(*args, **kwargs)

Bases: schrodinger.pipeline.stage.Stage

This stage limits the number of steroisomers, removes states penalized by Epik/Ionizer, and generates the variant codes.

PRESERVE_NJOBS
whether to write out as many output files as there are inputs. Useful to create the same number of subjobs for QikProp as were used for LigPrep.
nextOutFile()
operate()

Optionally limits the number of stereoisomers in the input_files to <maxstereo> keeping lowest energy isomers. Optionally filters on ionization penalty

writeBestStereos(stereoisomers)

Given a list of Structure objects from the same ion/taut state, decices which structures (stereoisomers) need to be kept and which ones need to be removed. This is done by keeping MAXSTEREO lowest- energy stereoisomers.

The structures that are “kept” are then written to the output file.

schrodinger.pipeline.stages.ligprep.compress(origFile)

Compresses the specified file and removes the original