Package 'r4subprofile'

Title: Regulatory Authority Profiles for Submission Readiness
Description: Defines submission profiles per regulatory authority with authority-specific pillar weights, decision thresholds, indicator requirements, and risk configuration. Supports the U.S. Food and Drug Administration (FDA), European Medicines Agency (EMA), Pharmaceuticals and Medical Devices Agency (PMDA), Health Canada, Therapeutic Goods Administration (TGA), and Medicines and Healthcare products Regulatory Agency (MHRA). Integrates with 'r4subscore' and 'r4subrisk' configuration systems.
Authors: Pawan Rama Mali [aut, cre, cph] (ORCID: <https://orcid.org/0000-0001-7864-5819>)
Maintainer: Pawan Rama Mali <[email protected]>
License: MIT + file LICENSE
Version: 0.3.0
Built: 2026-10-12 08:33:10 UTC
Source: https://github.com/r4sub/r4subprofile

Help Index


Compare Submission Profiles Across Authorities

Description

Puts several regulatory authorities side by side so a sponsor filing in more than one region can see how the readiness bar differs: pillar weights, the score needed to be ready, the minimum traceability coverage, how many indicators are required, and the detectability default that feeds risk scoring. It answers "what changes if we also file with the EMA" without building and eyeballing each profile by hand.

Usage

compare_authorities(authorities = NULL, submission_types = NULL)

Arguments

authorities

Character vector of authority names, matched case-insensitively (for example c("fda", "ema", "pmda")). Defaults to every supported authority from list_authorities().

submission_types

How to pick a submission type per authority. NULL (default) uses each authority's first type. A single string uses that type for every authority (and errors if one does not offer it). A named vector (c(FDA = "NDA", EMA = "MAA")) selects per authority, falling back to the first type for any authority not named.

Value

A tibble with one row per authority and columns authority, full_name, country, submission_type, the four pillar weights (w_quality, w_trace, w_risk, w_usability), ready_min (lowest SCI in the ready band), minimum_coverage, n_required_indicators, default_detectability, and required_asset_types.

Examples

compare_authorities(c("FDA", "EMA", "PMDA"))

# A specific submission type where all three offer it is not guaranteed, so
# select per authority:
compare_authorities(
  c("FDA", "EMA"),
  submission_types = c(FDA = "NDA", EMA = "MAA")
)

List Supported Regulatory Authorities

Description

Returns a summary of all supported regulatory authorities with their full names, countries, and number of available submission types.

Usage

list_authorities()

Value

A tibble with columns: authority, full_name, country, n_submission_types.

Examples

list_authorities()

List Submission Types for an Authority

Description

Returns the valid submission types for a given regulatory authority.

Usage

list_submission_types(authority)

Arguments

authority

Character. A supported authority name.

Value

A character vector of valid submission types.

Examples

list_submission_types("FDA")
list_submission_types("EMA")

Get Required Indicators for a Profile

Description

Returns the list of indicator IDs that are mandatory for the given submission profile.

Usage

profile_required_indicators(profile)

Arguments

profile

A submission_profile object.

Value

A character vector of required indicator_id values.

Examples

prof <- submission_profile("FDA", "NDA")
profile_required_indicators(prof)

prof_ind <- submission_profile("FDA", "IND")
profile_required_indicators(prof_ind)

Extract Risk Configuration from a Profile

Description

Returns a list with structure compatible with r4subrisk::risk_config_default(). Can be passed directly to risk assessment functions.

Usage

profile_risk_config(profile)

Arguments

profile

A submission_profile object.

Value

A list of class "risk_config" with rpn_bands, evidence_severity_to_probability, evidence_severity_to_impact, and default_detectability.

Examples

prof <- submission_profile("FDA", "NDA")
cfg <- profile_risk_config(prof)
cfg$rpn_bands

Extract SCI Configuration from a Profile

Description

Returns a list with structure compatible with r4subscore::sci_config_default(). Can be passed directly to compute_pillar_scores() or compute_sci().

Usage

profile_sci_config(profile)

Arguments

profile

A submission_profile object.

Value

A list of class "sci_config" with pillar_weights and bands.

Examples

prof <- submission_profile("FDA", "NDA")
cfg <- profile_sci_config(prof)
cfg$pillar_weights
cfg$bands

Summarize a Submission Profile

Description

Prints a formatted summary of a regulatory submission profile including authority details, pillar weights, decision bands, and requirements.

Usage

profile_summary(profile)

Arguments

profile

A submission_profile object.

Value

The profile object, invisibly.

Examples

prof <- submission_profile("FDA", "NDA")
profile_summary(prof)

Select a Rule Pack

Description

Returns a rule pack by id (which encodes the authority and version, for example "fda-2026.1"). Each indicator in the pack carries a source field for the authoritative citation that motivates it.

Usage

rule_pack(id, sources = NULL)

## S3 method for class 'rule_pack'
print(x, ...)

Arguments

id

A pack id from rule_packs(), for example "fda-2026.1".

sources

Optional named character vector mapping indicator_id to a citation, used to fill the source field. Names not in the pack are ignored with a warning.

x

A rule_pack.

...

Ignored.

Details

The built-in packs ship with source set to NA: the citations are pending entry by someone with the regulatory references to hand, deliberately rather than filled with unverified section numbers. Supply them with the sources argument, or fill them from your own controlled reference list. This keeps the pack mechanism, the versioning, and the provenance usable now, with the citations added when they can be stated accurately.

Value

An object of class "rule_pack" with id, authority, version, effective_date, and an indicators tibble (indicator_id, source).

See Also

rule_packs(), rule_pack_provenance().

Examples

pack <- rule_pack("fda-2026.1")
pack
rule_pack_indicators(pack)

# Supply citations for a controlled reference list:
pack <- rule_pack("fda-2026.1",
  sources = c("Q-MISS-VAR" = "FDA Study Data Technical Conformance Guide"))

Indicators in a Rule Pack

Description

Indicators in a Rule Pack

Usage

rule_pack_indicators(pack)

Arguments

pack

A rule_pack from rule_pack().

Value

The pack's indicators tibble (indicator_id, source).

See Also

rule_pack().

Examples

rule_pack_indicators(rule_pack("ema-2026.1"))

Provenance of a Rule Pack

Description

Returns the identifying fields of a rule pack as a named character vector, to record on a scored result so the score can always be traced to the exact ruleset and version that produced it.

Usage

rule_pack_provenance(pack)

Arguments

pack

A rule_pack from rule_pack().

Value

A named character vector: rule_pack, rule_pack_version, effective_date.

See Also

rule_pack().

Examples

rule_pack_provenance(rule_pack("fda-2026.1"))

Available Rule Packs

Description

Lists the built-in rule packs. A rule pack is an identified, versioned set of the indicators an authority requires, so a submission can be scored against a named, dated ruleset and the result reproduced later.

Usage

rule_packs()

Value

A tibble with one row per pack: id, authority, version, effective_date, and n_indicators.

See Also

rule_pack().

Examples

rule_packs()

Create a Submission Profile

Description

Constructs a regulatory submission profile with authority-specific pillar weights, decision bands, required indicators, and risk configuration.

Usage

submission_profile(authority, submission_type, study_phase = NULL)

Arguments

authority

Character. Regulatory authority name (e.g., "FDA", "EMA"). See list_authorities() for all supported values.

submission_type

Character. Submission type for the authority (e.g., "NDA", "MAA"). See list_submission_types() for valid values.

study_phase

Character or NULL. Optional study phase (e.g., "Phase1", "Phase2", "Phase3", "Phase4"). Currently informational.

Value

A list of class "submission_profile" with elements: authority, full_name, country, submission_type, study_phase, pillar_weights, bands, required_indicators, required_asset_types, minimum_coverage, rpn_bands, default_detectability.

Examples

prof <- submission_profile("FDA", "NDA")
prof$pillar_weights
prof$required_indicators

prof_ema <- submission_profile("EMA", "MAA", study_phase = "Phase3")
prof_ema$bands

Validate Evidence Against a Submission Profile

Description

Checks whether an evidence table meets the requirements specified by a regulatory submission profile: required indicators present, required asset types covered, and minimum indicator coverage met.

Usage

validate_against_profile(evidence, profile)

Arguments

evidence

A validated evidence data.frame conforming to the r4subcore evidence schema.

profile

A submission_profile object.

Value

A list of class "profile_validation" with elements:

  • is_compliant: logical; TRUE if all requirements are met

  • missing_indicators: character vector of missing required indicator IDs

  • missing_asset_types: character vector of missing required asset types

  • coverage: numeric; fraction of required indicators present (0-1)

  • coverage_met: logical; whether coverage meets the minimum threshold

  • details: tibble with per-requirement status

Examples

## Not run: 
prof <- submission_profile("FDA", "NDA")
result <- validate_against_profile(evidence, prof)
result$is_compliant
result$missing_indicators

## End(Not run)