## Resume a stopped protein library screen

`client.Protein.LibraryScreen.Resume(ctx, id) (*ProteinLibraryScreenResumeResponse, error)`

**post** `/compute/v1/protein/library-screen/{id}/resume`

Resume a stopped protein library screen from its last checkpoint

### Parameters

- `id string`

### Returns

- `type ProteinLibraryScreenResumeResponse struct{…}`

  A protein library screening pipeline run

  - `ID string`

    Unique ProteinLibraryScreen identifier

  - `CompletedAt Time`

  - `CreatedAt Time`

  - `DataDeletedAt Time`

    When the input, output, and result data was permanently deleted. Null if data has not been deleted.

  - `Engine Boltzprot`

    Deprecated. Use pipeline instead.

    - `const BoltzprotBoltzprot Boltzprot = "boltzprot"`

  - `EngineVersion String1_0`

    Deprecated. Use pipeline_version instead.

    - `const String1_01_0 String1_0 = "1.0"`

  - `Error ProteinLibraryScreenResumeResponseError`

    - `Code string`

      Machine-readable error code

    - `Message string`

      Human-readable error message

    - `Details any`

      Additional field-level error details keyed by input path, when available.

  - `Input ProteinLibraryScreenResumeResponseInput`

    Pipeline input (null if data deleted)

    - `Proteins ProteinLibraryScreenResumeResponseInputProteins`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

    - `Target ProteinLibraryScreenResumeResponseInputTargetUnion`

      Target specification (structure template or template-free)

      - `type ProteinLibraryScreenResumeResponseInputTargetStructureTemplateTargetResponse struct{…}`

        Target defined by an uploaded 3D structure (CIF or PDB file). Only chains included in chain_selection are used.

        - `ChainSelection map[string, ProteinLibraryScreenResumeResponseInputTargetStructureTemplateTargetResponseChainSelectionUnion]`

          Chains selected from the uploaded structure, keyed by chain ID. Only chains listed here are included in the pipeline run — any chains omitted from this mapping are ignored. Each value defines which residues to keep, which are epitope residues, which are non-binding residues, and which are flexible.

          - `type ProteinLibraryScreenResumeResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec struct{…}`

            Per-chain specification for a polymer (protein/RNA/DNA) chain in a structure template target.

            - `ChainType Polymer`

              - `const PolymerPolymer Polymer = "polymer"`

            - `CropResidues ProteinLibraryScreenResumeResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion`

              0-indexed residue indices to retain from this chain, or 'all' to keep all residues. Residues not listed are excluded from the pipeline run.

              - `type ProteinLibraryScreenResumeResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesArray []int64`

                0-indexed residue indices to keep

              - `type All string`

                - `const AllAll All = "all"`

            - `EpitopeResidues []int64`

              0-indexed residue indices where binder contact is desired (the epitope). All indices must be present in crop_residues and must not overlap non_binding_residues.

            - `FlexibleResidues []int64`

              0-indexed residue indices allowed to move during design (e.g. flexible loop regions). All indices must be present in crop_residues.

            - `NonBindingResidues []int64`

              0-indexed residue indices where binder contact should be discouraged. All indices must be present in crop_residues and must not overlap epitope_residues.

          - `type ProteinLibraryScreenResumeResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec struct{…}`

            Per-chain specification for a ligand chain in a structure template target. The full ligand is always included.

            - `ChainType Ligand`

              - `const LigandLigand Ligand = "ligand"`

        - `Structure ProteinLibraryScreenResumeResponseInputTargetStructureTemplateTargetResponseStructure`

          - `URL string`

            URL to download the file

          - `URLExpiresAt Time`

            When the presigned URL expires

        - `Type StructureTemplate`

          - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

      - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponse struct{…}`

        Target defined by sequences only, without a 3D structure template

        - `Entities []ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseEntityUnion`

          Entities (proteins, RNA, DNA, ligands) defining the target complex.

          - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this entity

            - `Type Protein`

              - `const ProteinProtein Protein = "protein"`

            - `Value string`

              Amino acid sequence (one-letter codes)

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModification`

              CCD post-translational modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                Modification format. Only CCD polymer modifications are supported.

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

                CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for phosphoserine)

          - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this entity

            - `Type Rna`

              - `const RnaRna Rna = "rna"`

            - `Value string`

              RNA nucleotide sequence (A, C, G, U, N)

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModification`

              CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                Modification format. Only CCD polymer modifications are supported.

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

                CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for phosphoserine)

          - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this entity

            - `Type Dna`

              - `const DnaDna Dna = "dna"`

            - `Value string`

              DNA nucleotide sequence (A, C, G, T, N)

            - `Cyclic bool`

              Whether the sequence is cyclic

            - `Modifications []ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModification`

              CCD chemical modifications. Optional; defaults to an empty list when omitted. SMILES modifications are not supported.

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                Modification format. Only CCD polymer modifications are supported.

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

                CCD code from RCSB PDB (e.g. 'MSE' for selenomethionine, 'SEP' for phosphoserine)

          - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this ligand

            - `Type LigandCcd`

              - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

            - `Value string`

              CCD code (e.g., ATP, ADP)

          - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this ligand

            - `Type LigandSmiles`

              - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

            - `Value string`

              SMILES string representing the ligand

        - `Type NoTemplate`

          - `const NoTemplateNoTemplate NoTemplate = "no_template"`

        - `Bonds []ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseBond`

          Covalent bond constraints between atoms in the target complex. Ligand atom references support CCD atom names and explicitly atom-mapped SMILES atoms.

          - `Atom1 ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseBondAtom1Union`

            Ligand atom reference for a CCD atom or an explicitly atom-mapped SMILES atom.

            - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse struct{…}`

              Ligand atom reference for a CCD atom or an explicitly atom-mapped SMILES atom.

              - `AtomName string`

                Atom name. For ligand_ccd, use the standardized CIF atom name. For ligand_smiles, explicitly label the atom with numeric atom-map notation: [C:1] is referenced as C1 and [O:2] as O2. The resulting name must be unique within the molecule and at most four characters.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

          - `Atom2 ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseBondAtom2Union`

            Ligand atom reference for a CCD atom or an explicitly atom-mapped SMILES atom.

            - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse struct{…}`

              Ligand atom reference for a CCD atom or an explicitly atom-mapped SMILES atom.

              - `AtomName string`

                Atom name. For ligand_ccd, use the standardized CIF atom name. For ligand_smiles, explicitly label the atom with numeric atom-map notation: [C:1] is referenced as C1 and [O:2] as O2. The resulting name must be unique within the molecule and at most four characters.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse struct{…}`

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB)

              - `ChainID string`

                Chain ID containing the atom

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerAtom`

                - `const PolymerAtomPolymerAtom PolymerAtom = "polymer_atom"`

        - `Constraints []ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseConstraintUnion`

          Structural constraints (pocket and contact). Ligand atom references support CCD atom names and explicitly atom-mapped SMILES atoms.

          - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse struct{…}`

            Constrains the binder to interact with specific pocket residues on the target.

            - `BinderChainID string`

              Chain ID of the binder molecule

            - `ContactResidues map[string, []int64]`

              Binding pocket residues keyed by chain ID. Each key is a chain ID (e.g. "A") and the value is an array of 0-indexed residue indices that define the pocket on that chain.

            - `MaxDistanceAngstrom float64`

              Maximum allowed distance in Angstroms between binder and pocket residues. Typical range: 4-8 A.

            - `Type Pocket`

              - `const PocketPocket Pocket = "pocket"`

            - `Force bool`

              Whether to force the constraint

          - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponse struct{…}`

            Maximum-distance contact constraint between two polymer residues or ligand atoms.

            - `MaxDistanceAngstrom float64`

              Maximum distance in Angstroms

            - `Token1 ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1Union`

              Ligand contact token for a CCD atom or an explicitly atom-mapped SMILES atom.

              - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse struct{…}`

                Ligand contact token for a CCD atom or an explicitly atom-mapped SMILES atom.

                - `AtomName string`

                  Atom name. For ligand_ccd, use the standardized CIF atom name. For ligand_smiles, explicitly label the atom with numeric atom-map notation: [C:1] is referenced as C1 and [O:2] as O2. The resulting name must be unique within the molecule and at most four characters.

                - `ChainID string`

                  Chain ID

                - `Type LigandContact`

                  - `const LigandContactLigandContact LigandContact = "ligand_contact"`

            - `Token2 ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2Union`

              Ligand contact token for a CCD atom or an explicitly atom-mapped SMILES atom.

              - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinLibraryScreenResumeResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse struct{…}`

                Ligand contact token for a CCD atom or an explicitly atom-mapped SMILES atom.

                - `AtomName string`

                  Atom name. For ligand_ccd, use the standardized CIF atom name. For ligand_smiles, explicitly label the atom with numeric atom-map notation: [C:1] is referenced as C1 and [O:2] as O2. The resulting name must be unique within the molecule and at most four characters.

                - `ChainID string`

                  Chain ID

                - `Type LigandContact`

                  - `const LigandContactLigandContact LigandContact = "ligand_contact"`

            - `Type Contact`

              - `const ContactContact Contact = "contact"`

            - `Force bool`

              Whether to force the constraint

        - `EpitopeLigandChains []string`

          Chain IDs of ligand entities that are part of the binding epitope. Ligands are marked as epitope in full (no residue-level selection).

        - `EpitopeResidues map[string, []int64]`

          Polymer chain residues where binder contact is desired (the epitope). Each key is a chain ID of a polymer entity, each value is an array of 0-indexed residue indices. Residues must not overlap non_binding_residues on the same chain.

        - `NonBindingResidues map[string, []int64]`

          Polymer chain residues where binder contact should be discouraged. Each key is a chain ID of a polymer entity, each value is an array of 0-indexed residue indices. Residues must not overlap epitope_residues on the same chain.

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Pipeline Boltzprot`

    Pipeline used for protein library screen

    - `const BoltzprotBoltzprot Boltzprot = "boltzprot"`

  - `PipelineVersion String1_0`

    Pipeline version used for protein library screen

    - `const String1_01_0 String1_0 = "1.0"`

  - `Progress ProteinLibraryScreenResumeResponseProgress`

    - `NumProteinsFailed int64`

      Number of accepted proteins that reached terminal failure during screening.

    - `NumProteinsScreened int64`

      Number of accepted proteins that produced usable screening results.

    - `TotalProteinsToScreen int64`

      Total number of proteins accepted into the screening run.

    - `LatestResultID string`

      ID of the latest result

  - `StartedAt Time`

  - `Status ProteinLibraryScreenResumeResponseStatus`

    - `const ProteinLibraryScreenResumeResponseStatusPending ProteinLibraryScreenResumeResponseStatus = "pending"`

    - `const ProteinLibraryScreenResumeResponseStatusRunning ProteinLibraryScreenResumeResponseStatus = "running"`

    - `const ProteinLibraryScreenResumeResponseStatusSucceeded ProteinLibraryScreenResumeResponseStatus = "succeeded"`

    - `const ProteinLibraryScreenResumeResponseStatusFailed ProteinLibraryScreenResumeResponseStatus = "failed"`

    - `const ProteinLibraryScreenResumeResponseStatusStopped ProteinLibraryScreenResumeResponseStatus = "stopped"`

  - `StoppedAt Time`

  - `WorkspaceID string`

    Workspace ID

  - `IdempotencyKey string`

    Client-provided idempotency key

