score

score#

Score a given sequence on a structure using the ProteinMPNN model.

prxteinmpnn.scoring.score.make_score_sequence(model, decoding_order_fn=<PjitFunction of <function random_decoding_order>>, _num_encoder_layers=3, _num_decoder_layers=3)[source]#

Create a function to score a sequence on a structure using PrxteinMPNN.

Parameters:
  • model (PrxteinMPNN) – A PrxteinMPNN Equinox model instance.

  • decoding_order_fn (Callable[[Union[Key[Array, ''], UInt32[Array, '2']], int, Array | None, int | None], tuple[Int[Array, 'num_residues'], Union[Key[Array, ''], UInt32[Array, '2']]]]) – Function to generate decoding order (default: random).

  • _num_encoder_layers (int) – Deprecated, ignored (kept for API compatibility).

  • _num_decoder_layers (int) – Deprecated, ignored (kept for API compatibility).

Return type:

Callable[[Union[Key[Array, ''], UInt32[Array, '2']], Int[Array, 'num_residues'], Float[Array, 'num_residues num_atoms 3'], Int[Array, 'num_residues 3'], Int[Array, 'num_residues'], Int[Array, 'num_residues'], int, Float[Array, 'n'] | None, Bool[Array, 'num_residues num_residues'] | None], tuple[Float, Float[Array, 'num_residues num_classes'], Int[Array, 'num_residues']]]

Returns:

A function that scores sequences on structures.

Example

>>> from prxteinmpnn.io.weights import load_model
>>> model = load_model()
>>> score_fn = make_score_sequence(model)
>>> score, logits, order = score_fn(key, seq, coords, mask, res_idx, chain_idx)