schrodinger.application.bioluminate.residue_scanning.workspace_management module

Workspace operations for interactive residue scanning.

schrodinger.application.bioluminate.residue_scanning.workspace_management.res_id(residue: Residue) → ResidueIdentifier

Identify a residue, preserving Maestro’s chain and residue code.

schrodinger.application.bioluminate.residue_scanning.workspace_management.chain_and_resnum(residue: Residue) → tuple[str, int, str | None]

Identify a residue position, including its insertion code.

schrodinger.application.bioluminate.residue_scanning.workspace_management.residue_id_text(identifier: ResidueIdentifier) → str

Format a residue identifier for Maestro and Prime.

schrodinger.application.bioluminate.residue_scanning.workspace_management.peptide_mutation(identifier: ResidueIdentifier, target_residue: str) → Mutation

Make a peptide mutation from a selected residue identifier.

class schrodinger.application.bioluminate.residue_scanning.workspace_management.RotamerAnimator(parent: Optional[QObject] = None, rng: Optional[Random] = None)

Bases: QObject

Display random target-residue rotamers while refinement runs.

Animation operates on copies owned by the GUI thread. The backend worker receives its own source snapshot, so changing Workspace coordinates cannot affect the calculation.

__init__(parent: Optional[QObject] = None, rng: Optional[Random] = None)
start(source_structure: Structure, mutations: Sequence[Mutation])

Preview targets and animate every rotatable refined residue.

stop(*, restore_workspace: bool = True) → str

Stop the animation and return the animated-residue ASL.

resultImport(source_structure: Structure)

Keep preview rollback state until a result import commits.

isRunning() → bool

Return whether rotamer frames are actively being generated.

class schrodinger.application.bioluminate.residue_scanning.workspace_management.WorkspaceImportSession(source_snapshot: Structure, included_entry_ids: tuple[str, ...], preview_entry_id: Optional[str], displayed_asl: str, original_entry_ids: frozenset[str], imported_entry_id: Optional[str] = None)

Bases: object

Own the Project Table and Workspace rollback state for one import.

source_snapshot: Structure
included_entry_ids: tuple[str, ...]
preview_entry_id: Optional[str]
displayed_asl: str
original_entry_ids: frozenset[str]
imported_entry_id: Optional[str] = None
importResult(result_structure: Structure, title: str)

Import and show a result while retaining rollback information.

commit()

Remove the temporary preview after a successful import.

rollback()

Delete new entries and restore the original Workspace view.

__init__(source_snapshot: Structure, included_entry_ids: tuple[str, ...], preview_entry_id: Optional[str], displayed_asl: str, original_entry_ids: frozenset[str], imported_entry_id: Optional[str] = None) → None
schrodinger.application.bioluminate.residue_scanning.workspace_management.set_workspace_structure(workspace_structure: Structure, topology_changed: bool = False)

Install an animation frame and redraw the appropriate changes.

schrodinger.application.bioluminate.residue_scanning.workspace_management.show_residues(asl: str)

Make the animated residues visible in the Workspace.

schrodinger.application.bioluminate.residue_scanning.workspace_management.preserve_workspace_view()

Restore the full camera state after replacing Workspace contents.

schrodinger.application.bioluminate.residue_scanning.workspace_management.mutation_summary(reference_structure: Structure, mutations: Sequence[Mutation]) → str

Return accumulated mutations in a compact human-readable form.

schrodinger.application.bioluminate.residue_scanning.workspace_management.workspace_structure_title(workspace_structure: Structure) → str

Return the Project title for the current Workspace structure.

schrodinger.application.bioluminate.residue_scanning.workspace_management.selected_residues_from_structure(source_structure: Structure, selected_atoms: Sequence[int]) → list[ResidueIdentifier]

Snapshot the unique selected protein residues in selection order.

schrodinger.application.bioluminate.residue_scanning.workspace_management.accumulated_mutations(reference_structure: Structure, source_structure: Structure, incremental_mutations: Sequence[Mutation]) → tuple[Mutation, ...]

Return all sequence changes relative to reference_structure.

schrodinger.application.bioluminate.residue_scanning.workspace_management.selected_residue_from_structure(source_structure: Structure, selected_atoms: Sequence[int]) → ResidueIdentifier

Snapshot the single selected protein residue.

Raises:

ValueError – if the selection is empty, spans multiple residues, or does not identify a protein residue.

schrodinger.application.bioluminate.residue_scanning.workspace_management.preserve_source_residue_styles(source_structure: Structure, result_structure: Structure)

Transfer source-residue display styling to a generated structure.

This follows Maestro’s normal mutation path: every output residue atom gets the source C-alpha’s non-color display state. Corresponding atoms also retain their exact color, labels, and visibility. New atoms retain their generated colors, labels, and visibility just as a normal mutation does.

schrodinger.application.bioluminate.residue_scanning.workspace_management.include_only_result(entry_id: str)

Exclude fixed prior entries and show only the mutation result.