schrodinger.tasks.ldtasks module

class schrodinger.tasks.ldtasks.SdfFile(value='', *args, **kwargs)

Bases: schrodinger.tasks.tasks.TaskFile

class schrodinger.tasks.ldtasks.EntityFile(value='', *args, **kwargs)

Bases: schrodinger.tasks.tasks.TaskFile

class schrodinger.tasks.ldtasks.LDColumn(value='', *args, **kwargs)

Bases: schrodinger.tasks.tasks.TaskFile

Base class for columns input in LDTask. It inherits from TaskFile because it represents a CSV file that LD will provide to the model as input. Subclasses should implement the _parseRow method to parse the row read from the CSV file to the appropriate data type and override ColumnDataType to specify the data type of the column. Also, subclasses should implement getFilesForJobControl to return a list of file paths that should be registered with job control.

Any LDColumn subclass added to the LDTask input will automatically create a parameter on the input row with the same name. The parameter will be a list of the data corresponding to that input row’s corporate ID. Example usage in ldtask:

class MyTask(LDTask):
    class Input(LDInput):
        poses: PoseColumn
        structures: StructureColumn

    def mainLDFunction(self):
        for input_row in self.getInputRows():
            output_row = self.makeAndAddOutputRow(input_row)

            # We can now access the poses and structures column input
            # as parameters on the input row
            output_row.result = input_row.poses[0].ligand.num_atoms
            output_row.res_str = input_row.structures[0].title
ColumnDataType

alias of Any

getFilesForJobControl() list[str]

Return a list of file paths apart from the file itself that should be registered with job control.

getDataForCorpID(corp_id: str) list[Any]

Return the data for the given corporate ID.

class schrodinger.tasks.ldtasks.IntColumn(value='', *args, **kwargs)

Bases: schrodinger.tasks.ldtasks.LDColumn

Column that contains integer data.

ColumnDataType

alias of int

class schrodinger.tasks.ldtasks.RealColumn(value='', *args, **kwargs)

Bases: schrodinger.tasks.ldtasks.LDColumn

Column that contains float data.

ColumnDataType

alias of float

class schrodinger.tasks.ldtasks.StringColumn(value='', *args, **kwargs)

Bases: schrodinger.tasks.ldtasks.LDColumn

Column that contains string data.

ColumnDataType

alias of str

class schrodinger.tasks.ldtasks.PoseColumn(value='', *args, **kwargs)

Bases: schrodinger.tasks.ldtasks.LDColumn

Column that contains pose data.

class Pose(ligand: schrodinger.structure._structure.Structure, receptor: schrodinger.structure._structure.Structure)

Bases: object

__init__(ligand: schrodinger.structure._structure.Structure, receptor: schrodinger.structure._structure.Structure)
ColumnDataType

alias of schrodinger.tasks.ldtasks.PoseColumn.Pose

getFilesForJobControl() List[str]

Return a list of file paths apart from the file itself that should be registered with job control.

class schrodinger.tasks.ldtasks.FileColumn(value='', *args, **kwargs)

Bases: schrodinger.tasks.ldtasks.LDColumn

Column that contains file data.

ColumnDataType

alias of str

getFilesForJobControl() List[str]

Return a list of file paths apart from the file itself that should be registered with job control.

class schrodinger.tasks.ldtasks.StructureColumn(value='', *args, **kwargs)

Bases: schrodinger.tasks.ldtasks.FileColumn

Column that contains structure data.

ColumnDataType

alias of schrodinger.structure._structure.Structure

class schrodinger.tasks.ldtasks.LDInputRow(*, corp_id: str, ligand: schrodinger.structure._structure.Structure)

Bases: object

corp_id: str
ligand: schrodinger.structure._structure.Structure
__init__(*, corp_id: str, ligand: schrodinger.structure._structure.Structure) None
class schrodinger.tasks.ldtasks.LDInput(*args, _param_type=<object object>, **kwargs)

Bases: schrodinger.models.parameters.CompoundParam

Base input class for ldtasks. Subclass to add additional input parameters or to override the type of ld_input_file. These inputs will automatically be transformed into the correct input for Live design protocols built from the task.

Variables
  • ld_input_file – The input file that will be provided by LiveDesign with data from the LiveReport. This may be an SDF file, a generic entity, etc. You can specify the type of this file by setting the type hint of this parameter to one of the LD input file types.

  • _column_jc_files – For internal use only. A list of file names contained within all column input params. Popupalating this during preprocessing ensures that all relevant files will be registered with Job Control.

ld_input_file: schrodinger.tasks.ldtasks.SdfFile

Base class for all Param classes. A Param is a descriptor for storing data, which means that a single Param instance will manage the data values for multiple instances of the class that owns it. Example:

class Coord(CompoundParam):
    x: int
    y: int

An instance of the Coord class can be created normally, and Params can be accessed as normal attributes:

coord = Coord()
coord.x = 4

When a Param value is set, the valueChanged signal is emitted. Params can be serialized and deserialized to and from JSON. Params can also be nested:

class Atom(CompoundParam):
    coord: Coord
    element: str
ld_input_fileChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

ld_input_fileReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

