# Library Screen

## Start

`client.Protein.LibraryScreen.Start(ctx, body) (*ProteinLibraryScreenStartResponse, error)`

**post** `/compute/v1/protein/library-screen`

Screen a set of protein candidates against a target

### Parameters

- `body ProteinLibraryScreenStartParams`

  - `Proteins param.Field[[]ProteinLibraryScreenStartParamsProtein]`

    List of protein entries to screen.

    - `Entities []ProteinLibraryScreenStartParamsProteinEntityUnion`

      Entities that make up this protein complex

      - `type ProteinLibraryScreenStartParamsProteinEntityProteinEntity 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 []ProteinLibraryScreenStartParamsProteinEntityProteinEntityModificationUnion`

          Post-translational modifications. Optional; defaults to an empty list when omitted.

          - `type ProteinLibraryScreenStartParamsProteinEntityProteinEntityModificationCcdModification struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Ccd`

              - `const CcdCcd Ccd = "ccd"`

            - `Value string`

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

          - `type ProteinLibraryScreenStartParamsProteinEntityProteinEntityModificationSmilesModification struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Smiles`

              - `const SmilesSmiles Smiles = "smiles"`

            - `Value string`

              SMILES string for the modification

      - `type ProteinLibraryScreenStartParamsProteinEntityRnaEntity 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 []ProteinLibraryScreenStartParamsProteinEntityRnaEntityModificationUnion`

          Chemical modifications. Optional; defaults to an empty list when omitted.

          - `type ProteinLibraryScreenStartParamsProteinEntityRnaEntityModificationCcdModification struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Ccd`

              - `const CcdCcd Ccd = "ccd"`

            - `Value string`

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

          - `type ProteinLibraryScreenStartParamsProteinEntityRnaEntityModificationSmilesModification struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Smiles`

              - `const SmilesSmiles Smiles = "smiles"`

            - `Value string`

              SMILES string for the modification

      - `type ProteinLibraryScreenStartParamsProteinEntityDnaEntity 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 []ProteinLibraryScreenStartParamsProteinEntityDnaEntityModificationUnion`

          Chemical modifications. Optional; defaults to an empty list when omitted.

          - `type ProteinLibraryScreenStartParamsProteinEntityDnaEntityModificationCcdModification struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Ccd`

              - `const CcdCcd Ccd = "ccd"`

            - `Value string`

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

          - `type ProteinLibraryScreenStartParamsProteinEntityDnaEntityModificationSmilesModification struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Smiles`

              - `const SmilesSmiles Smiles = "smiles"`

            - `Value string`

              SMILES string for the modification

      - `type ProteinLibraryScreenStartParamsProteinEntityLigandCcdEntity struct{…}`

        - `ChainIDs []string`

          Chain IDs for this ligand

        - `Type LigandCcd`

          - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

        - `Value string`

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

      - `type ProteinLibraryScreenStartParamsProteinEntityLigandSmilesEntity struct{…}`

        - `ChainIDs []string`

          Chain IDs for this ligand

        - `Type LigandSmiles`

          - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

        - `Value string`

          SMILES string representing the ligand

    - `ID string`

      Optional client-provided identifier for this entry

  - `Target param.Field[ProteinLibraryScreenStartParamsTargetUnion]`

    Target specification (structure template or template-free)

    - `type ProteinLibraryScreenStartParamsTargetStructureTemplateTarget struct{…}`

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

      - `ChainSelection map[string, ProteinLibraryScreenStartParamsTargetStructureTemplateTargetChainSelectionUnion]`

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

        - `type ProteinLibraryScreenStartParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec struct{…}`

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

          - `ChainType Polymer`

            - `const PolymerPolymer Polymer = "polymer"`

          - `CropResidues ProteinLibraryScreenStartParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion`

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

            - `type ProteinLibraryScreenStartParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesArray []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.

          - `FlexibleResidues []int64`

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

        - `type ProteinLibraryScreenStartParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetLigandChainSpec 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 ProteinLibraryScreenStartParamsTargetStructureTemplateTargetStructureUnion`

        How to provide a CIF structure file. URLs are auto-detected; base64 uploads must use chemical/x-cif media type.

        - `type ProteinLibraryScreenStartParamsTargetStructureTemplateTargetStructureURLSource struct{…}`

          - `Type URL`

            - `const URLURL URL = "url"`

          - `URL string`

        - `type ProteinLibraryScreenStartParamsTargetStructureTemplateTargetStructureCifBase64Source struct{…}`

          - `Data string`

            Base64-encoded CIF file contents

          - `MediaType ChemicalXCif`

            Must be chemical/x-cif for CIF files

            - `const ChemicalXCifChemicalXCif ChemicalXCif = "chemical/x-cif"`

          - `Type Base64`

            - `const Base64Base64 Base64 = "base64"`

      - `Type StructureTemplate`

        - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

    - `type ProteinLibraryScreenStartParamsTargetNoTemplateTarget struct{…}`

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

      - `Entities []ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityUnion`

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

        - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityProteinEntity 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 []ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityProteinEntityModificationUnion`

            Post-translational modifications. Optional; defaults to an empty list when omitted.

            - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityProteinEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityProteinEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityRnaEntity 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 []ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityRnaEntityModificationUnion`

            Chemical modifications. Optional; defaults to an empty list when omitted.

            - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityRnaEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityRnaEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityDnaEntity 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 []ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityDnaEntityModificationUnion`

            Chemical modifications. Optional; defaults to an empty list when omitted.

            - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityDnaEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityDnaEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityLigandCcdEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs for this ligand

          - `Type LigandCcd`

            - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

          - `Value string`

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

        - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetEntityLigandSmilesEntity 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 []ProteinLibraryScreenStartParamsTargetNoTemplateTargetBond`

        Covalent bond constraints between atoms in the target complex. Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.

        - `Atom1 ProteinLibraryScreenStartParamsTargetNoTemplateTargetBondAtom1Union`

          Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

          - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetBondAtom1LigandAtom struct{…}`

            Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetBondAtom1PolymerAtom 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 ProteinLibraryScreenStartParamsTargetNoTemplateTargetBondAtom2Union`

          Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

          - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetBondAtom2LigandAtom struct{…}`

            Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetBondAtom2PolymerAtom 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 []ProteinLibraryScreenStartParamsTargetNoTemplateTargetConstraintUnion`

        Structural constraints (pocket and contact). Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.

        - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetConstraintPocketConstraint 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 ProteinLibraryScreenStartParamsTargetNoTemplateTargetConstraintContactConstraint struct{…}`

          Contact constraint between two tokens. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

          - `MaxDistanceAngstrom float64`

            Maximum distance in Angstroms

          - `Token1 ProteinLibraryScreenStartParamsTargetNoTemplateTargetConstraintContactConstraintToken1Union`

            Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetConstraintContactConstraintToken1PolymerContactToken struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetConstraintContactConstraintToken1LigandContactToken struct{…}`

              Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `AtomName string`

                Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID

              - `Type LigandContact`

                - `const LigandContactLigandContact LigandContact = "ligand_contact"`

          - `Token2 ProteinLibraryScreenStartParamsTargetNoTemplateTargetConstraintContactConstraintToken2Union`

            Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetConstraintContactConstraintToken2PolymerContactToken struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type ProteinLibraryScreenStartParamsTargetNoTemplateTargetConstraintContactConstraintToken2LigandContactToken struct{…}`

              Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `AtomName string`

                Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `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.

  - `IdempotencyKey param.Field[string]`

    Client-provided key to prevent duplicate submissions on retries

  - `WorkspaceID param.Field[string]`

    Target workspace ID (admin keys only; ignored for workspace keys)

### Returns

- `type ProteinLibraryScreenStartResponse struct{…}`

  A protein library screening engine 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 BoltzProteinScreen`

    Engine used for protein library screen

    - `const BoltzProteinScreenBoltzProteinScreen BoltzProteinScreen = "boltz-protein-screen"`

  - `EngineVersion string`

    Engine version used for protein library screen

  - `Error ProteinLibraryScreenStartResponseError`

    - `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 ProteinLibraryScreenStartResponseInput`

    Pipeline input (null if data deleted)

    - `Proteins ProteinLibraryScreenStartResponseInputProteins`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

    - `Target ProteinLibraryScreenStartResponseInputTargetUnion`

      Target specification (structure template or template-free)

      - `type ProteinLibraryScreenStartResponseInputTargetStructureTemplateTargetResponse struct{…}`

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

        - `ChainSelection map[string, ProteinLibraryScreenStartResponseInputTargetStructureTemplateTargetResponseChainSelectionUnion]`

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

          - `type ProteinLibraryScreenStartResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec struct{…}`

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

            - `ChainType Polymer`

              - `const PolymerPolymer Polymer = "polymer"`

            - `CropResidues ProteinLibraryScreenStartResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion`

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

              - `type ProteinLibraryScreenStartResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesArray []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.

            - `FlexibleResidues []int64`

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

          - `type ProteinLibraryScreenStartResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec 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 ProteinLibraryScreenStartResponseInputTargetStructureTemplateTargetResponseStructure`

          - `URL string`

            URL to download the file

          - `URLExpiresAt Time`

            When the presigned URL expires

        - `Type StructureTemplate`

          - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

      - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponse struct{…}`

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

        - `Entities []ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityUnion`

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

          - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponse 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 []ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationUnion`

              Post-translational modifications. Optional; defaults to an empty list when omitted.

              - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponse 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 []ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationUnion`

              Chemical modifications. Optional; defaults to an empty list when omitted.

              - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponse 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 []ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationUnion`

              Chemical modifications. Optional; defaults to an empty list when omitted.

              - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this ligand

            - `Type LigandCcd`

              - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

            - `Value string`

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

          - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse 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 []ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseBond`

          Covalent bond constraints between atoms in the target complex. Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.

          - `Atom1 ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseBondAtom1Union`

            Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse struct{…}`

              Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse 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 ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseBondAtom2Union`

            Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse struct{…}`

              Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse 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 []ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseConstraintUnion`

          Structural constraints (pocket and contact). Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.

          - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse 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 ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponse struct{…}`

            Contact constraint between two tokens. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `MaxDistanceAngstrom float64`

              Maximum distance in Angstroms

            - `Token1 ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1Union`

              Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse struct{…}`

                Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

                - `AtomName string`

                  Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

                - `ChainID string`

                  Chain ID

                - `Type LigandContact`

                  - `const LigandContactLigandContact LigandContact = "ligand_contact"`

            - `Token2 ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2Union`

              Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinLibraryScreenStartResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse struct{…}`

                Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

                - `AtomName string`

                  Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

                - `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.

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Progress ProteinLibraryScreenStartResponseProgress`

    - `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 ProteinLibraryScreenStartResponseStatus`

    - `const ProteinLibraryScreenStartResponseStatusPending ProteinLibraryScreenStartResponseStatus = "pending"`

    - `const ProteinLibraryScreenStartResponseStatusRunning ProteinLibraryScreenStartResponseStatus = "running"`

    - `const ProteinLibraryScreenStartResponseStatusSucceeded ProteinLibraryScreenStartResponseStatus = "succeeded"`

    - `const ProteinLibraryScreenStartResponseStatusFailed ProteinLibraryScreenStartResponseStatus = "failed"`

    - `const ProteinLibraryScreenStartResponseStatusStopped ProteinLibraryScreenStartResponseStatus = "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.Start(context.TODO(), boltzapi.ProteinLibraryScreenStartParams{
    Proteins: []boltzapi.ProteinLibraryScreenStartParamsProtein{boltzapi.ProteinLibraryScreenStartParamsProtein{
      Entities: []boltzapi.ProteinLibraryScreenStartParamsProteinEntityUnion{boltzapi.ProteinLibraryScreenStartParamsProteinEntityUnion{
        OfProteinLibraryScreenStartsProteinEntityProteinEntity: &boltzapi.ProteinLibraryScreenStartParamsProteinEntityProteinEntity{
          ChainIDs: []string{"string"},
          Value: "value",
        },
      }},
    }},
    Target: boltzapi.ProteinLibraryScreenStartParamsTargetUnion{
      OfProteinLibraryScreenStartsTargetStructureTemplateTarget: &boltzapi.ProteinLibraryScreenStartParamsTargetStructureTemplateTarget{
        ChainSelection: map[string]boltzapi.ProteinLibraryScreenStartParamsTargetStructureTemplateTargetChainSelectionUnion{
        "A": boltzapi.ProteinLibraryScreenStartParamsTargetStructureTemplateTargetChainSelectionUnion{
          OfProteinLibraryScreenStartsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec: &boltzapi.ProteinLibraryScreenStartParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec{
            CropResidues: boltzapi.ProteinLibraryScreenStartParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion{
              OfIntArray: []int64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12},
            },
          },
        },
        },
        Structure: boltzapi.ProteinLibraryScreenStartParamsTargetStructureTemplateTargetStructureUnion{
          OfProteinLibraryScreenStartsTargetStructureTemplateTargetStructureURLSource: &boltzapi.ProteinLibraryScreenStartParamsTargetStructureTemplateTargetStructureURLSource{
            URL: "https://example.com",
          },
        },
      },
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```

## List

`client.Protein.LibraryScreen.List(ctx, query) (*CursorPage[ProteinLibraryScreenListResponse], error)`

**get** `/compute/v1/protein/library-screen`

List protein library screens, optionally filtered by workspace

### Parameters

- `query ProteinLibraryScreenListParams`

  - `AfterID param.Field[string]`

    Return results after this ID

  - `BeforeID param.Field[string]`

    Return results before this ID

  - `Limit param.Field[int64]`

    Max items to return. Defaults to 100.

  - `WorkspaceID param.Field[string]`

    Filter by workspace ID. Only used with admin API keys. If not provided, defaults to the workspace associated with the API key, or the default workspace for admin keys.

### Returns

- `type ProteinLibraryScreenListResponse struct{…}`

  Summary of a protein library screening engine run (excludes input)

  - `ID string`

    Unique ProteinLibraryScreenSummary 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 BoltzProteinScreen`

    Engine used for protein library screen

    - `const BoltzProteinScreenBoltzProteinScreen BoltzProteinScreen = "boltz-protein-screen"`

  - `EngineVersion string`

    Engine version used for protein library screen

  - `Error ProteinLibraryScreenListResponseError`

    - `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.

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Progress ProteinLibraryScreenListResponseProgress`

    - `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 ProteinLibraryScreenListResponseStatus`

    - `const ProteinLibraryScreenListResponseStatusPending ProteinLibraryScreenListResponseStatus = "pending"`

    - `const ProteinLibraryScreenListResponseStatusRunning ProteinLibraryScreenListResponseStatus = "running"`

    - `const ProteinLibraryScreenListResponseStatusSucceeded ProteinLibraryScreenListResponseStatus = "succeeded"`

    - `const ProteinLibraryScreenListResponseStatusFailed ProteinLibraryScreenListResponseStatus = "failed"`

    - `const ProteinLibraryScreenListResponseStatusStopped ProteinLibraryScreenListResponseStatus = "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"),
  )
  page, err := client.Protein.LibraryScreen.List(context.TODO(), boltzapi.ProteinLibraryScreenListParams{

  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
```

