{
  "schema_version": "toxicompass-external-validation-summary-v1",
  "frozen_at": "2026-08-02",
  "published_at": "2026-08-10",
  "status": "completed_with_limitations",
  "evaluation_timing": "Post-hoc robustness evaluation assembled and completed during manuscript revision; not a prospective blind validation.",
  "scope": {
    "stage1": "Revision-period post-hoc toxin-like comparator discrimination within the constructed external cohort.",
    "stage2": "Positive-only retained-label target/effect-family ranking, reported separately by source.",
    "online_service_relation": "These are offline Full-model validation results, not performance claims for the public Lite web service."
  },
  "sources": [
    {
      "name": "ConoServer",
      "url": "https://www.conoserver.org/",
      "role": "External positive candidates; 59 retained for source-separated Stage 2 reporting."
    },
    {
      "name": "ArachnoServer",
      "url": "http://arachnoserver.org/",
      "role": "External positive candidates; 28 retained as a separate OOD/challenge cohort."
    },
    {
      "name": "Hemolytik 2.0",
      "url": "https://webs.iiitd.edu.in/raghava/hemolytik2/",
      "role": "521 assay-scoped bioactive/non-hemolytic comparator records."
    },
    {
      "name": "IUPHAR/BPS Guide to PHARMACOLOGY",
      "url": "https://www.guidetopharmacology.org/",
      "role": "20 therapeutic-peptide comparators and one disulfide-rich proxy."
    }
  ],
  "cohorts": {
    "external_positive_audit": {
      "input_records": 114,
      "retained_records": 87,
      "excluded_records": 27,
      "conoserver_retained": 59,
      "arachnoserver_retained": 28
    },
    "stage1_formal": {
      "rows": 629,
      "positives": 87,
      "operational_comparators": 542,
      "bioactive_non_toxic": 521,
      "therapeutic_peptide": 20,
      "disulfide_rich_non_toxin_proxy": 1,
      "close_non_toxic_homologue": 0
    },
    "stage1_length_matched_sensitivity": {
      "rows": 174,
      "positives": 87,
      "operational_comparators": 87
    }
  },
  "stage1_metrics": [
    {
      "model": "Primary Full ensemble",
      "role": "frozen_primary",
      "rows": 629,
      "auroc": 0.8972,
      "auroc_95_ci": [0.8549, 0.9338],
      "auprc": 0.7428,
      "auprc_95_ci": [0.6557, 0.8189],
      "ci_method": "test-sample percentile bootstrap; B=10000; seed=20260805",
      "sensitivity": 0.9540,
      "specificity": 0.4686
    },
    {
      "model": "Robustness Full ensemble",
      "role": "robustness",
      "rows": 629,
      "auroc": 0.8721,
      "auroc_95_ci": [0.8243, 0.9115],
      "auprc": 0.7256,
      "auprc_95_ci": [0.6444, 0.8021],
      "ci_method": "stratified fixed-seed bootstrap; B=2000; seed=20261801",
      "sensitivity": 0.9195,
      "specificity": 0.5498
    }
  ],
  "stage2_selected_primary_full": [
    {
      "cohort": "ConoServer formal",
      "rows": 59,
      "hit_at_1": 0.6271,
      "hit_at_3": 0.8136,
      "mean_reciprocal_rank": 0.7432,
      "micro_average_precision_diagnostic": 0.6357
    },
    {
      "cohort": "ArachnoServer OOD/challenge",
      "rows": 28,
      "hit_at_1": 0.4643,
      "hit_at_3": 0.7143,
      "mean_reciprocal_rank": 0.6168,
      "micro_average_precision_diagnostic": 0.4460
    }
  ],
  "limitations": [
    "The cohorts were assembled and evaluated during manuscript revision and are not prospective blind validation.",
    "The 542 comparator records are evidence-bounded operational comparators, not universally verified non-toxic peptides.",
    "The close non-toxic homologue stratum contains no retained samples, so its false-positive rate is not applicable.",
    "Stage 2 evaluates positive-only retained-label ranking; unretained labels are not verified biological negatives.",
    "The selected Full results use query-only A3M fallback rather than database homolog-search MSA.",
    "Stage 1 and Stage 2 are not combined into a single cascade headline metric."
  ],
  "provenance": {
    "source_final_report_sha256": "e33aafe925cf5a53054e413b0f3879f852d52e4bdde845534d343f0180e1d3c8",
    "source_structured_report_sha256": "ba1f9b9c8051156e9b8eed8c1bfd32628a7bde49d8f2197d27e89537888aaf70",
    "audit_summary_sha256": "5bf00bd654e2d0cb4abbd4678ab474b79916ee608135ad5a06d43ccd22d36614",
    "stage1_positive_manifest_sha256": "9f2b9cf17dbef6351a0a3c3e4a8b0d4b91f853f0b74e68e9664ae6dc515237f6",
    "stage1_hard_negative_manifest_sha256": "31f63f0f480ccf5bc1afe0b4c5db760a19bf9cd9bb2ad17e1749c7dd849e957f",
    "stage1_formal_manifest_sha256": "0330c0dacc75194939fbf5ea06432a4d1e1e5963f3114758e0d953a1da11cb32",
    "stage1_length_matched_manifest_sha256": "ccb7d779646f2cfcff49ffa2e4c8cf88e417e9e2c786974971a890f39f872567"
  },
  "distribution": {
    "row_level_records_included": false,
    "reason": "Source-derived sequences and annotations are not redistributed where third-party terms do not provide a clear blanket redistribution grant.",
    "notice": "DATA_USE_NOTICE.md"
  }
}
