Therapeutics

Base strand and therapeutic models, together with the currently implemented antisense modalities and designs.

class ASOkai.Antisense.Oligonucleotide(sequence, *, chemistry=None, **kwargs)[source]

Bases: Serializable

A single oligonucleotide strand stored 5’ to 3’ using ACGT.

Parameters:
  • sequence (Seq)

  • chemistry (Chemistry | None)

chemistry: Chemistry | None
property sequence: Seq

Return the strand sequence in the 5’ to 3’ direction.

File contract

This is the JSON record ASOkai stores for Oligonucleotide. A JSON file has a root value and an objects table. Objects used once are inline; repeatedly used objects move to the table and are linked by references. Nested records follow their own class contracts.

The __class__ and __module__ fields identify the object type. ASOkai adds them when writing JSON; keep the fixed values shown below when supplying an input file yourself.

Example file

{
    "root": {
        "__class__": "Oligonucleotide",
        "__module__": "ASOkai.Antisense._oligonucleotide",
        "sequence": "A",
        "chemistry": null
    },
    "objects": {}
}

Fields

JSON field

Details

__class__

Accepted value: "Oligonucleotide"

Requirement: Required; keep unchanged in input files

Meaning: Identifies this JSON object as Oligonucleotide. ASOkai writes it automatically.

__module__

Accepted value: "ASOkai.Antisense._oligonucleotide"

Requirement: Required; keep unchanged in input files

Meaning: Tells ASOkai where Oligonucleotide is defined. ASOkai writes it automatically.

sequence

Accepted value: string

Requirement: Required

Example: "A"

Meaning: Nucleotide sequence stored in the 5' to 3' direction.

chemistry

Accepted value: a Chemistry object or null

Requirement: Required

Example: null

Meaning: Optional chemistry attached to this strand.

class ASOkai.Antisense.AntisenseTherapeutic(mechanism, *, id=None, **kwargs)[source]

Bases: Serializable, ABC

Base class for therapeutics that act through an antisense strand.

sequence means the antisense-strand sequence in the 5’ to 3’ direction. For a multi-stranded therapeutic, it does not include the sense or passenger strand. Subclasses define the design-derived ID; a supplied stored ID must match it.

Parameters:
mechanism: MechanismOfAction
id: str
abstract property antisense_strand: Oligonucleotide

Return the oligonucleotide strand responsible for target binding.

property sequence: Seq

Return the antisense-strand sequence in the 5’ to 3’ direction.

class ASOkai.Antisense.ASO(sequence, mechanism, *, chemistry=None, id=None, **kwargs)[source]

Bases: Oligonucleotide, AntisenseTherapeutic

A single-stranded antisense therapeutic stored 5’ to 3’.

Parameters:
property antisense_strand: Oligonucleotide

Return this ASO, which is itself the antisense strand.

File contract

This is the JSON record ASOkai stores for ASO. A JSON file has a root value and an objects table. Objects used once are inline; repeatedly used objects move to the table and are linked by references. Nested records follow their own class contracts.

The __class__ and __module__ fields identify the object type. ASOkai adds them when writing JSON; keep the fixed values shown below when supplying an input file yourself.

Example file

{
    "root": {
        "__class__": "ASO",
        "__module__": "ASOkai.Antisense._aso",
        "sequence": "A",
        "chemistry": null,
        "mechanism": {
            "__class__": "MechanismOfAction",
            "__module__": "ASOkai.Biochemistry._mechanism_of_action",
            "id": "example"
        },
        "id": "aso:mexample-s1x0"
    },
    "objects": {}
}

Fields

JSON field

Details

__class__

Accepted value: "ASO"

Requirement: Required; keep unchanged in input files

Meaning: Identifies this JSON object as ASO. ASOkai writes it automatically.

__module__

Accepted value: "ASOkai.Antisense._aso"

Requirement: Required; keep unchanged in input files

Meaning: Tells ASOkai where ASO is defined. ASOkai writes it automatically.

id

Accepted value: string

Requirement: Required

Meaning: Optional stored ID, checked against the design-derived ID.

mechanism

Accepted value: a MechanismOfAction object

Requirement: Required

Meaning: Mechanism through which the ASO acts.

sequence

Accepted value: string

Requirement: Required

Example: "A"

Meaning: Antisense-strand sequence in the 5' to 3' direction.

chemistry

Accepted value: a Chemistry object or null

Requirement: Required

Example: null

Meaning: Optional chemistry of this strand.

class ASOkai.Antisense.Gapmer(sequence, mechanism, left_wing_length, gap_length, right_wing_length, *, chemistry=None, id=None, **kwargs)[source]

Bases: ASO

An ASO with a wing-gap-wing design.

Parameters:
  • sequence (Seq)

  • mechanism (MechanismOfAction)

  • left_wing_length (int)

  • gap_length (int)

  • right_wing_length (int)

  • chemistry (Chemistry | None)

  • id (str | None)