## Retrieve

`client.Protein.LibraryScreen.Get(ctx, id, query) (*ProteinLibraryScreenGetResponse, error)`

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

Retrieve a library screen by ID, including progress and status

### Parameters

- `id string`

- `query ProteinLibraryScreenGetParams`

  - `WorkspaceID param.Field[string]`

    Workspace ID. Only used with admin API keys. Ignored (or validated) for workspace-scoped keys.

### Returns

- `type ProteinLibraryScreenGetResponse struct{…}`

  A protein library screening engine 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 BoltzProteinScreen`

    Engine used for protein library screen

    - `const BoltzProteinScreenBoltzProteinScreen BoltzProteinScreen = "boltz-protein-screen"`

  - `EngineVersion string`

    Engine version used for protein library screen

  - `Error ProteinLibraryScreenGetResponseError`

    - `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 ProteinLibraryScreenGetResponseInput`

    Pipeline input (null if data deleted)

    - `Proteins ProteinLibraryScreenGetResponseInputProteins`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

    - `Target ProteinLibraryScreenGetResponseInputTargetUnion`

      Target specification (structure template or template-free)

      - `type ProteinLibraryScreenGetResponseInputTargetStructureTemplateTargetResponse struct{…}`

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

        - `ChainSelection map[string, ProteinLibraryScreenGetResponseInputTargetStructureTemplateTargetResponseChainSelectionUnion]`

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

          - `type ProteinLibraryScreenGetResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec struct{…}`

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

            - `ChainType Polymer`

              - `const PolymerPolymer Polymer = "polymer"`

            - `CropResidues ProteinLibraryScreenGetResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion`

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

              - `type ProteinLibraryScreenGetResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesArray []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.

            - `FlexibleResidues []int64`

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

          - `type ProteinLibraryScreenGetResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec 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 ProteinLibraryScreenGetResponseInputTargetStructureTemplateTargetResponseStructure`

          - `URL string`

            URL to download the file

          - `URLExpiresAt Time`

            When the presigned URL expires

        - `Type StructureTemplate`

          - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

      - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponse struct{…}`

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

        - `Entities []ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityUnion`

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

          - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponse 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 []ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationUnion`

              Post-translational modifications. Optional; defaults to an empty list when omitted.

              - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponse 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 []ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationUnion`

              Chemical modifications. Optional; defaults to an empty list when omitted.

              - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponse 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 []ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationUnion`

              Chemical modifications. Optional; defaults to an empty list when omitted.

              - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this ligand

            - `Type LigandCcd`

              - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

            - `Value string`

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

          - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse 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 []ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseBond`

          Covalent bond constraints between atoms in the target complex. Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.

          - `Atom1 ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseBondAtom1Union`

            Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse struct{…}`

              Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse 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 ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseBondAtom2Union`

            Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse struct{…}`

              Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse 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 []ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseConstraintUnion`

          Structural constraints (pocket and contact). Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.

          - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse 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 ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponse struct{…}`

            Contact constraint between two tokens. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `MaxDistanceAngstrom float64`

              Maximum distance in Angstroms

            - `Token1 ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1Union`

              Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse struct{…}`

                Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

                - `AtomName string`

                  Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

                - `ChainID string`

                  Chain ID

                - `Type LigandContact`

                  - `const LigandContactLigandContact LigandContact = "ligand_contact"`

            - `Token2 ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2Union`

              Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinLibraryScreenGetResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse struct{…}`

                Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

                - `AtomName string`

                  Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

                - `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.

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Progress ProteinLibraryScreenGetResponseProgress`

    - `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 ProteinLibraryScreenGetResponseStatus`

    - `const ProteinLibraryScreenGetResponseStatusPending ProteinLibraryScreenGetResponseStatus = "pending"`

    - `const ProteinLibraryScreenGetResponseStatusRunning ProteinLibraryScreenGetResponseStatus = "running"`

    - `const ProteinLibraryScreenGetResponseStatusSucceeded ProteinLibraryScreenGetResponseStatus = "succeeded"`

    - `const ProteinLibraryScreenGetResponseStatusFailed ProteinLibraryScreenGetResponseStatus = "failed"`

    - `const ProteinLibraryScreenGetResponseStatusStopped ProteinLibraryScreenGetResponseStatus = "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"),
  )
  libraryScreen, err := client.Protein.LibraryScreen.Get(
    context.TODO(),
    "id",
    boltzapi.ProteinLibraryScreenGetParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", libraryScreen.ID)
}
```