### Example

```go
package main

import (
  "context"
  "fmt"

  "github.com/boltz-bio/boltz-api-go"
  "github.com/boltz-bio/boltz-api-go/option"
)

func main() {
  client := boltzapi.NewClient(
    option.WithAPIKey("My API Key"),
  )
  response, err := client.Protein.LibraryScreen.Resume(context.TODO(), "id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```

#### Response

```json
{
  "id": "id",
  "completed_at": "2019-12-27T18:11:19.117Z",
  "created_at": "2019-12-27T18:11:19.117Z",
  "data_deleted_at": "2019-12-27T18:11:19.117Z",
  "engine": "boltzprot",
  "engine_version": "1.0",
  "error": {
    "code": "code",
    "message": "message",
    "details": {}
  },
  "input": {
    "proteins": {
      "url": "https://example.com",
      "url_expires_at": "2019-12-27T18:11:19.117Z"
    },
    "target": {
      "chain_selection": {
        "A": {
          "chain_type": "polymer",
          "crop_residues": [
            0,
            1,
            2,
            3,
            4,
            5,
            6,
            7,
            8,
            9,
            10,
            11,
            12
          ],
          "epitope_residues": [
            10,
            11,
            12
          ],
          "flexible_residues": [
            5,
            6,
            7
          ],
          "non_binding_residues": [
            0,
            1,
            2
          ]
        }
      },
      "structure": {
        "url": "https://example.com",
        "url_expires_at": "2019-12-27T18:11:19.117Z"
      },
      "type": "structure_template"
    }
  },
  "livemode": true,
  "pipeline": "boltzprot",
  "pipeline_version": "1.0",
  "progress": {
    "num_proteins_failed": 0,
    "num_proteins_screened": 0,
    "total_proteins_to_screen": 1,
    "latest_result_id": "latest_result_id"
  },
  "started_at": "2019-12-27T18:11:19.117Z",
  "status": "pending",
  "stopped_at": "2019-12-27T18:11:19.117Z",
  "workspace_id": "workspace_id",
  "idempotency_key": "idempotency_key"
}
```
