Skip to content

Results#

The types returned by the spectrum analysis methods.

PeakInfo #

index class-attribute instance-attribute #

index: int = betterproto2.field(1, betterproto2.TYPE_INT32)

Index in data array

frequency_hz class-attribute instance-attribute #

frequency_hz: float = betterproto2.field(
    2, betterproto2.TYPE_DOUBLE
)

Frequency in Hz

frequency_ppm class-attribute instance-attribute #

frequency_ppm: float | None = betterproto2.field(
    3, betterproto2.TYPE_DOUBLE, optional=True
)

Frequency in PPM (if reference available)

height class-attribute instance-attribute #

height: float = betterproto2.field(
    4, betterproto2.TYPE_DOUBLE
)

Peak height

prominence class-attribute instance-attribute #

prominence: float = betterproto2.field(
    5, betterproto2.TYPE_DOUBLE
)

Peak prominence

area class-attribute instance-attribute #

area: float = betterproto2.field(
    6, betterproto2.TYPE_DOUBLE
)

Integrated area

normalized_area class-attribute instance-attribute #

normalized_area: float = betterproto2.field(
    7, betterproto2.TYPE_DOUBLE
)

Normalized area (relative to reference peak)

integration_start_hz class-attribute instance-attribute #

integration_start_hz: float = betterproto2.field(
    8, betterproto2.TYPE_DOUBLE
)

Integration bounds (start_hz, end_hz)

integration_end_hz class-attribute instance-attribute #

integration_end_hz: float = betterproto2.field(
    9, betterproto2.TYPE_DOUBLE
)

multiplet_pattern class-attribute instance-attribute #

multiplet_pattern: str = betterproto2.field(
    10, betterproto2.TYPE_STRING
)

Multiplet pattern ("s", "d", "t", "q", "m", etc.)

j_couplings class-attribute instance-attribute #

j_couplings: list[float] = betterproto2.field(
    11, betterproto2.TYPE_DOUBLE, repeated=True
)

J-coupling constants in Hz

multiplet_confidence class-attribute instance-attribute #

multiplet_confidence: float = betterproto2.field(
    12, betterproto2.TYPE_DOUBLE
)

Confidence of multiplet assignment (0.0-1.0)

group_id class-attribute instance-attribute #

group_id: int | None = betterproto2.field(
    13, betterproto2.TYPE_INT32, optional=True
)

Group ID for multiplet grouping (peaks in same group share this ID)

linewidth_hz class-attribute instance-attribute #

linewidth_hz: float = betterproto2.field(
    14, betterproto2.TYPE_FLOAT
)

Linewidth (FWHM) in Hz

linewidth_ppm class-attribute instance-attribute #

linewidth_ppm: float = betterproto2.field(
    15, betterproto2.TYPE_FLOAT
)

Linewidth (FWHM) in PPM

origin class-attribute instance-attribute #

origin: PeakOrigin = betterproto2.field(
    16,
    betterproto2.TYPE_ENUM,
    default_factory=lambda: PeakOrigin(0),
)

Origin: auto-detected or manually placed by user

MultipletAnalysis dataclass #

MultipletAnalysis(
    pattern: str,
    coupling_constants: list[float],
    peak_positions: list[float],
    peak_heights: list[float],
    confidence: float,
    center_frequency: float,
    integration_bounds: tuple[float, float],
    coupling_uncertainties: list[float] | None = None,
    position_uncertainties: list[float] | None = None,
    peak_widths: list[float] | None = None,
    bic: float | None = None,
    snr: float | None = None,
    r_squared: float | None = None,
    alternative_patterns: list[tuple[str, float]]
    | None = None,
)

Result of multiplet pattern analysis.

Attributes:

Name Type Description
pattern str

Pattern abbreviation ('s', 'd', 't', 'q', 'dd', 'dt', 'dq', 'm', etc.)

coupling_constants list[float]

J-coupling values in Hz

peak_positions list[float]

Individual peak frequencies (Hz)

peak_heights list[float]

Peak heights for ratio verification

confidence float

Pattern match confidence (0-1)

center_frequency float

Center of multiplet (Hz)

integration_bounds tuple[float, float]

Suggested integration range (start_hz, end_hz)

coupling_uncertainties list[float] | None

Uncertainties for J-couplings (Hz), from bootstrap

position_uncertainties list[float] | None

Uncertainties for peak positions (Hz)

peak_widths list[float] | None

Fitted peak widths (Hz)

bic float | None

Bayesian Information Criterion for the fit

snr float | None

Signal-to-noise ratio of the region

r_squared float | None

Coefficient of determination for the fit

alternative_patterns list[tuple[str, float]] | None

Other possible patterns with confidence scores

pattern instance-attribute #

pattern: str

coupling_constants instance-attribute #

coupling_constants: list[float]

peak_positions instance-attribute #

peak_positions: list[float]

peak_heights instance-attribute #

peak_heights: list[float]

confidence instance-attribute #

confidence: float

center_frequency instance-attribute #

center_frequency: float

integration_bounds instance-attribute #

integration_bounds: tuple[float, float]

coupling_uncertainties class-attribute instance-attribute #

coupling_uncertainties: list[float] | None = None

position_uncertainties class-attribute instance-attribute #

position_uncertainties: list[float] | None = None

peak_widths class-attribute instance-attribute #

peak_widths: list[float] | None = None

bic class-attribute instance-attribute #

bic: float | None = None

snr class-attribute instance-attribute #

snr: float | None = None

r_squared class-attribute instance-attribute #

r_squared: float | None = None

alternative_patterns class-attribute instance-attribute #

alternative_patterns: list[tuple[str, float]] | None = None

IntegrationResult dataclass #

IntegrationResult(
    peak: PeakInfo,
    area: float,
    normalized_area: float,
    bounds: tuple[float, float],
)

Result of peak integration.

peak instance-attribute #

peak: PeakInfo

area instance-attribute #

area: float

normalized_area instance-attribute #

normalized_area: float

bounds instance-attribute #

bounds: tuple[float, float]