Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions research-materials-authentication-assistant/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Research Materials Authentication Assistant

This module adds a focused research-materials authentication guard for the AI-Powered Research Assistant Suite in issue `#16`.

AI-assisted review can miss mundane but decisive reproducibility problems: an antibody without a traceable identifier, a stale validation panel, a contaminated cell line, a species mismatch, or a passage range that cannot be true. This assistant inspects synthetic manuscript review packets and returns release, review, or hold decisions with evidence-linked remediation.

## Scope

- Checks RRID-style identifiers for antibodies, cell lines, organism strains, primary cells, and reagents.
- Flags missing lot or batch metadata for lot-sensitive materials.
- Checks validation evidence freshness against a deterministic review date.
- Holds contaminated cell-derived materials.
- Checks reported passage ranges and reported passage numbers.
- Compares material species and claimed organism against linked assays.
- Holds antibody target mismatches when the antibody target does not match the measured assay target.
- Produces JSON, Markdown, SVG, and MP4 demo artifacts.
- Uses synthetic data only.
- Uses no external AI APIs, credentials, private manuscripts, payment systems, or network calls.

## Requirement Map

| Issue #16 capability | Implementation |
| --- | --- |
| Auto peer review reports | Emits structured findings, severity, decision, confidence, and remediation. |
| Methodological and reproducibility red flags | Detects identifier gaps, stale validation, contamination, passage errors, organism mismatch, and antibody target mismatch. |
| Adaptive templates per domain | Supports packet-level `domain` and domain-specific reviewer notes. |
| Claims vs evidence alignment | Compares material identity and validation evidence against linked assays and manuscript claims. |
| Reproducible deterministic output | Demo and tests use fixed synthetic packets and dependency-free scoring. |

## Run

```bash
npm test
npm run demo
npm run video
npm run check
```

Demo artifacts are written to `reports/`:

- `summary.json`
- `reviewer-packet.md`
- `summary.svg`
- `demo.mp4`

## Decisions

- `RELEASE`: materials are traceable, authenticated, fresh, and aligned with the linked assays.
- `REVIEW`: a reviewer should inspect missing identifiers, stale validation, species mismatch, or incomplete material provenance.
- `HOLD`: release is blocked by critical reproducibility problems such as contamination, impossible passage metadata, or antibody target mismatch.

## AI Assistance Disclosure

Implemented with Codex assistance and locally verified with deterministic tests and generated artifacts.
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
[
{
"id": "clean-organoid-panel",
"title": "Authenticated organoid cytokine response panel",
"domain": "translational immunology",
"reviewDate": "2026-08-15",
"materials": [
{
"name": "HBEC-Alpha authenticated airway cell line",
"type": "cell_line",
"role": "model system",
"rrid": "RRID:CVCL_SYN1",
"lot": "BANK-2026-07-A",
"source": "institutional biobank",
"species": "human",
"claimedOrganism": "human",
"validationEvidence": ["STR profile match", "certificate of analysis", "mycoplasma PCR negative"],
"validationDate": "2026-07-10",
"contaminationStatus": "negative",
"passageRange": { "min": 5, "max": 18 },
"reportedPassage": 9
},
{
"name": "Anti-IL6 clone S6",
"type": "antibody",
"role": "capture antibody",
"rrid": "RRID:AB_9000001",
"lot": "LOT-IL6-2606",
"source": "validated synthetic catalog",
"species": "human",
"target": "IL6",
"assayTargets": ["IL6"],
"validationEvidence": ["western blot specificity", "orthogonal ELISA spike recovery"],
"validationDate": "2026-06-14",
"contaminationStatus": "not_detected"
}
],
"assays": [
{
"name": "IL6 secretion ELISA",
"materialName": "Anti-IL6 clone S6",
"organism": "human",
"target": "IL6",
"readout": "secreted cytokine concentration"
}
],
"manuscriptClaims": [
"All primary materials were identity checked before cytokine-response analysis."
]
},
{
"id": "review-stale-rrid-organism",
"title": "Stale antibody validation with organism mismatch",
"domain": "cell signaling",
"reviewDate": "2026-08-15",
"materials": [
{
"name": "Anti-pERK screening antibody",
"type": "antibody",
"role": "western blot antibody",
"rrid": "",
"lot": "WB-ERK-2019",
"source": "legacy freezer box",
"species": "mouse",
"claimedOrganism": "human",
"target": "pERK",
"assayTargets": ["pERK"],
"validationEvidence": ["vendor blot from 2019"],
"validationDate": "2019-03-04",
"contaminationStatus": "not_detected"
}
],
"assays": [
{
"name": "Human pERK western blot",
"materialName": "Anti-pERK screening antibody",
"organism": "human",
"target": "pERK",
"readout": "phosphorylated ERK band intensity"
}
],
"manuscriptClaims": [
"Human samples were assayed with pathway-specific antibody material."
]
},
{
"id": "hold-contaminated-line",
"title": "Contaminated cell line in proliferation assay",
"domain": "cancer biology",
"reviewDate": "2026-08-15",
"materials": [
{
"name": "MCB-Tumor-2 working stock",
"type": "cell_line",
"role": "tumor model",
"rrid": "RRID:CVCL_SYN2",
"lot": "CELL-2026-05-B",
"source": "working stock",
"species": "human",
"claimedOrganism": "human",
"validationEvidence": ["STR profile match"],
"validationDate": "2026-05-12",
"contaminationStatus": "mycoplasma_positive",
"passageRange": { "min": 3, "max": 14 },
"reportedPassage": 11
}
],
"assays": [
{
"name": "Proliferation growth curve",
"materialName": "MCB-Tumor-2 working stock",
"organism": "human",
"target": "cell growth",
"readout": "confluence over time"
}
],
"manuscriptClaims": [
"The tumor cell model supports the proliferation finding."
]
},
{
"id": "hold-antibody-passage",
"title": "Antibody target mismatch and impossible passage metadata",
"domain": "neurobiology",
"reviewDate": "2026-08-15",
"materials": [
{
"name": "NeuroStem-X passage record",
"type": "primary_cell",
"role": "differentiation model",
"rrid": "RRID:CVCL_SYN3",
"lot": "NSX-2601",
"source": "synthetic stem-cell bank",
"species": "human",
"claimedOrganism": "human",
"validationEvidence": ["identity PCR panel"],
"validationDate": "2026-01-15",
"contaminationStatus": "negative",
"passageRange": { "min": 22, "max": 8 },
"reportedPassage": 31
},
{
"name": "Anti-GFAP clone G4",
"type": "antibody",
"role": "immunostaining antibody",
"rrid": "RRID:AB_9000002",
"lot": "LOT-GFAP-2601",
"source": "validated synthetic catalog",
"species": "human",
"target": "GFAP",
"assayTargets": ["GFAP"],
"validationEvidence": ["knockdown specificity panel"],
"validationDate": "2026-01-20",
"contaminationStatus": "not_detected"
}
],
"assays": [
{
"name": "MAP2 neuron staining",
"materialName": "Anti-GFAP clone G4",
"organism": "human",
"target": "MAP2",
"readout": "fluorescent neurite area"
}
],
"manuscriptClaims": [
"Neuron differentiation was quantified with validated immunostaining material."
]
}
]
13 changes: 13 additions & 0 deletions research-materials-authentication-assistant/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
{
"name": "research-materials-authentication-assistant",
"version": "1.0.0",
"description": "Dependency-free research materials authentication guard for AI research assistant review packets.",
"main": "src/index.js",
"scripts": {
"test": "node --test",
"demo": "node scripts/demo.js",
"video": "node scripts/render-demo-video.js",
"check": "node --check src/index.js && node --check scripts/demo.js && node --check scripts/render-demo-video.js"
},
"license": "MIT"
}
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Research Materials Authentication Review