left_wing_length: int
gap_length: int
right_wing_length: int
property lengths: tuple[int, int, int]

Return the left-wing, gap, and right-wing lengths.

property layout: str

Return the compact wing-gap-wing representation.

File contract

This is the JSON record ASOkai stores for Gapmer. A JSON file has a root value and an objects table. Objects used once are inline; repeatedly used objects move to the table and are linked by references. Nested records follow their own class contracts.

The __class__ and __module__ fields identify the object type. ASOkai adds them when writing JSON; keep the fixed values shown below when supplying an input file yourself.

Fields

JSON field

Details

__class__

Accepted value: "Gapmer"

Requirement: Required; keep unchanged in input files

Meaning: Identifies this JSON object as Gapmer. ASOkai writes it automatically.

__module__

Accepted value: "ASOkai.Antisense._gapmer"

Requirement: Required; keep unchanged in input files

Meaning: Tells ASOkai where Gapmer is defined. ASOkai writes it automatically.

id

Accepted value: string

Requirement: Required

Meaning: Optional stored ID, checked against the design-derived ID.

mechanism

Accepted value: a MechanismOfAction object

Requirement: Required

Meaning: Mechanism through which the gapmer acts.

sequence

Accepted value: string

Requirement: Required

Example: "A"

Meaning: Antisense-strand sequence in the 5' to 3' direction.

chemistry

Accepted value: a Chemistry object or null

Requirement: Required

Example: null

Meaning: Optional chemistry of this strand.

left_wing_length

Accepted value: integer

Requirement: Required

Meaning: Number of nucleotides in the left wing.

gap_length

Accepted value: integer

Requirement: Required

Meaning: Number of nucleotides in the central gap.

right_wing_length

Accepted value: integer

Requirement: Required

Meaning: Number of nucleotides in the right wing.

class ASOkai.Antisense.siRNA(antisense_strand, sense_strand, mechanism, binding, *, id=None, **kwargs)[source]

Bases: AntisenseTherapeutic

An antiparallel duplex whose two strands are each stored 5’ to 3’.

Parameters:
binding: Binding
property antisense_strand: Oligonucleotide

Return the antisense, or guide, strand in the 5’ to 3’ direction.

property sense_strand: Oligonucleotide

Return the sense, or passenger, strand in the 5’ to 3’ direction.

File contract

This is the JSON record ASOkai stores for siRNA. A JSON file has a root value and an objects table. Objects used once are inline; repeatedly used objects move to the table and are linked by references. Nested records follow their own class contracts.

The __class__ and __module__ fields identify the object type. ASOkai adds them when writing JSON; keep the fixed values shown below when supplying an input file yourself.

Example file

{
    "root": {
        "__class__": "siRNA",
        "__module__": "ASOkai.Antisense._sirna",
        "antisense_strand": {
            "__class__": "Oligonucleotide",
            "__module__": "ASOkai.Antisense._oligonucleotide",
            "sequence": "A",
            "chemistry": null
        },
        "sense_strand": {
            "__class__": "Oligonucleotide",
            "__module__": "ASOkai.Antisense._oligonucleotide",
            "sequence": "A",
            "chemistry": null
        },
        "binding": {
            "__class__": "Binding",
            "__module__": "ASOkai.Antisense._binding",
            "first_sequence": "A",
            "second_sequence": "A",
            "structure": "(&)",
            "first_id": null,
            "second_id": null
        },
        "mechanism": {
            "__class__": "MechanismOfAction",
            "__module__": "ASOkai.Biochemistry._mechanism_of_action",
            "id": "example"
        },
        "id": "sirna:mexample-as1x0-ps1x0"
    },
    "objects": {}
}

Fields

JSON field

Details

__class__

Accepted value: "siRNA"

Requirement: Required; keep unchanged in input files

Meaning: Identifies this JSON object as siRNA. ASOkai writes it automatically.

__module__

Accepted value: "ASOkai.Antisense._sirna"

Requirement: Required; keep unchanged in input files

Meaning: Tells ASOkai where siRNA is defined. ASOkai writes it automatically.

id

Accepted value: string

Requirement: Required

Meaning: Optional stored ID, checked against the design-derived ID.

mechanism

Accepted value: a MechanismOfAction object

Requirement: Required

Meaning: Mechanism through which the siRNA acts.

antisense_strand

Accepted value: a Oligonucleotide object

Requirement: Required

Meaning: Guide strand stored in the 5' to 3' direction.

sense_strand

Accepted value: a Oligonucleotide object

Requirement: Required

Meaning: Passenger strand stored in the 5' to 3' direction.

binding

Accepted value: a Binding object

Requirement: Required

Meaning: Explicit guide-passenger alignment.