class schrodinger.tasks.ldtasks.Status(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: schrodinger.models.jsonable.JsonableEnum

NONE = 'NONE'
DONE = 'DONE'
FAILED = 'FAILED'
class schrodinger.tasks.ldtasks.LDOutputRow(*args, _param_type=<object object>, **kwargs)

Bases: schrodinger.models.parameters.CompoundParam

corp_id: str

Base class for all Param classes. A Param is a descriptor for storing data, which means that a single Param instance will manage the data values for multiple instances of the class that owns it. Example:

class Coord(CompoundParam):
    x: int
    y: int

An instance of the Coord class can be created normally, and Params can be accessed as normal attributes:

coord = Coord()
coord.x = 4

When a Param value is set, the valueChanged signal is emitted. Params can be serialized and deserialized to and from JSON. Params can also be nested:

class Atom(CompoundParam):
    coord: Coord
    element: str
status: schrodinger.tasks.ldtasks.Status
status_message: str

Base class for all Param classes. A Param is a descriptor for storing data, which means that a single Param instance will manage the data values for multiple instances of the class that owns it. Example:

class Coord(CompoundParam):
    x: int
    y: int

An instance of the Coord class can be created normally, and Params can be accessed as normal attributes:

coord = Coord()
coord.x = 4

When a Param value is set, the valueChanged signal is emitted. Params can be serialized and deserialized to and from JSON. Params can also be nested:

class Atom(CompoundParam):
    coord: Coord
    element: str
corp_idChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

corp_idReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

statusChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

statusReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

status_messageChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

status_messageReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

class schrodinger.tasks.ldtasks.ExecutionMode(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: schrodinger.models.jsonable.JsonableEnum

How to execute the ldtask script

IN_PROCESS = 1
JOB_CONTROL_LOCALHOST = 2
JOB_CONTROL_USER_HOST = 3
class schrodinger.tasks.ldtasks.LDTask(*args, _param_type=<object object>, **kwargs)

Bases: schrodinger.tasks.jobtasks.ComboJobTask

OUTPUT_COLUMN_MAP = []
EXECUTION_MODE = 3
OutputRow

alias of schrodinger.tasks.ldtasks.LDOutputRow

class Output(*args, _param_type=<object object>, **kwargs)

Bases: schrodinger.models.parameters.CompoundParam

results_csv: schrodinger.tasks.tasks.TaskFile

Base class for all Param classes. A Param is a descriptor for storing data, which means that a single Param instance will manage the data values for multiple instances of the class that owns it. Example:

class Coord(CompoundParam):
    x: int
    y: int

An instance of the Coord class can be created normally, and Params can be accessed as normal attributes:

coord = Coord()
coord.x = 4

When a Param value is set, the valueChanged signal is emitted. Params can be serialized and deserialized to and from JSON. Params can also be nested:

class Atom(CompoundParam):
    coord: Coord
    element: str
results_csvChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

results_csvReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

getInputRows()

Returns a generator of InputRow objects that are read in from the input files from LD.

Override this method to customize how inputs are read in.

makeAndAddOutputRow(from_input_row: Optional[schrodinger.tasks.ldtasks.LDInputRow] = None) schrodinger.tasks.ldtasks.LDOutputRow

Make, add to _output_rows, and return a new LDOutputRow object.

Parameters

from_input_row – If not None, copy the corporate ID from this row.

mainFunction()
writeOutputCsv()
calling_contextChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

calling_contextReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

failure_infoChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

failure_infoReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

inputChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

inputReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

job_configChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

job_configReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

max_progressChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

max_progressReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

nameChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

nameReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

output: parameters.CompoundParam
outputChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

outputReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

progressChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

progressReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

progress_stringChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

progress_stringReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

statusChanged

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

statusReplaced

pyqtSignal(*types, name: str = …, revision: int = …, arguments: Sequence = …) -> PYQT_SIGNAL

types is normally a sequence of individual types. Each type is either a type object or a string that is the name of a C++ type. Alternatively each type could itself be a sequence of types each describing a different overloaded signal. name is the optional C++ name of the signal. If it is not specified then the name of the class attribute that is bound to the signal is used. revision is the optional revision of the signal that is exported to QML. If it is not specified then 0 is used. arguments is the optional sequence of the names of the signal’s arguments.

schrodinger.tasks.ldtasks.get_vartype_enum(type_hint)

Given a Python type hint, return an LD vartype suitable for use in a ModelTemplateVar or ModelCommand

schrodinger.tasks.ldtasks.get_return_type_enum(type_hint)

Given a Python type hint, return the LD var type for use in a ModelReturn

schrodinger.tasks.ldtasks.make_protocol(TaskClass: type[schrodinger.tasks.ldtasks.LDTask], name: Optional[str] = None, description: Optional[str] = None)
schrodinger.tasks.ldtasks.make_model(task_instance: schrodinger.tasks.ldtasks.LDTask, name: Optional[str] = None, description: Optional[str] = None)
schrodinger.tasks.ldtasks.change_bool_flags_to_accept_int(TaskClass: type[schrodinger.tasks.ldtasks.LDTask], args_by_subparam)

Change bool flags to accept integer values and convert them back to bool since LD doesn’t support boolean template vars.

schrodinger.tasks.ldtasks.make_main(TaskClass: type[schrodinger.tasks.ldtasks.LDTask])
schrodinger.tasks.ldtasks.make_get_job_spec_from_args(TaskClass: type[schrodinger.tasks.ldtasks.LDTask])
schrodinger.tasks.ldtasks.run_model(model: ldclient.models.Model, live_report: ldclient.models.LiveReport, timeout: int = 50) Any

Run a model on the first entry of a live report and return the results.

Parameters
  • model – The model to run

  • live_report – The live report to run the model on

  • timeout – The maximum time to wait for the model to finish in seconds

Raises

RuntimeError – If the model does not finish in the given time

Returns

The result of the model on the first entry of the live report

schrodinger.tasks.ldtasks.quicktest_model(model, compounds=None)
schrodinger.tasks.ldtasks.get_corporate_id(st: schrodinger.structure._structure.Structure) Optional[str]
Parameters

st – a structure

Returns

the corporate ID for the structure, if any

schrodinger.tasks.ldtasks.download_and_login_ld_client(host, username, password)