Skip to content

Latest commit

 

History

History
34 lines (28 loc) · 1.89 KB

File metadata and controls

34 lines (28 loc) · 1.89 KB

API Overview

PyProBound distinguishes between experiment-specific and experiment-independent parameters. For example, the positional dependency of binding along the length of a sequence is experiment-specific, whereas the sequence parameters in a PSAM should be independent of a specific experimental design. The experiment-independent parameters are organized into a :doc:`LayerSpec <_autosummary/pyprobound.layers.layer.LayerSpec>` object, which is then wrapped into a :doc:`Layer <_autosummary/pyprobound.layers.layer.Layer>` object that adds the experiment-specific parameters and implements that layer's calculation in its forward function.

A single :doc:`Mode <_autosummary/pyprobound.mode.Mode>` can contain multiple Layer s, which are applied sequentially as in torch.nn.Sequential.

Each :doc:`Mode <_autosummary/pyprobound.mode.Mode>` is then joined with a round-specific log_activity parameter in a :doc:`Contribution <_autosummary/pyprobound.aggregate.Contribution>` object. Multiple Contribution s can then be combined in an :doc:`Aggregate <_autosummary/pyprobound.aggregate.Aggregate>` object, which is used for calculating Z_{i,r} as described in the User Guide.

An overview of the different classes and their attributes and types is shown below.

Additionally, most objects inherit from :doc:`Component <_autosummary/pyprobound.base.Component>`. This object contains functions for checkpointing parameters to a file, freezing and unfreezing parameters, implementing the sequential optimization procedure recursively, and caching the output of a component to avoid recomputation if it appears multiple times in the architecture of a model.

PyProBound class diagram