@inflexa-ai/harness 0.35.8 → 0.36.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/auth/types.d.ts +5 -14
- package/dist/auth/types.js +3 -10
- package/dist/billing/usage-recorder.d.ts +1 -1
- package/dist/contracts/analogy-report.d.ts +1 -1
- package/dist/contracts/analogy-report.js +1 -1
- package/dist/contracts/chat-parts.d.ts +2 -3
- package/dist/contracts/index.d.ts +0 -4
- package/dist/contracts/index.js +0 -2
- package/dist/index.d.ts +0 -7
- package/dist/index.js +0 -21
- package/dist/lib/metrics.d.ts +1 -1
- package/dist/lib/otel-spans.d.ts +0 -2
- package/dist/lib/otel-spans.js +0 -2
- package/dist/loop/genai-spans.d.ts +14 -0
- package/dist/loop/genai-spans.js +35 -0
- package/dist/loop/run-agent.d.ts +1 -1
- package/dist/loop/run-agent.js +37 -4
- package/dist/runtime/assemble.d.ts +0 -3
- package/dist/runtime/assemble.js +0 -3
- package/dist/state/index.d.ts +0 -2
- package/dist/state/index.js +0 -1
- package/dist/state/init.js +1 -60
- package/dist/state/purge-analysis.d.ts +1 -2
- package/dist/state/purge-analysis.js +1 -2
- package/dist/tasks/regulatory-corpus-boot-refresh.js +1 -1
- package/dist/tools/bio/gene-preclinical-profile.d.ts +1 -3
- package/dist/tools/bio/gene-preclinical-profile.js +1 -3
- package/dist/tools/lib/chembl-client.d.ts +1 -4
- package/dist/tools/lib/chembl-client.js +1 -4
- package/dist/tools/lib/clinical-benchmarks-client.d.ts +1 -1
- package/dist/tools/lib/clinical-benchmarks-client.js +1 -1
- package/dist/tools/lib/clinical-trials-client.d.ts +0 -3
- package/dist/tools/lib/clinical-trials-client.js +0 -3
- package/dist/tools/lib/identifier-resolver.d.ts +5 -7
- package/dist/tools/lib/identifier-resolver.js +5 -7
- package/dist/tools/lib/iuphar-client.d.ts +1 -3
- package/dist/tools/lib/iuphar-client.js +1 -3
- package/dist/tools/lib/opentargets-client.d.ts +1 -1
- package/dist/tools/lib/opentargets-client.js +1 -1
- package/dist/tools/lib/protein-family-normalize.d.ts +5 -7
- package/dist/tools/lib/protein-family-normalize.js +5 -7
- package/dist/tools/lib/uniprot-client.d.ts +0 -7
- package/dist/tools/lib/uniprot-client.js +2 -9
- package/package.json +1 -1
- package/dist/contracts/target-assessment-row.d.ts +0 -85
- package/dist/contracts/target-assessment-row.js +0 -37
- package/dist/contracts/target-dossier.d.ts +0 -12423
- package/dist/contracts/target-dossier.js +0 -1282
- package/dist/prompts/target-assessment/briefs/executive-recommendation.d.ts +0 -1
- package/dist/prompts/target-assessment/briefs/executive-recommendation.js +0 -85
- package/dist/prompts/target-assessment/briefs/index.d.ts +0 -4
- package/dist/prompts/target-assessment/briefs/index.js +0 -4
- package/dist/prompts/target-assessment/briefs/liability-bullets.d.ts +0 -1
- package/dist/prompts/target-assessment/briefs/liability-bullets.js +0 -114
- package/dist/prompts/target-assessment/briefs/target-organ-liabilities.d.ts +0 -1
- package/dist/prompts/target-assessment/briefs/target-organ-liabilities.js +0 -37
- package/dist/prompts/target-assessment/briefs/translational-commentary.d.ts +0 -1
- package/dist/prompts/target-assessment/briefs/translational-commentary.js +0 -23
- package/dist/prompts/target-assessment/drugs-in-class.d.ts +0 -1
- package/dist/prompts/target-assessment/drugs-in-class.js +0 -29
- package/dist/prompts/target-assessment/investigation/adversarial-critique.d.ts +0 -1
- package/dist/prompts/target-assessment/investigation/adversarial-critique.js +0 -67
- package/dist/prompts/target-assessment/investigation/claim-reverification.d.ts +0 -1
- package/dist/prompts/target-assessment/investigation/claim-reverification.js +0 -49
- package/dist/prompts/target-assessment/investigation/index.d.ts +0 -3
- package/dist/prompts/target-assessment/investigation/index.js +0 -3
- package/dist/prompts/target-assessment/investigation/mechanism-proposal.d.ts +0 -1
- package/dist/prompts/target-assessment/investigation/mechanism-proposal.js +0 -49
- package/dist/prompts/target-assessment/modulator-triage.d.ts +0 -1
- package/dist/prompts/target-assessment/modulator-triage.js +0 -31
- package/dist/prompts/target-assessment/off-target-annotator.d.ts +0 -1
- package/dist/prompts/target-assessment/off-target-annotator.js +0 -28
- package/dist/prompts/target-assessment/tox-voice/core.d.ts +0 -1
- package/dist/prompts/target-assessment/tox-voice/core.js +0 -74
- package/dist/prompts/target-assessment/tox-voice/critique.d.ts +0 -7
- package/dist/prompts/target-assessment/tox-voice/critique.js +0 -109
- package/dist/prompts/target-assessment/tox-voice/exemplars.d.ts +0 -8
- package/dist/prompts/target-assessment/tox-voice/exemplars.js +0 -24
- package/dist/prompts/target-assessment/tox-voice/index.d.ts +0 -4
- package/dist/prompts/target-assessment/tox-voice/index.js +0 -4
- package/dist/prompts/target-assessment/tox-voice/vocabulary.d.ts +0 -18
- package/dist/prompts/target-assessment/tox-voice/vocabulary.js +0 -61
- package/dist/state/target-assessments.d.ts +0 -68
- package/dist/state/target-assessments.js +0 -222
- package/dist/workflows/execute-target-assessment.d.ts +0 -118
- package/dist/workflows/execute-target-assessment.js +0 -631
- package/dist/workflows/target-assessment/assemblers/index.d.ts +0 -5
- package/dist/workflows/target-assessment/assemblers/index.js +0 -4
- package/dist/workflows/target-assessment/assemblers/literature.d.ts +0 -281
- package/dist/workflows/target-assessment/assemblers/literature.js +0 -971
- package/dist/workflows/target-assessment/assemblers/orchestrator.d.ts +0 -118
- package/dist/workflows/target-assessment/assemblers/orchestrator.js +0 -945
- package/dist/workflows/target-assessment/assemblers/safety.d.ts +0 -374
- package/dist/workflows/target-assessment/assemblers/safety.js +0 -1068
- package/dist/workflows/target-assessment/assemblers/trials.d.ts +0 -30
- package/dist/workflows/target-assessment/assemblers/trials.js +0 -75
- package/dist/workflows/target-assessment/collectors/index.d.ts +0 -114
- package/dist/workflows/target-assessment/collectors/index.js +0 -538
- package/dist/workflows/target-assessment/coverage.d.ts +0 -97
- package/dist/workflows/target-assessment/coverage.js +0 -86
- package/dist/workflows/target-assessment/decisions/index.d.ts +0 -86
- package/dist/workflows/target-assessment/decisions/index.js +0 -127
- package/dist/workflows/target-assessment/fanout/index.d.ts +0 -32
- package/dist/workflows/target-assessment/fanout/index.js +0 -156
- package/dist/workflows/target-assessment/investigation/index.d.ts +0 -97
- package/dist/workflows/target-assessment/investigation/index.js +0 -419
- package/dist/workflows/target-assessment/lib/approval-precedents.d.ts +0 -73
- package/dist/workflows/target-assessment/lib/approval-precedents.js +0 -185
- package/dist/workflows/target-assessment/lib/citation-validator.d.ts +0 -46
- package/dist/workflows/target-assessment/lib/citation-validator.js +0 -316
- package/dist/workflows/target-assessment/lib/clinical-consequence-annotator.d.ts +0 -65
- package/dist/workflows/target-assessment/lib/clinical-consequence-annotator.js +0 -174
- package/dist/workflows/target-assessment/lib/clinical-evidence-attribution.d.ts +0 -44
- package/dist/workflows/target-assessment/lib/clinical-evidence-attribution.js +0 -152
- package/dist/workflows/target-assessment/lib/compute-derived.d.ts +0 -20
- package/dist/workflows/target-assessment/lib/compute-derived.js +0 -261
- package/dist/workflows/target-assessment/lib/compute-selectivity.d.ts +0 -15
- package/dist/workflows/target-assessment/lib/compute-selectivity.js +0 -18
- package/dist/workflows/target-assessment/lib/dedup-modulators.d.ts +0 -37
- package/dist/workflows/target-assessment/lib/dedup-modulators.js +0 -157
- package/dist/workflows/target-assessment/lib/evidence-conflict-detector.d.ts +0 -17
- package/dist/workflows/target-assessment/lib/evidence-conflict-detector.js +0 -100
- package/dist/workflows/target-assessment/lib/expression-constants.d.ts +0 -21
- package/dist/workflows/target-assessment/lib/expression-constants.js +0 -21
- package/dist/workflows/target-assessment/lib/family-complex-supplement.d.ts +0 -20
- package/dist/workflows/target-assessment/lib/family-complex-supplement.js +0 -36
- package/dist/workflows/target-assessment/lib/fda-label-safety.d.ts +0 -72
- package/dist/workflows/target-assessment/lib/fda-label-safety.js +0 -166
- package/dist/workflows/target-assessment/lib/heterodimer-filter.d.ts +0 -30
- package/dist/workflows/target-assessment/lib/heterodimer-filter.js +0 -44
- package/dist/workflows/target-assessment/lib/hpo-organ-map.d.ts +0 -34
- package/dist/workflows/target-assessment/lib/hpo-organ-map.js +0 -63
- package/dist/workflows/target-assessment/lib/impc-organ-map.d.ts +0 -19
- package/dist/workflows/target-assessment/lib/impc-organ-map.js +0 -39
- package/dist/workflows/target-assessment/lib/intended-polypharm-filter.d.ts +0 -4
- package/dist/workflows/target-assessment/lib/intended-polypharm-filter.js +0 -24
- package/dist/workflows/target-assessment/lib/llm-step.d.ts +0 -80
- package/dist/workflows/target-assessment/lib/llm-step.js +0 -101
- package/dist/workflows/target-assessment/lib/meddra-organ-map.d.ts +0 -40
- package/dist/workflows/target-assessment/lib/meddra-organ-map.js +0 -138
- package/dist/workflows/target-assessment/lib/recommendation-quality-gates.d.ts +0 -17
- package/dist/workflows/target-assessment/lib/recommendation-quality-gates.js +0 -99
- package/dist/workflows/target-assessment/lib/recommendation-sanitizer.d.ts +0 -2
- package/dist/workflows/target-assessment/lib/recommendation-sanitizer.js +0 -51
- package/dist/workflows/target-assessment/lib/regulatory-actions.d.ts +0 -25
- package/dist/workflows/target-assessment/lib/regulatory-actions.js +0 -176
- package/dist/workflows/target-assessment/lib/safety-corroboration.d.ts +0 -44
- package/dist/workflows/target-assessment/lib/safety-corroboration.js +0 -273
- package/dist/workflows/target-assessment/lib/structured-llm.d.ts +0 -61
- package/dist/workflows/target-assessment/lib/structured-llm.js +0 -102
- package/dist/workflows/target-assessment/lib/target-identity-filter.d.ts +0 -59
- package/dist/workflows/target-assessment/lib/target-identity-filter.js +0 -95
- package/dist/workflows/target-assessment/lib/therapeutic-programs.d.ts +0 -20
- package/dist/workflows/target-assessment/lib/therapeutic-programs.js +0 -68
- package/dist/workflows/target-assessment/metrics.d.ts +0 -16
- package/dist/workflows/target-assessment/metrics.js +0 -30
- package/dist/workflows/target-assessment/phase4-assemble.d.ts +0 -3182
- package/dist/workflows/target-assessment/phase4-assemble.js +0 -39
- package/dist/workflows/target-assessment/phase5-persist.d.ts +0 -59
- package/dist/workflows/target-assessment/phase5-persist.js +0 -349
- package/dist/workflows/target-assessment/progress-stream.d.ts +0 -75
- package/dist/workflows/target-assessment/progress-stream.js +0 -110
- package/dist/workflows/target-assessment/progress.d.ts +0 -39
- package/dist/workflows/target-assessment/progress.js +0 -77
- package/dist/workflows/target-assessment/schemas.d.ts +0 -970
- package/dist/workflows/target-assessment/schemas.js +0 -318
- package/dist/workflows/target-assessment/steps/collectors/pathways.d.ts +0 -15
- package/dist/workflows/target-assessment/steps/collectors/pathways.js +0 -58
- package/dist/workflows/target-assessment/steps/fanout/aes-for-one-class-drug-step.d.ts +0 -34
- package/dist/workflows/target-assessment/steps/fanout/aes-for-one-class-drug-step.js +0 -31
- package/dist/workflows/target-assessment/steps/fanout/aes-for-one-trial-step.d.ts +0 -57
- package/dist/workflows/target-assessment/steps/fanout/aes-for-one-trial-step.js +0 -54
- package/dist/workflows/target-assessment/steps/fanout/faers-for-one-modulator-step.d.ts +0 -35
- package/dist/workflows/target-assessment/steps/fanout/faers-for-one-modulator-step.js +0 -32
- package/dist/workflows/target-assessment/steps/fanout/index.d.ts +0 -14
- package/dist/workflows/target-assessment/steps/fanout/index.js +0 -10
- package/dist/workflows/target-assessment/steps/fanout/polypharm-for-one-modulator-step.d.ts +0 -29
- package/dist/workflows/target-assessment/steps/fanout/polypharm-for-one-modulator-step.js +0 -29
- package/dist/workflows/target-assessment/steps/phase2-aggregate.d.ts +0 -657
- package/dist/workflows/target-assessment/steps/phase2-aggregate.js +0 -34
- package/dist/workflows/target-assessment/steps/phase3-aggregate.d.ts +0 -806
- package/dist/workflows/target-assessment/steps/phase3-aggregate.js +0 -16
- package/dist/workflows/target-assessment/steps/synthesis/diagnostics.d.ts +0 -28
- package/dist/workflows/target-assessment/steps/synthesis/diagnostics.js +0 -27
- package/dist/workflows/target-assessment/sub-workflows/index.d.ts +0 -15
- package/dist/workflows/target-assessment/sub-workflows/index.js +0 -11
- package/dist/workflows/target-assessment/sub-workflows/per-class-drug-aes.d.ts +0 -41
- package/dist/workflows/target-assessment/sub-workflows/per-class-drug-aes.js +0 -12
- package/dist/workflows/target-assessment/sub-workflows/per-modulator-faers.d.ts +0 -41
- package/dist/workflows/target-assessment/sub-workflows/per-modulator-faers.js +0 -12
- package/dist/workflows/target-assessment/sub-workflows/per-modulator-polypharm.d.ts +0 -37
- package/dist/workflows/target-assessment/sub-workflows/per-modulator-polypharm.js +0 -12
- package/dist/workflows/target-assessment/sub-workflows/per-trial-aes.d.ts +0 -66
- package/dist/workflows/target-assessment/sub-workflows/per-trial-aes.js +0 -12
- package/dist/workflows/target-assessment/synthesis/index.d.ts +0 -607
- package/dist/workflows/target-assessment/synthesis/index.js +0 -354
- package/dist/workflows/target-assessment/synthesis-probes.d.ts +0 -56
- package/dist/workflows/target-assessment/synthesis-probes.js +0 -320
|
@@ -1,374 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Phase-4 deterministic assemblers — safety sections.
|
|
3
|
-
*
|
|
4
|
-
* Each assembler maps Phase-1 / Phase-2 / Phase-3 outputs onto the
|
|
5
|
-
* corresponding dossier section schema. Coverage is honored end-to-end:
|
|
6
|
-
* when an upstream came back `queried_no_data` or the derived row set is
|
|
7
|
-
* empty, the section is marked `queried_no_data` / `not_loaded` rather
|
|
8
|
-
* than fabricated. Aggregate rows preserve their contributing evidence
|
|
9
|
-
* under `evidence: [...]` arrays.
|
|
10
|
-
*/
|
|
11
|
-
import type { ClaimSupport, EvidenceItem, RegulatoryActionRow, RegulatoryOrganSignals } from "@inflexa-ai/harness/contracts/target-dossier.js";
|
|
12
|
-
import { type OrganSignalProjection } from "../lib/fda-label-safety.js";
|
|
13
|
-
import { type OrganSystem } from "../../../contracts/organ-system.js";
|
|
14
|
-
import type { Phase2Bundle } from "../steps/phase2-aggregate.js";
|
|
15
|
-
import type { Phase3Bundle } from "../steps/phase3-aggregate.js";
|
|
16
|
-
import type { FamilyComplexesBundle } from "../schemas.js";
|
|
17
|
-
import { HIGH_EXPRESSION_TPM_THRESHOLD } from "../lib/expression-constants.js";
|
|
18
|
-
export { HIGH_EXPRESSION_TPM_THRESHOLD };
|
|
19
|
-
import type { ChemblModulator } from "../../../tools/lib/chembl-client.js";
|
|
20
|
-
export declare const SAFETY_RELEVANT_ORGANS: Set<string>;
|
|
21
|
-
/**
|
|
22
|
-
* Resolve a tissue (and its atlas organ label, when present) onto the
|
|
23
|
-
* canonical organ vocabulary. Returns null when the anatomy has no organ
|
|
24
|
-
* system to belong to — the caller drops the row rather than filing it
|
|
25
|
-
* under a neighbouring organ.
|
|
26
|
-
*/
|
|
27
|
-
export declare function resolveTissueOrganSystem(tissue: string, organ?: string | null): OrganSystem | null;
|
|
28
|
-
export declare function isSafetyRelevant(tissue: string, organ?: string | null): boolean;
|
|
29
|
-
export declare const REPRODUCTIVE_TOX_TISSUES: Set<string>;
|
|
30
|
-
export declare const REPRODUCTIVE_TOX_TPM_FLOOR = 20;
|
|
31
|
-
export declare const DEFAULT_TPM_FLOOR = 100;
|
|
32
|
-
export declare function meetsTpmFloor(tissue: string, value: number): boolean;
|
|
33
|
-
export declare function assembleLiabilitySummary(phase2: Phase2Bundle, context: {
|
|
34
|
-
offTargetRows: OffTargetPanelRows | null;
|
|
35
|
-
preferredModality: string | null;
|
|
36
|
-
}): {
|
|
37
|
-
liability_bullets: never[];
|
|
38
|
-
modality_recommendation: string | null;
|
|
39
|
-
same_class_drug_count: number;
|
|
40
|
-
inferred_therapeutic_area: string | null;
|
|
41
|
-
no_liabilities_disclosure: string;
|
|
42
|
-
};
|
|
43
|
-
type FanoutResults = Phase3Bundle["fanout"];
|
|
44
|
-
export declare function aggregateFaersAcrossModulators(fanout: FanoutResults | undefined): {
|
|
45
|
-
total_reports: number;
|
|
46
|
-
seriousness: {
|
|
47
|
-
coverage: "available";
|
|
48
|
-
total_reports: number;
|
|
49
|
-
by_seriousness: {
|
|
50
|
-
death: number;
|
|
51
|
-
life_threatening: number;
|
|
52
|
-
hospitalization: number;
|
|
53
|
-
disabling: number;
|
|
54
|
-
other_serious: number;
|
|
55
|
-
congenital_anomaly: number;
|
|
56
|
-
};
|
|
57
|
-
fatal_report_count: number;
|
|
58
|
-
} | {
|
|
59
|
-
coverage: "queried_no_data";
|
|
60
|
-
total_reports: number;
|
|
61
|
-
by_seriousness?: undefined;
|
|
62
|
-
fatal_report_count?: undefined;
|
|
63
|
-
};
|
|
64
|
-
top_signals: {
|
|
65
|
-
meddra_term: string;
|
|
66
|
-
organ: "hematologic" | "metabolic" | "immune" | "hepatic" | "musculoskeletal" | "cns" | "renal" | "reproductive" | "respiratory" | "cardiac" | "vascular" | "pns" | "gi" | "pancreas" | "endocrine_thyroid" | "dermatologic" | "ocular" | "oncology" | undefined;
|
|
67
|
-
report_count: number;
|
|
68
|
-
}[];
|
|
69
|
-
per_modulator: {
|
|
70
|
-
modulator: string;
|
|
71
|
-
modulator_id: string | null;
|
|
72
|
-
report_count: number;
|
|
73
|
-
coverage: "available" | "queried_no_data" | "not_loaded";
|
|
74
|
-
}[];
|
|
75
|
-
} | null;
|
|
76
|
-
export declare function aggregateTrialAes(fanout: FanoutResults | undefined): {
|
|
77
|
-
serious: {
|
|
78
|
-
term: string;
|
|
79
|
-
incidence_pct: number;
|
|
80
|
-
organ?: string;
|
|
81
|
-
nct_ids: string[];
|
|
82
|
-
}[];
|
|
83
|
-
non_serious: {
|
|
84
|
-
term: string;
|
|
85
|
-
incidence_pct: number;
|
|
86
|
-
organ?: string;
|
|
87
|
-
nct_ids: string[];
|
|
88
|
-
}[];
|
|
89
|
-
non_serious_floor_pct: number;
|
|
90
|
-
dropped_uninformative_count: number;
|
|
91
|
-
coverage_qualifier: {
|
|
92
|
-
trials_queried: number;
|
|
93
|
-
trials_with_ae_data: number;
|
|
94
|
-
serious_floor_applied: number;
|
|
95
|
-
non_serious_floor_pct_applied: number;
|
|
96
|
-
};
|
|
97
|
-
} | null;
|
|
98
|
-
/** Fold below this threshold → selectivity window is insufficient. */
|
|
99
|
-
export declare const SELECTIVITY_FOLD_THRESHOLD = 30;
|
|
100
|
-
export type RawOffTargetRow = {
|
|
101
|
-
off_target_id?: string | null;
|
|
102
|
-
off_target_name?: string | null;
|
|
103
|
-
target_chembl_id?: string | null;
|
|
104
|
-
target_type?: string | null;
|
|
105
|
-
accession?: string | null;
|
|
106
|
-
pchembl: number;
|
|
107
|
-
selectivity: {
|
|
108
|
-
fold: number;
|
|
109
|
-
log_units: number;
|
|
110
|
-
};
|
|
111
|
-
selectivity_window_below_threshold?: boolean;
|
|
112
|
-
evidence?: EvidenceItem[];
|
|
113
|
-
organ_system?: OrganSystem | null;
|
|
114
|
-
target_class?: string | undefined;
|
|
115
|
-
is_safety_panel_target?: boolean;
|
|
116
|
-
clinical_consequence?: string | null;
|
|
117
|
-
metadata?: {
|
|
118
|
-
merged_chembl_ids?: string[];
|
|
119
|
-
};
|
|
120
|
-
};
|
|
121
|
-
export type CleanOffTargetRow = Omit<RawOffTargetRow, "target_chembl_id" | "target_type" | "accession" | "off_target_id" | "organ_system" | "evidence"> & {
|
|
122
|
-
off_target_id: string | null;
|
|
123
|
-
off_target_name: string;
|
|
124
|
-
organ_system: OrganSystem | null;
|
|
125
|
-
evidence: EvidenceItem[];
|
|
126
|
-
selectivity_window_below_threshold: boolean;
|
|
127
|
-
clinical_consequence: string | null;
|
|
128
|
-
is_safety_panel_target: boolean;
|
|
129
|
-
metadata: {
|
|
130
|
-
merged_chembl_ids: string[];
|
|
131
|
-
};
|
|
132
|
-
};
|
|
133
|
-
/**
|
|
134
|
-
* Off-target row shape after relationship classification. Used by the
|
|
135
|
-
* organ-rollup builder, evidence tally, and liability-summary signal count —
|
|
136
|
-
* the typed members all rely on `relationship`, `organ_system`, `pchembl`,
|
|
137
|
-
* `support`, and `is_safety_panel_target` only.
|
|
138
|
-
*/
|
|
139
|
-
export type OffTargetPanelRows = Array<{
|
|
140
|
-
off_target_id: string | null;
|
|
141
|
-
off_target_name: string;
|
|
142
|
-
pchembl: number;
|
|
143
|
-
is_safety_panel_target: boolean;
|
|
144
|
-
organ_system: OrganSystem | null;
|
|
145
|
-
support: ClaimSupport;
|
|
146
|
-
relationship: "off_target";
|
|
147
|
-
}>;
|
|
148
|
-
/**
|
|
149
|
-
* Partition evidence into what a claim can stand on: an item resolves to a
|
|
150
|
-
* record a reader can check, or it does not. A claim with nothing checkable
|
|
151
|
-
* says so rather than presenting provenance labels as citations.
|
|
152
|
-
*/
|
|
153
|
-
export declare function claimSupportFrom(evidence: EvidenceItem[], reasonWhenUnsupported: string): ClaimSupport;
|
|
154
|
-
/** The evidence behind a claim, or nothing when the claim states it has none. */
|
|
155
|
-
export declare function claimSupportEvidence(support: ClaimSupport): EvidenceItem[];
|
|
156
|
-
/**
|
|
157
|
-
* Turn segmented FDA label warnings into the dossier's per-organ regulatory
|
|
158
|
-
* signal section.
|
|
159
|
-
*
|
|
160
|
-
* The organ-resolution filter can legitimately empty this section: a set of
|
|
161
|
-
* labels whose every warning fragment names no canonical organ produces no
|
|
162
|
-
* rows. That is `filtered` with the count it discarded, never an `available`
|
|
163
|
-
* section with an empty list — the difference is whether a reader learns that
|
|
164
|
-
* signals existed and did not survive attribution.
|
|
165
|
-
*/
|
|
166
|
-
export declare function assembleRegulatoryOrganSignals(projection: OrganSignalProjection | null): RegulatoryOrganSignals;
|
|
167
|
-
/**
|
|
168
|
-
* Filter and deduplicate raw off-target rows before panel assembly.
|
|
169
|
-
*
|
|
170
|
-
* Removes: on-target self-rows, cell-line entries, sentinel/unresolved names.
|
|
171
|
-
* Deduplicates: by UniProt accession when present, otherwise by normalized name;
|
|
172
|
-
* keeps the highest-pchembl row as the winner and records merged ChEMBL ids.
|
|
173
|
-
* Computes: `selectivity_window_below_threshold`, `clinical_consequence`,
|
|
174
|
-
* `is_safety_panel_target` (via the existing safety-panel lookup).
|
|
175
|
-
*/
|
|
176
|
-
export declare function filterAndDedupOffTargetRows(rows: RawOffTargetRow[], ctx: {
|
|
177
|
-
assessmentTargetChemblId: string | null;
|
|
178
|
-
}): CleanOffTargetRow[];
|
|
179
|
-
/**
|
|
180
|
-
* Off-target panel row split. Each clean off-target row is classified as:
|
|
181
|
-
* - `on_target_self_hit`: alternate ChEMBL ID for the assessment target itself
|
|
182
|
-
* - `intended_co_target`: every modulator that hits this target intends it
|
|
183
|
-
* (e.g., GLP1R + GIPR for tirzepatide); not an off-target liability
|
|
184
|
-
* - `off_target`: real off-target — selectivity computed vs primary potency
|
|
185
|
-
*/
|
|
186
|
-
export declare function aggregateOffTargetPanel(phase2: Phase2Bundle, fanout: FanoutResults | undefined, assessmentUniprot: string, assessmentGeneSymbol?: string, familyComplexes?: FamilyComplexesBundle | null, onTargetChemblIds?: string[]): {
|
|
187
|
-
rows: {
|
|
188
|
-
off_target_id: string | null;
|
|
189
|
-
off_target_name: string;
|
|
190
|
-
pchembl: number;
|
|
191
|
-
is_safety_panel_target: boolean;
|
|
192
|
-
organ_system: "hematologic" | "metabolic" | "immune" | "hepatic" | "musculoskeletal" | "cns" | "renal" | "reproductive" | "respiratory" | "cardiac" | "vascular" | "pns" | "gi" | "pancreas" | "endocrine_thyroid" | "dermatologic" | "ocular" | "oncology" | null;
|
|
193
|
-
clinical_consequence: string | null;
|
|
194
|
-
selectivity: {
|
|
195
|
-
vs_primary_potency: {
|
|
196
|
-
primary_pchembl_used: number;
|
|
197
|
-
primary_source: "chembl_target_drug_indication" | "literature_curated";
|
|
198
|
-
fold: number;
|
|
199
|
-
log_units: number;
|
|
200
|
-
};
|
|
201
|
-
} | {
|
|
202
|
-
selectivity_unknown: true;
|
|
203
|
-
reason: string;
|
|
204
|
-
};
|
|
205
|
-
selectivity_window_below_threshold: boolean;
|
|
206
|
-
relationship: "off_target";
|
|
207
|
-
support: {
|
|
208
|
-
state: "scored";
|
|
209
|
-
evidence: {
|
|
210
|
-
source: string;
|
|
211
|
-
pmid?: string | undefined;
|
|
212
|
-
doi?: string | undefined;
|
|
213
|
-
accession?: string | undefined;
|
|
214
|
-
predicate?: string | undefined;
|
|
215
|
-
score?: number | undefined;
|
|
216
|
-
strength?: string | undefined;
|
|
217
|
-
is_human?: boolean | undefined;
|
|
218
|
-
is_clinical?: boolean | undefined;
|
|
219
|
-
excerpt?: string | undefined;
|
|
220
|
-
metadata?: Record<string, unknown> | undefined;
|
|
221
|
-
regulatory_reference?: {
|
|
222
|
-
document: string;
|
|
223
|
-
section?: string | undefined;
|
|
224
|
-
doc_id?: string | undefined;
|
|
225
|
-
doc_url?: string | undefined;
|
|
226
|
-
} | undefined;
|
|
227
|
-
}[];
|
|
228
|
-
} | {
|
|
229
|
-
state: "unknown";
|
|
230
|
-
reason: string;
|
|
231
|
-
};
|
|
232
|
-
target_class?: string | undefined;
|
|
233
|
-
metadata?: {
|
|
234
|
-
merged_chembl_ids?: string[] | undefined;
|
|
235
|
-
} | undefined;
|
|
236
|
-
}[];
|
|
237
|
-
excluded_rows: {
|
|
238
|
-
off_target_id: string | null;
|
|
239
|
-
off_target_name: string;
|
|
240
|
-
pchembl: number;
|
|
241
|
-
is_safety_panel_target: boolean;
|
|
242
|
-
organ_system: "hematologic" | "metabolic" | "immune" | "hepatic" | "musculoskeletal" | "cns" | "renal" | "reproductive" | "respiratory" | "cardiac" | "vascular" | "pns" | "gi" | "pancreas" | "endocrine_thyroid" | "dermatologic" | "ocular" | "oncology" | null;
|
|
243
|
-
clinical_consequence: string | null;
|
|
244
|
-
selectivity: {
|
|
245
|
-
vs_primary_potency: {
|
|
246
|
-
primary_pchembl_used: number;
|
|
247
|
-
primary_source: "chembl_target_drug_indication" | "literature_curated";
|
|
248
|
-
fold: number;
|
|
249
|
-
log_units: number;
|
|
250
|
-
};
|
|
251
|
-
} | {
|
|
252
|
-
selectivity_unknown: true;
|
|
253
|
-
reason: string;
|
|
254
|
-
};
|
|
255
|
-
selectivity_window_below_threshold: boolean;
|
|
256
|
-
relationship: "intended_co_target" | "on_target_self_hit" | "obligate_cofactor";
|
|
257
|
-
reason: string;
|
|
258
|
-
evidence: {
|
|
259
|
-
source: string;
|
|
260
|
-
pmid?: string | undefined;
|
|
261
|
-
doi?: string | undefined;
|
|
262
|
-
accession?: string | undefined;
|
|
263
|
-
predicate?: string | undefined;
|
|
264
|
-
score?: number | undefined;
|
|
265
|
-
strength?: string | undefined;
|
|
266
|
-
is_human?: boolean | undefined;
|
|
267
|
-
is_clinical?: boolean | undefined;
|
|
268
|
-
excerpt?: string | undefined;
|
|
269
|
-
metadata?: Record<string, unknown> | undefined;
|
|
270
|
-
regulatory_reference?: {
|
|
271
|
-
document: string;
|
|
272
|
-
section?: string | undefined;
|
|
273
|
-
doc_id?: string | undefined;
|
|
274
|
-
doc_url?: string | undefined;
|
|
275
|
-
} | undefined;
|
|
276
|
-
}[];
|
|
277
|
-
target_class?: string | undefined;
|
|
278
|
-
metadata?: {
|
|
279
|
-
merged_chembl_ids?: string[] | undefined;
|
|
280
|
-
} | undefined;
|
|
281
|
-
}[];
|
|
282
|
-
} | null;
|
|
283
|
-
/** Minimum distinct active substances required for class-liability designation. */
|
|
284
|
-
export declare const CLASS_MIN_DRUGS = 3;
|
|
285
|
-
export declare const CLASS_LIABILITY_FRACTION = 0.3;
|
|
286
|
-
export type ClassDrug = {
|
|
287
|
-
drug_id: string;
|
|
288
|
-
parent_chembl_id: string | null;
|
|
289
|
-
drug_name: string;
|
|
290
|
-
max_phase: number;
|
|
291
|
-
};
|
|
292
|
-
/**
|
|
293
|
-
* Deduplicates a list of drugs by active substance (parent_chembl_id, falling
|
|
294
|
-
* back to drug_id when parent is absent), then derives the count and suppression
|
|
295
|
-
* reason used consistently across drugs_in_class and per_organ rollups.
|
|
296
|
-
*
|
|
297
|
-
* Dedup winner per group: highest max_phase; ties broken by drug_id lexicographic
|
|
298
|
-
* order so the result is deterministic.
|
|
299
|
-
*/
|
|
300
|
-
export declare function computeClassPrecedentCounts(drugs: ClassDrug[]): {
|
|
301
|
-
drug_count_in_class: number;
|
|
302
|
-
drugs_in_class: ClassDrug[];
|
|
303
|
-
suppressed_reason: string | null;
|
|
304
|
-
};
|
|
305
|
-
export declare function aggregateClassPrecedent(phase2: Phase2Bundle, fanout: FanoutResults | undefined): {
|
|
306
|
-
drugs_in_class: ClassDrug[];
|
|
307
|
-
per_organ: {
|
|
308
|
-
organ: "hematologic" | "metabolic" | "immune" | "hepatic" | "musculoskeletal" | "cns" | "renal" | "reproductive" | "respiratory" | "cardiac" | "vascular" | "pns" | "gi" | "pancreas" | "endocrine_thyroid" | "dermatologic" | "ocular" | "oncology";
|
|
309
|
-
drug_count_in_class: number;
|
|
310
|
-
drugs_with_signal: number;
|
|
311
|
-
signal_fraction: number;
|
|
312
|
-
is_class_liability: boolean;
|
|
313
|
-
suppressed_reason: string | null;
|
|
314
|
-
top_aes: {
|
|
315
|
-
term: string;
|
|
316
|
-
report_count: number;
|
|
317
|
-
}[];
|
|
318
|
-
}[];
|
|
319
|
-
} | null;
|
|
320
|
-
export declare function buildOrganRollup(faers: ReturnType<typeof aggregateFaersAcrossModulators>, trialAes: ReturnType<typeof aggregateTrialAes>, offTarget: OffTargetPanelRows | null, classP: ReturnType<typeof aggregateClassPrecedent>, regulatoryActions?: RegulatoryActionRow[] | null): {
|
|
321
|
-
organ: "hematologic" | "metabolic" | "immune" | "hepatic" | "musculoskeletal" | "cns" | "renal" | "reproductive" | "respiratory" | "cardiac" | "vascular" | "pns" | "gi" | "pancreas" | "endocrine_thyroid" | "dermatologic" | "ocular" | "oncology";
|
|
322
|
-
risk_level: "low" | "medium" | "high";
|
|
323
|
-
signal_type_count: number;
|
|
324
|
-
signals: {
|
|
325
|
-
chembl_polypharm_count: number;
|
|
326
|
-
faers_count: number;
|
|
327
|
-
trial_ae_count: number;
|
|
328
|
-
class_liability_present: boolean;
|
|
329
|
-
};
|
|
330
|
-
evidence: {
|
|
331
|
-
source: string;
|
|
332
|
-
pmid?: string | undefined;
|
|
333
|
-
doi?: string | undefined;
|
|
334
|
-
accession?: string | undefined;
|
|
335
|
-
predicate?: string | undefined;
|
|
336
|
-
score?: number | undefined;
|
|
337
|
-
strength?: string | undefined;
|
|
338
|
-
is_human?: boolean | undefined;
|
|
339
|
-
is_clinical?: boolean | undefined;
|
|
340
|
-
excerpt?: string | undefined;
|
|
341
|
-
metadata?: Record<string, unknown> | undefined;
|
|
342
|
-
regulatory_reference?: {
|
|
343
|
-
document: string;
|
|
344
|
-
section?: string | undefined;
|
|
345
|
-
doc_id?: string | undefined;
|
|
346
|
-
doc_url?: string | undefined;
|
|
347
|
-
} | undefined;
|
|
348
|
-
}[];
|
|
349
|
-
}[] | null;
|
|
350
|
-
export declare function assembleDrugInteractions(phase2: Phase2Bundle, enrichedModulators?: ChemblModulator[]): {
|
|
351
|
-
drug_id: string;
|
|
352
|
-
drug_name: string;
|
|
353
|
-
best_score: number;
|
|
354
|
-
predicates: string[];
|
|
355
|
-
sources: string[];
|
|
356
|
-
paper_count: number;
|
|
357
|
-
dominant_direction: "unknown";
|
|
358
|
-
has_human_evidence: boolean;
|
|
359
|
-
has_clinical_evidence: boolean;
|
|
360
|
-
evidence: {
|
|
361
|
-
source: string;
|
|
362
|
-
predicate: string;
|
|
363
|
-
score: number;
|
|
364
|
-
is_clinical: boolean;
|
|
365
|
-
is_human: boolean;
|
|
366
|
-
metadata: {
|
|
367
|
-
chembl_id: string;
|
|
368
|
-
max_phase: number;
|
|
369
|
-
molecule_type: string | null;
|
|
370
|
-
first_approval: number | null;
|
|
371
|
-
triage_rationale: string | undefined;
|
|
372
|
-
};
|
|
373
|
-
}[];
|
|
374
|
-
}[] | null;
|