## List Results

`client.Protein.LibraryScreen.ListResults(ctx, id, query) (*CursorPage[ProteinLibraryScreenListResultsResponse], error)`

**get** `/compute/v1/protein/library-screen/{id}/results`

Retrieve paginated results from a protein library screen

### Parameters

- `id string`

- `query ProteinLibraryScreenListResultsParams`

  - `AfterID param.Field[string]`

    Return results after this ID

  - `BeforeID param.Field[string]`

    Return results before this ID

  - `Limit param.Field[int64]`

    Max results to return. Defaults to 100.

  - `WorkspaceID param.Field[string]`

    Workspace ID. Only used with admin API keys. Ignored (or validated) for workspace-scoped keys.

### Returns

- `type ProteinLibraryScreenListResultsResponse struct{…}`

  Result for a single screened protein

  - `ID string`

    Unique result ID

  - `Artifacts ProteinLibraryScreenListResultsResponseArtifacts`

    - `Archive ProteinLibraryScreenListResultsResponseArtifactsArchive`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

    - `Structure ProteinLibraryScreenListResultsResponseArtifactsStructure`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

  - `CreatedAt Time`

  - `Entities []ProteinLibraryScreenListResultsResponseEntityUnion`

    Entities of the screened complex. Includes both screened and fixed entities from the input.

    - `type ProteinLibraryScreenListResultsResponseEntityProteinEntity 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 []ProteinLibraryScreenListResultsResponseEntityProteinEntityModificationUnion`

        Post-translational modifications. Optional; defaults to an empty list when omitted.

        - `type ProteinLibraryScreenListResultsResponseEntityProteinEntityModificationCcdModification struct{…}`

          - `ResidueIndex int64`

            0-based index of the residue to modify

          - `Type Ccd`

            - `const CcdCcd Ccd = "ccd"`

          - `Value string`

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

        - `type ProteinLibraryScreenListResultsResponseEntityProteinEntityModificationSmilesModification struct{…}`

          - `ResidueIndex int64`

            0-based index of the residue to modify

          - `Type Smiles`

            - `const SmilesSmiles Smiles = "smiles"`

          - `Value string`

            SMILES string for the modification

    - `type ProteinLibraryScreenListResultsResponseEntityRnaEntity 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 []ProteinLibraryScreenListResultsResponseEntityRnaEntityModificationUnion`

        Chemical modifications. Optional; defaults to an empty list when omitted.

        - `type ProteinLibraryScreenListResultsResponseEntityRnaEntityModificationCcdModification struct{…}`

          - `ResidueIndex int64`

            0-based index of the residue to modify

          - `Type Ccd`

            - `const CcdCcd Ccd = "ccd"`

          - `Value string`

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

        - `type ProteinLibraryScreenListResultsResponseEntityRnaEntityModificationSmilesModification struct{…}`

          - `ResidueIndex int64`

            0-based index of the residue to modify

          - `Type Smiles`

            - `const SmilesSmiles Smiles = "smiles"`

          - `Value string`

            SMILES string for the modification

    - `type ProteinLibraryScreenListResultsResponseEntityDnaEntity 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 []ProteinLibraryScreenListResultsResponseEntityDnaEntityModificationUnion`

        Chemical modifications. Optional; defaults to an empty list when omitted.

        - `type ProteinLibraryScreenListResultsResponseEntityDnaEntityModificationCcdModification struct{…}`

          - `ResidueIndex int64`

            0-based index of the residue to modify

          - `Type Ccd`

            - `const CcdCcd Ccd = "ccd"`

          - `Value string`

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

        - `type ProteinLibraryScreenListResultsResponseEntityDnaEntityModificationSmilesModification struct{…}`

          - `ResidueIndex int64`

            0-based index of the residue to modify

          - `Type Smiles`

            - `const SmilesSmiles Smiles = "smiles"`

          - `Value string`

            SMILES string for the modification

    - `type ProteinLibraryScreenListResultsResponseEntityLigandCcdEntity struct{…}`

      - `ChainIDs []string`

        Chain IDs for this ligand

      - `Type LigandCcd`

        - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

      - `Value string`

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

    - `type ProteinLibraryScreenListResultsResponseEntityLigandSmilesEntity struct{…}`

      - `ChainIDs []string`

        Chain IDs for this ligand

      - `Type LigandSmiles`

        - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

      - `Value string`

        SMILES string representing the ligand

  - `Metrics ProteinLibraryScreenListResultsResponseMetrics`

    Structural and binding quality metrics for a screened protein

    - `BindingConfidence float64`

      Confidence that the protein binds the target (0-1). Primary metric for hit discovery.

    - `HelixFraction float64`

      Fraction of the sequence forming alpha helices (0-1).

    - `Iptm float64`

      Interface predicted TM score (0-1). Confidence in the protein-protein interface.

    - `LoopFraction float64`

      Fraction of the sequence in coil/loop regions (0-1).

    - `MinInteractionPae float64`

      Minimum predicted aligned error at the interface (Angstroms). Lower values indicate higher confidence.

    - `SheetFraction float64`

      Fraction of the sequence forming beta sheets (0-1).

    - `StructureConfidence float64`

      Confidence in the predicted 3D structure (0-1).

  - `ExternalID string`

    Client-provided identifier for this protein, if provided

  - `Warnings []ProteinLibraryScreenListResultsResponseWarning`

    Warnings about potential quality issues with this result.

    - `Code string`

      Machine-readable warning code (e.g. "low_confidence", "unusual_geometry")

    - `Message string`

      Human-readable description of the warning

