## 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)
}
```