Generated: 2026-08-15T20:45:50.858Z

## Decision Counts

- RELEASE: 1
- REVIEW: 1
- HOLD: 2

## Packet Reviews

### Authenticated organoid cytokine response panel
Decision: RELEASE
Confidence: 0.96
Materials checked: 2
Assays checked: 1
Reviewer note: translational immunology: materials are traceable, authenticated, and aligned with linked assays.

### Stale antibody validation with organism mismatch
Decision: REVIEW
Confidence: 0.12
Materials checked: 1
Assays checked: 1
Reviewer note: cell signaling: REVIEW before release because a tracked research material is missing a valid rrid-style identifier.
- MAJOR MISSING_OR_INVALID_RRID: A tracked research material is missing a valid RRID-style identifier.
Remediation: Add the RRID or equivalent registry identifier used for the exact material instance.
- MAJOR STALE_VALIDATION_DATE: The latest validation evidence is older than the configured freshness window.
Remediation: Refresh material authentication or justify why the prior validation still applies.
- MAJOR MATERIAL_CLAIM_ORGANISM_MISMATCH: The material species does not match the organism claimed in the manuscript packet.
Remediation: Correct the claimed organism or provide a cross-species rationale and validation evidence.
- MAJOR ASSAY_ORGANISM_MISMATCH: The material species does not match the organism declared for the linked assay.
Remediation: Route the packet for reviewer confirmation or correct the assay-material mapping.

### Contaminated cell line in proliferation assay
Decision: HOLD
Confidence: 0.61
Materials checked: 1
Assays checked: 1
Reviewer note: cancer biology: HOLD before release because a cell-derived material is marked contaminated or contamination-positive.
- CRITICAL CONTAMINATED_CELL_MATERIAL: A cell-derived material is marked contaminated or contamination-positive.
Remediation: Hold release until the assay is repeated with a contamination-negative authenticated material.

### Antibody target mismatch and impossible passage metadata
Decision: HOLD
Confidence: 0.1
Materials checked: 2
Assays checked: 1
Reviewer note: neurobiology: HOLD before release because the packet reports an impossible or biologically implausible passage range.
- CRITICAL IMPOSSIBLE_PASSAGE_RANGE: The packet reports an impossible or biologically implausible passage range.
Remediation: Correct the passage metadata and provide source authentication records before the assistant releases the review.
- CRITICAL ANTIBODY_TARGET_MISMATCH: The antibody target does not match the target measured by the linked assay.
Remediation: Hold release until the antibody, assay target, or interpretation is corrected and revalidated.
- MAJOR ASSAY_TARGET_NOT_VALIDATED_FOR_MATERIAL: The assay target is outside the target set validated for this material.
Remediation: Add target-specific validation evidence or remap the assay to an authenticated material.

Loading