### 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"),
  )
  page, err := client.Protein.LibraryScreen.ListResults(
    context.TODO(),
    "id",
    boltzapi.ProteinLibraryScreenListResultsParams{

    },
  )
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", page)
}
```

## Stop

`client.Protein.LibraryScreen.Stop(ctx, id) (*ProteinLibraryScreenStopResponse, error)`

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

Stop an in-progress protein library screen early

### Parameters

- `id string`

### Returns

- `type ProteinLibraryScreenStopResponse struct{…}`

  A protein library screening engine 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 BoltzProteinScreen`

    Engine used for protein library screen

    - `const BoltzProteinScreenBoltzProteinScreen BoltzProteinScreen = "boltz-protein-screen"`

  - `EngineVersion string`

    Engine version used for protein library screen

  - `Error ProteinLibraryScreenStopResponseError`

    - `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 ProteinLibraryScreenStopResponseInput`

    Pipeline input (null if data deleted)

    - `Proteins ProteinLibraryScreenStopResponseInputProteins`

      - `URL string`

        URL to download the file

      - `URLExpiresAt Time`

        When the presigned URL expires

    - `Target ProteinLibraryScreenStopResponseInputTargetUnion`

      Target specification (structure template or template-free)

      - `type ProteinLibraryScreenStopResponseInputTargetStructureTemplateTargetResponse struct{…}`

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

        - `ChainSelection map[string, ProteinLibraryScreenStopResponseInputTargetStructureTemplateTargetResponseChainSelectionUnion]`

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

          - `type ProteinLibraryScreenStopResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpec struct{…}`

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

            - `ChainType Polymer`

              - `const PolymerPolymer Polymer = "polymer"`

            - `CropResidues ProteinLibraryScreenStopResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion`

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

              - `type ProteinLibraryScreenStopResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesArray []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.

            - `FlexibleResidues []int64`

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

          - `type ProteinLibraryScreenStopResponseInputTargetStructureTemplateTargetResponseChainSelectionStructureTemplateTargetLigandChainSpec 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 ProteinLibraryScreenStopResponseInputTargetStructureTemplateTargetResponseStructure`

          - `URL string`

            URL to download the file

          - `URLExpiresAt Time`

            When the presigned URL expires

        - `Type StructureTemplate`

          - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

      - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponse struct{…}`

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

        - `Entities []ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityUnion`

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

          - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponse 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 []ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationUnion`

              Post-translational modifications. Optional; defaults to an empty list when omitted.

              - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityProteinEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponse 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 []ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationUnion`

              Chemical modifications. Optional; defaults to an empty list when omitted.

              - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityRnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponse 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 []ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationUnion`

              Chemical modifications. Optional; defaults to an empty list when omitted.

              - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationCcdModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Ccd`

                  - `const CcdCcd Ccd = "ccd"`

                - `Value string`

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

              - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityDnaEntityResponseModificationSmilesModificationResponse struct{…}`

                - `ResidueIndex int64`

                  0-based index of the residue to modify

                - `Type Smiles`

                  - `const SmilesSmiles Smiles = "smiles"`

                - `Value string`

                  SMILES string for the modification

          - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityLigandCcdEntityResponse struct{…}`

            - `ChainIDs []string`

              Chain IDs for this ligand

            - `Type LigandCcd`

              - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

            - `Value string`

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

          - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseEntityLigandSmilesEntityResponse 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 []ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseBond`

          Covalent bond constraints between atoms in the target complex. Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.

          - `Atom1 ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseBondAtom1Union`

            Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseBondAtom1LigandAtomResponse struct{…}`

              Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseBondAtom1PolymerAtomResponse 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 ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseBondAtom2Union`

            Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseBondAtom2LigandAtomResponse struct{…}`

              Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `AtomName string`

                Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID containing the atom

              - `Type LigandAtom`

                - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

            - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseBondAtom2PolymerAtomResponse 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 []ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseConstraintUnion`

          Structural constraints (pocket and contact). Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.

          - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseConstraintPocketConstraintResponse 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 ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponse struct{…}`

            Contact constraint between two tokens. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `MaxDistanceAngstrom float64`

              Maximum distance in Angstroms

            - `Token1 ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1Union`

              Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken1LigandContactTokenResponse struct{…}`

                Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

                - `AtomName string`

                  Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

                - `ChainID string`

                  Chain ID

                - `Type LigandContact`

                  - `const LigandContactLigandContact LigandContact = "ligand_contact"`

            - `Token2 ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2Union`

              Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2PolymerContactTokenResponse struct{…}`

                - `ChainID string`

                  Chain ID

                - `ResidueIndex int64`

                  0-based residue index

                - `Type PolymerContact`

                  - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

              - `type ProteinLibraryScreenStopResponseInputTargetNoTemplateTargetResponseConstraintContactConstraintResponseToken2LigandContactTokenResponse struct{…}`

                Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

                - `AtomName string`

                  Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

                - `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.

  - `Livemode bool`

    Whether this resource was created with a live API key.

  - `Progress ProteinLibraryScreenStopResponseProgress`

    - `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 ProteinLibraryScreenStopResponseStatus`

    - `const ProteinLibraryScreenStopResponseStatusPending ProteinLibraryScreenStopResponseStatus = "pending"`

    - `const ProteinLibraryScreenStopResponseStatusRunning ProteinLibraryScreenStopResponseStatus = "running"`

    - `const ProteinLibraryScreenStopResponseStatusSucceeded ProteinLibraryScreenStopResponseStatus = "succeeded"`

    - `const ProteinLibraryScreenStopResponseStatusFailed ProteinLibraryScreenStopResponseStatus = "failed"`

    - `const ProteinLibraryScreenStopResponseStatusStopped ProteinLibraryScreenStopResponseStatus = "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.Stop(context.TODO(), "id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```

## Delete Data

`client.Protein.LibraryScreen.DeleteData(ctx, id) (*ProteinLibraryScreenDeleteDataResponse, error)`

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

Permanently delete the input, output, and result data associated with this library screen. The library screen record itself is retained with a `data_deleted_at` timestamp. This action is irreversible.

### Parameters

- `id string`

### Returns

- `type ProteinLibraryScreenDeleteDataResponse struct{…}`

  - `ID string`

    ID of the resource whose data was deleted

  - `DataDeleted bool`

    - `const ProteinLibraryScreenDeleteDataResponseDataDeletedTrue ProteinLibraryScreenDeleteDataResponseDataDeleted = true`

  - `DataDeletedAt Time`

    When the data was deleted

### 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.DeleteData(context.TODO(), "id")
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.ID)
}
```

