schrodinger.livedesign.biologics.sequence module

class schrodinger.livedesign.biologics.sequence.AlignedSequence(sequence: str, identity: float = None, similarity: float = None)

Bases: object

sequence: str
identity: float = None
similarity: float = None
static fromProteinSequence(seq: schrodinger.protein.sequence.ProteinSequence, ref_seq: Optional[schrodinger.protein.sequence.ProteinSequence] = None)
__init__(sequence: str, identity: Optional[float] = None, similarity: Optional[float] = None) None
schrodinger.livedesign.biologics.sequence.subsequence_matches(match_mol: rdkit.Chem.rdchem.Mol, query_mol: rdkit.Chem.rdchem.Mol) Iterator[rdkit.Chem.rdchem.Mol]

Return matches on query_polymer in match_mol using RDKit’s topology based substructure searching. This is possible because we mark monomers with unique isotopes to differentiate monomer types.

  • match_mol – molecule to search over for matches

  • query_mol – molecule to find matches of


substructure matches found in match_mol of query_mol

schrodinger.livedesign.biologics.sequence.get_sequence_viewer_data(mol: rdkit.Chem.rdchem.Mol, scheme: schrodinger.infra.util.AntibodyCDRScheme = AntibodyCDRScheme.Kabat)

mol – rdmol to extract sequence data from


a map from polymer id to a dictionary mapping antibody regions to monomer indices in the corresponding simple polymer


RuntimeError – if the molecule contains nonlinear peptides

schrodinger.livedesign.biologics.sequence.get_annotations_for_helm_model(model: schrodinger.protein.helm._helm_parser.HelmModel, scheme: schrodinger.infra.util.AntibodyCDRScheme) Dict[str, Dict[str, Union[Tuple[int, int], List[str]]]]

HelmModels reorder polymer chains to canonicalize input, which means that the same polymer can have two different polymer ids in two models if those two models contain different peptide polymers. This function goes back through a HELM model and computes the mapping between each antibody chains and its constituent region annotation.


model – HelmModel to extract annotations for


a map from polymer id to a dictionary mapping antibody regions to monomer indices in the corresponding simple polymer.

schrodinger.livedesign.biologics.sequence.get_sequence_filter_chain_name(entity_class: schrodinger.livedesign.entity_type.EntityClass) str

Simplify chain names presented in the sequence viewer filter combobox


entity_class – the entity class of the given polymer chain


chain name to label the given entity’s sequence viewer data

schrodinger.livedesign.biologics.sequence.get_polymer_annotations(polymer: schrodinger.protein.helm._helm_parser.HelmPolymer, scheme: schrodinger.infra.util.AntibodyCDRScheme) Tuple[str, Dict[str, Union[Tuple[int, int], List[str]]]]

Returns the chain ID and sequence annotations for a HelmPolymer.

schrodinger.livedesign.biologics.sequence.get_monomer_data(polymer: HelmPolymer) dict[str, dict[str, Any]]

Returns a list of dictionaries containing monomer information for each monomer in the polymer.

schrodinger.livedesign.biologics.sequence.get_ab_annotations(fasta_sequence: str, scheme: schrodinger.infra.util.AntibodyCDRScheme) Dict[str, Union[Tuple[int, int], List[str]]]

Cheap cache wrapper around antibody.SeqType to reduce the cost of calling get_annotations for each RegistrationData object.

schrodinger.livedesign.biologics.sequence.split_by_hierarchy(region_dict: Dict[str, List[int]]) Dict[str, Dict[str, List[int]]]

Splits a region dictionary into a dictionary of antibody domain boundaries (e.g., VH, CH1) and a dictionary of subdomain boundaries (e.g. HFR1, H1).

schrodinger.livedesign.biologics.sequence.get_arm_indices(model: schrodinger.protein.helm._helm_parser.HelmModel) Dict[str, int]

Returns a mapping from polymer id to arm pairs. If no arm pairing is provided, assignes a unique arm pair to each polymer id.

schrodinger.livedesign.biologics.sequence.align_sequences(sequences: List[str], ref_seq_index: Optional[int] = None, polymer_type=PolymerType.PEPTIDE) List[schrodinger.livedesign.biologics.sequence.AlignedSequence]

Returns aligned sequences as a FASTA string.

  • sequences – sequences to align

  • ref_seq_index – if not None, all sequences are pairwise aligned using the sequence at ref_seq_index as a reference sequence

  • polymer_type – the type of polymer to align (Default: PEPTIDE)


FASTA string of the aligned sequences

schrodinger.livedesign.biologics.sequence.align_all_to_reference(aln: ProteinAlignment, ref_seq_index: int, sub_matrix: dict[tuple[str, str], int] = None, **extra_args) None

Aligns a given ProteinAlignment pairwise with respect to the specified reference sequence. Due to the way alignments were implemented, (see protein.alignment.BaseAlignment) ref_seq must be a sequence already in the alignment. The input ProteinAlignment is modified and not returned.

  • aln – the alignment to be aligned

  • ref_seq_index – index corresponding to the reference sequence

  • sub_matrix – substitution matrix mapping pairs of amino acids to a score

  • extra_args – additional arguments to pass to the aligner

schrodinger.livedesign.biologics.sequence.multiple_align(aln: schrodinger.protein.alignment.ProteinAlignment) None

Aligns a given ProteinAlignment via multiple sequence alignment. The input ProteinAlignment is modified and not returned.


aln – the alignment to be aligned