Source code for modelcif.protocol

"""Classes for handling modeling protocols.
"""


[docs] class Step: """A single step in a :class:`Protocol`. This class describes a generic step in a modeling protocol. In most cases, a more specific subclass should be used, such as :class:`TemplateSearchStep`, :class:`ModelingStep`, or :class:`ModelSelectionStep`. :param input_data: Any objects that this step takes as input. Any individual :class:`modelcif.data.Data` object (such as a template structure, target sequence, alignment, or model coordinates) can be given here, or a group of such objects (as a :class:`modelcif.data.DataGroup` object) can be passed. :type input_data: :class:`modelcif.data.DataGroup` or :class:`modelcif.data.Data` :param output_data: Any objects that this step creates as output, similarly to ``input_data``. :type output_data: :class:`modelcif.data.DataGroup` or :class:`modelcif.data.Data` :param str name: A short name for this step. :param str details: Longer description of this step. :param software: The software that was employed in this modeling step. :type software: :class:`modelcif.Software` or :class:`modelcif.SoftwareGroup` """ method_type = "other" def __init__(self, input_data, output_data, name=None, details=None, software=None): self.input_data, self.output_data = input_data, output_data self.name, self.details, self.software = name, details, software
[docs] class TemplateSearchStep(Step): """A modeling protocol step that searches for templates. See :class:`Step` for more details.""" method_type = "template search"
[docs] class TemplateSelectionStep(Step): """A modeling protocol step that selects one or more templates. See :class:`Step` for more details.""" method_type = "template selection"
[docs] class TargetTemplateAlignmentStep(Step): """A modeling protocol step that creates a target-template alignment. See :class:`Step` for more details.""" method_type = "target-template alignment"
[docs] class CoevolutionMSAStep(Step): """A modeling protocol step that creates a coevolution multiple sequence alignment. See :class:`Step` for more details.""" method_type = "coevolution MSA"
[docs] class ContactPredictionStep(Step): """A modeling protocol step that predicts contacts. See :class:`Step` for more details.""" method_type = "contact prediction"
[docs] class ModelingStep(Step): """A modeling protocol step that generates model coordinates. See :class:`Step` for more details.""" method_type = "modeling"
[docs] class ModelSelectionStep(Step): """A modeling protocol step that filters candidates to select models. See :class:`Step` for more details.""" method_type = "model selection"
[docs] class ModelRefinementStep(Step): """A modeling protocol step that refines models. See :class:`Step` for more details.""" method_type = "model refinement"
[docs] class ModelAssessmentStep(Step): """A modeling protocol step that performs model quality assessment. See :class:`Step` for more details.""" method_type = "model quality assessment"
[docs] class BackboneGenerationStep(Step): """A modeling protocol step that generates backbone coordinates for protein design. See :class:`Step` for more details.""" method_type = "backbone generation"
[docs] class SequenceDesignStep(Step): """A modeling protocol step that generates sequences for protein design. This includes inverse folding. See :class:`Step` for more details.""" method_type = "sequence design"
[docs] class StructureValidationStep(Step): """A modeling protocol step that assesses designed sequences with their modeled structures. See :class:`Step` for more details.""" method_type = "structure validation"
[docs] class EnergyEstimateStep(Step): """A modeling protocol step that performs an energy estimate. See :class:`Step` for more details.""" method_type = "energy estimate"
[docs] class ExperimentalValidationStep(Step): """A modeling protocol step that conducts experimental validation. See :class:`Step` for more details.""" method_type = "experimental validation"
[docs] class Protocol: """A modeling protocol. Each protocol consists of a number of protocol steps.""" def __init__(self): #: All modeling steps (:class:`Step` objects) self.steps = []