## Estimate Cost

`client.Protein.LibraryScreen.EstimateCost(ctx, body) (*ProteinLibraryScreenEstimateCostResponse, error)`

**post** `/compute/v1/protein/library-screen/estimate-cost`

Estimate the cost of a protein library screen without creating any resource or consuming GPU.

### Parameters

- `body ProteinLibraryScreenEstimateCostParams`

  - `Proteins param.Field[[]ProteinLibraryScreenEstimateCostParamsProtein]`

    List of protein entries to screen.

    - `Entities []ProteinLibraryScreenEstimateCostParamsProteinEntityUnion`

      Entities that make up this protein complex

      - `type ProteinLibraryScreenEstimateCostParamsProteinEntityProteinEntity 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 []ProteinLibraryScreenEstimateCostParamsProteinEntityProteinEntityModificationUnion`

          Post-translational modifications. Optional; defaults to an empty list when omitted.

          - `type ProteinLibraryScreenEstimateCostParamsProteinEntityProteinEntityModificationCcdModification struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Ccd`

              - `const CcdCcd Ccd = "ccd"`

            - `Value string`

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

          - `type ProteinLibraryScreenEstimateCostParamsProteinEntityProteinEntityModificationSmilesModification struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Smiles`

              - `const SmilesSmiles Smiles = "smiles"`

            - `Value string`

              SMILES string for the modification

      - `type ProteinLibraryScreenEstimateCostParamsProteinEntityRnaEntity 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 []ProteinLibraryScreenEstimateCostParamsProteinEntityRnaEntityModificationUnion`

          Chemical modifications. Optional; defaults to an empty list when omitted.

          - `type ProteinLibraryScreenEstimateCostParamsProteinEntityRnaEntityModificationCcdModification struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Ccd`

              - `const CcdCcd Ccd = "ccd"`

            - `Value string`

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

          - `type ProteinLibraryScreenEstimateCostParamsProteinEntityRnaEntityModificationSmilesModification struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Smiles`

              - `const SmilesSmiles Smiles = "smiles"`

            - `Value string`

              SMILES string for the modification

      - `type ProteinLibraryScreenEstimateCostParamsProteinEntityDnaEntity 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 []ProteinLibraryScreenEstimateCostParamsProteinEntityDnaEntityModificationUnion`

          Chemical modifications. Optional; defaults to an empty list when omitted.

          - `type ProteinLibraryScreenEstimateCostParamsProteinEntityDnaEntityModificationCcdModification struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Ccd`

              - `const CcdCcd Ccd = "ccd"`

            - `Value string`

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

          - `type ProteinLibraryScreenEstimateCostParamsProteinEntityDnaEntityModificationSmilesModification struct{…}`

            - `ResidueIndex int64`

              0-based index of the residue to modify

            - `Type Smiles`

              - `const SmilesSmiles Smiles = "smiles"`

            - `Value string`

              SMILES string for the modification

      - `type ProteinLibraryScreenEstimateCostParamsProteinEntityLigandCcdEntity struct{…}`

        - `ChainIDs []string`

          Chain IDs for this ligand

        - `Type LigandCcd`

          - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

        - `Value string`

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

      - `type ProteinLibraryScreenEstimateCostParamsProteinEntityLigandSmilesEntity struct{…}`

        - `ChainIDs []string`

          Chain IDs for this ligand

        - `Type LigandSmiles`

          - `const LigandSmilesLigandSmiles LigandSmiles = "ligand_smiles"`

        - `Value string`

          SMILES string representing the ligand

    - `ID string`

      Optional client-provided identifier for this entry

  - `Target param.Field[ProteinLibraryScreenEstimateCostParamsTargetUnion]`

    Target specification (structure template or template-free)

    - `type ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTarget struct{…}`

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

      - `ChainSelection map[string, ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionUnion]`

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

        - `type ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec struct{…}`

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

          - `ChainType Polymer`

            - `const PolymerPolymer Polymer = "polymer"`

          - `CropResidues ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion`

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

            - `type ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesArray []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.

          - `FlexibleResidues []int64`

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

        - `type ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetLigandChainSpec 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 ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetStructureUnion`

        How to provide a CIF structure file. URLs are auto-detected; base64 uploads must use chemical/x-cif media type.

        - `type ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetStructureURLSource struct{…}`

          - `Type URL`

            - `const URLURL URL = "url"`

          - `URL string`

        - `type ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetStructureCifBase64Source struct{…}`

          - `Data string`

            Base64-encoded CIF file contents

          - `MediaType ChemicalXCif`

            Must be chemical/x-cif for CIF files

            - `const ChemicalXCifChemicalXCif ChemicalXCif = "chemical/x-cif"`

          - `Type Base64`

            - `const Base64Base64 Base64 = "base64"`

      - `Type StructureTemplate`

        - `const StructureTemplateStructureTemplate StructureTemplate = "structure_template"`

    - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTarget struct{…}`

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

      - `Entities []ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityUnion`

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

        - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityProteinEntity 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 []ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityProteinEntityModificationUnion`

            Post-translational modifications. Optional; defaults to an empty list when omitted.

            - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityProteinEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityProteinEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityRnaEntity 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 []ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityRnaEntityModificationUnion`

            Chemical modifications. Optional; defaults to an empty list when omitted.

            - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityRnaEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityRnaEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityDnaEntity 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 []ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityDnaEntityModificationUnion`

            Chemical modifications. Optional; defaults to an empty list when omitted.

            - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityDnaEntityModificationCcdModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Ccd`

                - `const CcdCcd Ccd = "ccd"`

              - `Value string`

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

            - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityDnaEntityModificationSmilesModification struct{…}`

              - `ResidueIndex int64`

                0-based index of the residue to modify

              - `Type Smiles`

                - `const SmilesSmiles Smiles = "smiles"`

              - `Value string`

                SMILES string for the modification

        - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityLigandCcdEntity struct{…}`

          - `ChainIDs []string`

            Chain IDs for this ligand

          - `Type LigandCcd`

            - `const LigandCcdLigandCcd LigandCcd = "ligand_ccd"`

          - `Value string`

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

        - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetEntityLigandSmilesEntity 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 []ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBond`

        Covalent bond constraints between atoms in the target complex. Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.

        - `Atom1 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBondAtom1Union`

          Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

          - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBondAtom1LigandAtom struct{…}`

            Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBondAtom1PolymerAtom 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 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBondAtom2Union`

          Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

          - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBondAtom2LigandAtom struct{…}`

            Ligand atom reference. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `AtomName string`

              Standardized atom name (verifiable in CIF file on RCSB). Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

            - `ChainID string`

              Chain ID containing the atom

            - `Type LigandAtom`

              - `const LigandAtomLigandAtom LigandAtom = "ligand_atom"`

          - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetBondAtom2PolymerAtom 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 []ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetConstraintUnion`

        Structural constraints (pocket and contact). Atom-level ligand references currently support ligand_ccd only; ligand_smiles is unsupported.

        - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetConstraintPocketConstraint 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 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraint struct{…}`

          Contact constraint between two tokens. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

          - `MaxDistanceAngstrom float64`

            Maximum distance in Angstroms

          - `Token1 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraintToken1Union`

            Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraintToken1PolymerContactToken struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraintToken1LigandContactToken struct{…}`

              Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `AtomName string`

                Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `ChainID string`

                Chain ID

              - `Type LigandContact`

                - `const LigandContactLigandContact LigandContact = "ligand_contact"`

          - `Token2 ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraintToken2Union`

            Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

            - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraintToken2PolymerContactToken struct{…}`

              - `ChainID string`

                Chain ID

              - `ResidueIndex int64`

                0-based residue index

              - `Type PolymerContact`

                - `const PolymerContactPolymerContact PolymerContact = "polymer_contact"`

            - `type ProteinLibraryScreenEstimateCostParamsTargetNoTemplateTargetConstraintContactConstraintToken2LigandContactToken struct{…}`

              Ligand contact token. Atom-level ligand references currently support ligand_ccd entities only; ligand_smiles is unsupported.

              - `AtomName string`

                Atom name. Atom-level references to ligand_smiles entities are currently unsupported; use ligand_ccd instead.

              - `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.

  - `IdempotencyKey param.Field[string]`

    Client-provided key to prevent duplicate submissions on retries

  - `WorkspaceID param.Field[string]`

    Target workspace ID (admin keys only; ignored for workspace keys)

### Returns

- `type ProteinLibraryScreenEstimateCostResponse struct{…}`

  Estimate response with monetary values encoded as decimal strings to preserve precision.

  - `Breakdown ProteinLibraryScreenEstimateCostResponseBreakdown`

    Cost breakdown for the billed application.

    - `Application ProteinLibraryScreenEstimateCostResponseBreakdownApplication`

      - `const ProteinLibraryScreenEstimateCostResponseBreakdownApplicationStructureAndBinding ProteinLibraryScreenEstimateCostResponseBreakdownApplication = "structure_and_binding"`

      - `const ProteinLibraryScreenEstimateCostResponseBreakdownApplicationSmallMoleculeDesign ProteinLibraryScreenEstimateCostResponseBreakdownApplication = "small_molecule_design"`

      - `const ProteinLibraryScreenEstimateCostResponseBreakdownApplicationSmallMoleculeLibraryScreen ProteinLibraryScreenEstimateCostResponseBreakdownApplication = "small_molecule_library_screen"`

      - `const ProteinLibraryScreenEstimateCostResponseBreakdownApplicationProteinDesign ProteinLibraryScreenEstimateCostResponseBreakdownApplication = "protein_design"`

      - `const ProteinLibraryScreenEstimateCostResponseBreakdownApplicationProteinLibraryScreen ProteinLibraryScreenEstimateCostResponseBreakdownApplication = "protein_library_screen"`

      - `const ProteinLibraryScreenEstimateCostResponseBreakdownApplicationAdme ProteinLibraryScreenEstimateCostResponseBreakdownApplication = "adme"`

    - `CostPerUnitUsd string`

      Estimated cost per displayed unit as a decimal string, rounded up to 4 decimal places. This may include token-size multipliers or generation overhead; estimated_cost_usd is the authoritative total.

    - `NumUnits int64`

      Number of units shown for the estimate. For structure-and-binding, this is the requested number of samples. For protein and small-molecule design/screen endpoints, this is the requested number of proteins or molecules.

  - `Disclaimer string`

  - `EstimatedCostUsd string`

    Estimated total cost as a decimal string

### 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.EstimateCost(context.TODO(), boltzapi.ProteinLibraryScreenEstimateCostParams{
    Proteins: []boltzapi.ProteinLibraryScreenEstimateCostParamsProtein{boltzapi.ProteinLibraryScreenEstimateCostParamsProtein{
      Entities: []boltzapi.ProteinLibraryScreenEstimateCostParamsProteinEntityUnion{boltzapi.ProteinLibraryScreenEstimateCostParamsProteinEntityUnion{
        OfProteinLibraryScreenEstimateCostsProteinEntityProteinEntity: &boltzapi.ProteinLibraryScreenEstimateCostParamsProteinEntityProteinEntity{
          ChainIDs: []string{"string"},
          Value: "value",
        },
      }},
    }},
    Target: boltzapi.ProteinLibraryScreenEstimateCostParamsTargetUnion{
      OfProteinLibraryScreenEstimateCostsTargetStructureTemplateTarget: &boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTarget{
        ChainSelection: map[string]boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionUnion{
        "A": boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionUnion{
          OfProteinLibraryScreenEstimateCostsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec: &boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpec{
            CropResidues: boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetChainSelectionStructureTemplateTargetPolymerChainSpecCropResiduesUnion{
              OfIntArray: []int64{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12},
            },
          },
        },
        },
        Structure: boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetStructureUnion{
          OfProteinLibraryScreenEstimateCostsTargetStructureTemplateTargetStructureURLSource: &boltzapi.ProteinLibraryScreenEstimateCostParamsTargetStructureTemplateTargetStructureURLSource{
            URL: "https://example.com",
          },
        },
      },
    },
  })
  if err != nil {
    panic(err.Error())
  }
  fmt.Printf("%+v\n", response.Breakdown)
}
```
