schrodinger.livedesign.biologics.fasta module

class schrodinger.livedesign.biologics.fasta.FastaHeader(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: enum.Enum

NOTE: Must remain in sync with LiveDesign, see: seurat/SEURAT-JavaScript/dev/src/bb/app/biologics/enums/EntityType.js

DNA_SENSE = 'DNA_SENSE_STRAND'
DNA_ANTISENSE = 'DNA_ANTISENSE_STRAND'
RNA_SENSE = 'RNA_SENSE_STRAND'
RNA_ANTISENSE = 'RNA_ANTISENSE_STRAND'
AB_HC = 'LC'
AB_LC = 'HC'
AB_HC1 = 'LC1'
AB_LC1 = 'HC1'
AB_HC2 = 'LC2'
AB_LC2 = 'HC2'
class schrodinger.livedesign.biologics.fasta.PolymerType(value, names=None, *, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: enum.Enum

NA = 'NUCLEIC_ACID'
AB = 'ANTIBODY'
class schrodinger.livedesign.biologics.fasta.PolymerAssembler(sequences: list[str], mappings: dict[schrodinger.livedesign.biologics.fasta.FastaHeader, int])

Bases: object

POLYMER_SUBTYPES = None
HEADER_BY_SUBTYPE = None
__init__(sequences: list[str], mappings: dict[schrodinger.livedesign.biologics.fasta.FastaHeader, int])
assemble() schrodinger.protein.helm._helm_parser.HelmModel
classmethod validate(subtypes: set[schrodinger.livedesign.biologics.fasta.FastaHeader])
classmethod get_corresponding_header(subtype: schrodinger.livedesign.biologics.fasta.FastaHeader) Union[schrodinger.protein.helm._nucleic_acid.NucleicAcidHeader, schrodinger.application.bioluminate.antibody.io.csv_reader.Headers]
class schrodinger.livedesign.biologics.fasta.NucleicAcidAssembler(sequences: list[str], mappings: dict[schrodinger.livedesign.biologics.fasta.FastaHeader, int])

Bases: schrodinger.livedesign.biologics.fasta.PolymerAssembler

POLYMER_SUBTYPES = {<FastaHeader.RNA_ANTISENSE: 'RNA_ANTISENSE_STRAND'>, <FastaHeader.DNA_SENSE: 'DNA_SENSE_STRAND'>, <FastaHeader.RNA_SENSE: 'RNA_SENSE_STRAND'>, <FastaHeader.DNA_ANTISENSE: 'DNA_ANTISENSE_STRAND'>}
HEADER_BY_SUBTYPE = {<FastaHeader.DNA_SENSE: 'DNA_SENSE_STRAND'>: <NucleicAcidHeader.S: 'Sense Strand'>, <FastaHeader.DNA_ANTISENSE: 'DNA_ANTISENSE_STRAND'>: <NucleicAcidHeader.AS: 'Antisense Strand'>, <FastaHeader.RNA_SENSE: 'RNA_SENSE_STRAND'>: <NucleicAcidHeader.S: 'Sense Strand'>, <FastaHeader.RNA_ANTISENSE: 'RNA_ANTISENSE_STRAND'>: <NucleicAcidHeader.AS: 'Antisense Strand'>}
DEOXY_SUBTYPES = {<FastaHeader.DNA_SENSE: 'DNA_SENSE_STRAND'>, <FastaHeader.DNA_ANTISENSE: 'DNA_ANTISENSE_STRAND'>}
assemble() schrodinger.protein.helm._helm_parser.HelmModel
class schrodinger.livedesign.biologics.fasta.AntibodyAssembler(sequences: list[str], mappings: dict[schrodinger.livedesign.biologics.fasta.FastaHeader, int])

Bases: schrodinger.livedesign.biologics.fasta.PolymerAssembler

POLYMER_SUBTYPES = {<FastaHeader.AB_HC: 'LC'>, <FastaHeader.AB_LC: 'HC'>, <FastaHeader.AB_HC2: 'LC2'>, <FastaHeader.AB_LC1: 'HC1'>, <FastaHeader.AB_LC2: 'HC2'>, <FastaHeader.AB_HC1: 'LC1'>}
HEADER_BY_SUBTYPE = {<FastaHeader.AB_HC: 'LC'>: <Headers.HC: 'HC'>, <FastaHeader.AB_LC: 'HC'>: <Headers.LC: 'LC'>, <FastaHeader.AB_HC1: 'LC1'>: <Headers.HC1: 'HC1'>, <FastaHeader.AB_LC1: 'HC1'>: <Headers.LC1: 'LC1'>, <FastaHeader.AB_HC2: 'LC2'>: <Headers.HC2: 'HC2'>, <FastaHeader.AB_LC2: 'HC2'>: <Headers.LC2: 'LC2'>}
assemble() schrodinger.protein.helm._helm_parser.HelmModel
schrodinger.livedesign.biologics.fasta.get_fasta_helm_models(fasta_str: str, single_entity_mapping: Optional[dict[schrodinger.livedesign.biologics.fasta.FastaHeader, int]] = None) Iterator[schrodinger.protein.helm._helm_parser.HelmModel]

Yield all helm models generated by the parsing of the fasta data. If single-entity, this will include one entry for each sequence, as well as entries for any recognized combined constructs

Parameters
  • fasta_str – a string containing fasta data

  • single_entity_mapping – dict indicating how to create a single entity; if absent, the fasta will be parsed as multiple entities

Returns

an iterator of helm models, one for each identified entity

schrodinger.livedesign.biologics.fasta.parse_multi_entity_fasta(fasta_str: str) Iterator[schrodinger.protein.helm._helm_parser.HelmModel]

Parse the fasta string as a standard peptide fasta, with one HelmModel per sequence

Parameters

fasta_str – a string containing fasta data

Returns

an iterator of helm models, one for each sequence

schrodinger.livedesign.biologics.fasta.parse_single_entity_fasta(fasta_str: str, mappings: dict[schrodinger.livedesign.biologics.fasta.FastaHeader, int]) Iterator[schrodinger.protein.helm._helm_parser.HelmModel]

Parse the single-entity-formatted fasta string as an antibody, with one HelmModel for each single-chain or multi-chain entity identified

Parameters
  • fasta_str – fasta string

  • mappings – dict of entry index by FastaHeader

Returns

an iterator of helm models, one for each hierarchical entity in the construct

Raises

ValueError – if the mappings are invalid for a single-entity fasta

schrodinger.livedesign.biologics.fasta.validate_mappings(mappings: dict[schrodinger.livedesign.biologics.fasta.FastaHeader], num_sequences: int)

Validate that the given mappings are valid for a single-entity fasta

Parameters
  • mappings – a dictionary identifying which sequence index corresponds to which polymer subtype

  • num_sequences – the number of sequences in the fasta input

Raises

ValueError – if the mappings are empty or sequence indices do not match the fasta

schrodinger.livedesign.biologics.fasta.get_assembler_type(mappings: dict[schrodinger.livedesign.biologics.fasta.FastaHeader, int]) type[schrodinger.livedesign.biologics.fasta.PolymerAssembler]

Determine which type of assembler to use based on the group of subtypes in the mappings dict :param mappings: a dictionary identifying which sequence index corresponds to which polymer subtype :return: the assembler type that matches the given subtypes