{
  "schemaVersion": 1,
  "checkedOn": "2026-10-25",
  "sourceCommit": "122bd466feb11efd304769faff19e77bd40a98b4",
  "scopeNote": "Specific executed code, declared teaching inputs, and this Linux environment only. Passing code and image checks do not establish biological validity or all-platform correctness. Raw private execution logs and knitted HTML are excluded.",
  "environment": {
    "os": "Ubuntu Linux",
    "R": "4.3.3",
    "Python": "3.12.3",
    "ggplot2": "3.4.4",
    "uwot": "0.1.16",
    "Seurat": "5.0.1",
    "rmarkdown": "2.25",
    "knitr": "1.45",
    "Pandoc": "3.1.3",
    "tidyverse": "2.0.0",
    "dplyr": "1.1.4",
    "readr": "2.1.5",
    "here": "1.0.1"
  },
  "tutorials": {
    "data-visualization-fundamentals": {
      "status": "supplied-synthetic-workflow-executed",
      "executed": "Complete supplied R Markdown plotting report and all five displayed Python plotting alternatives.",
      "notExecuted": "A differential-expression model or any biological dataset analysis.",
      "inputs": [
        {
          "path": "files/tutorial-examples/data-visualization-fundamentals/qc_metrics.tsv",
          "sha256": "d21432fda0ea8795d617ecd238bd7e59c7e29336b66b554a588c412fa734a9f6",
          "type": "synthetic teaching fixture"
        },
        {
          "path": "files/tutorial-examples/data-visualization-fundamentals/counts.tsv",
          "sha256": "11f62a7d25bf9141993db9373f040bd5a68596524e461163eeb19bd6ed17dba8",
          "type": "synthetic teaching fixture"
        },
        {
          "path": "files/tutorial-examples/data-visualization-fundamentals/deseq2_results.tsv",
          "sha256": "96b925c13f76de79833508a843ad42244a6859e5a3ac8c35cd3099a291a0832f",
          "type": "synthetic teaching fixture"
        }
      ],
      "source": {
        "path": "files/tutorial-examples/data-visualization-fundamentals/data-visualization-fundamentals.Rmd",
        "sha256": "c8b01de10a90682e65bb002163cc41fe4789a3d106be3390b4a761a089b6f68e"
      },
      "command": "Rscript -e 'rmarkdown::render(\"data-visualization-fundamentals.Rmd\", output_dir=\"results\")'",
      "checks": [
        "R report rendered",
        "All five Python plotting stages exited successfully",
        "Six PNG outputs per language",
        "Six preserved sample IDs per coordinate table",
        "All saved coordinates finite",
        "R and Python two-component PCA pairwise-distance correlation 1.0; coordinates need not match signs or scale"
      ],
      "figures": [
        {
          "path": "images/tutorial-figures/visualization-fundamentals-r-qc_boxplot.png",
          "sha256": "88315a412d736259d6da5d5aa3e324a877d5bc09116d695bc212f7ae7f0bc11a",
          "width": 2400,
          "height": 1500,
          "source": "actual R execution",
          "title": "QC by batch"
        },
        {
          "path": "images/tutorial-figures/visualization-fundamentals-r-qc_histogram.png",
          "sha256": "5c4472bc74825899e87fdbd7e8bdbfefc9cec230629456b72ea6e8eae34941bc",
          "width": 1800,
          "height": 1200,
          "source": "actual R execution",
          "title": "Sequencing depth"
        },
        {
          "path": "images/tutorial-figures/visualization-fundamentals-r-pca_plot.png",
          "sha256": "e698390247c7634440c24af89a00de1b77da1e1cae06f3a3da4f18a2ecf8a435",
          "width": 1800,
          "height": 1500,
          "source": "actual R execution",
          "title": "PCA of the selected, scaled matrix"
        },
        {
          "path": "images/tutorial-figures/visualization-fundamentals-r-umap_plot.png",
          "sha256": "c421483304c67878261bb0fd0a8fc2372bdd9c0162a89df48abd3645a8c0a5fd",
          "width": 1800,
          "height": 1500,
          "source": "actual R execution",
          "title": "UMAP from the saved PCA scores"
        },
        {
          "path": "images/tutorial-figures/visualization-fundamentals-r-heatmap_topgenes.png",
          "sha256": "507d70664d521cae13fe2bcfbce876bf1221b8897976d6d29d8000f55f09ad54",
          "width": 2400,
          "height": 1800,
          "source": "actual R execution",
          "title": "Relative expression on a declared scale"
        },
        {
          "path": "images/tutorial-figures/visualization-fundamentals-r-volcano.png",
          "sha256": "9ad33c82bc89654ebf10d3c97e4eb472ddafb67a484e734c0f36ac9cbd5543c5",
          "width": 1800,
          "height": 1500,
          "source": "actual R execution",
          "title": "A volcano display, not a fitted analysis"
        }
      ]
    },
    "research-reporting-interpretation": {
      "status": "supplied-synthetic-report-executed",
      "executed": "Complete supplied R Markdown report with input validation, descriptive table, two CSV exports, and actual embedded plot.",
      "notExecuted": "An upstream biological analysis or cross-platform validation.",
      "inputs": [
        {
          "path": "files/tutorial-examples/research-reporting-interpretation/data/synthetic_qc.csv",
          "sha256": "cd5f540fc630022bcf19607dc0292049422cb6586190d958d87dd44d44727efb",
          "type": "synthetic teaching fixture"
        }
      ],
      "source": {
        "path": "files/tutorial-examples/research-reporting-interpretation/research-reporting-workflow.Rmd",
        "sha256": "f7440da89d6fdddf2c23670d84e1d76304825e0430b08ec9b5be35663d2f3893"
      },
      "figures": [
        {
          "path": "images/tutorial-figures/research-reporting-r-synthetic-qc.png",
          "sha256": "d4e0e4586bfb3b5eb62909688ddb2223f2ffb3579ffebb9f0bd1ab6365f3377c",
          "width": 1344,
          "height": 960,
          "source": "actual R execution",
          "title": "The rendered report figure"
        }
      ]
    },
    "r-tidyverse-fundamentals": {
      "status": "supplied-synthetic-workflow-executed",
      "executed": "Exact displayed setup and complete R count-table workflow; 10 source/runtime tests, including 12 invalid-input cases, plus two native platform tests.",
      "notExecuted": "A biological condition comparison or whole-library QC.",
      "source": {
        "page": "tutorials/r-tidyverse-fundamentals.html",
        "blockID": "tidyverse-workflow",
        "codeSHA256": "b2314ec7da026b83d17f0924ea164fea6d0d12e544239b9ca4437590b522a1d1"
      },
      "inputs": {
        "type": "Embedded invented three-gene by three-sample table and declared sample metadata"
      },
      "checks": [
        "Supplied totals 1360, 1375 and 1365",
        "Median supplied gene counts 320, 280 and 305",
        "12 invalid-input cases stopped before writing results",
        "Reordered metadata and zero counts behaved as documented",
        "Opaque 900 by600 PNG with white corners"
      ],
      "figures": [
        {
          "path": "images/tutorial-figures/tidyverse-r-supplied-count-totals.png",
          "sha256": "521cff4da1152fc13b05d3a1601f5644bc0cf2b8d2b3ebdbb91934f5071f3e3b",
          "width": 900,
          "height": 600,
          "source": "actual R execution",
          "title": "Totals from the supplied teaching table"
        }
      ]
    },
    "quality-control-fundamentals": {
      "status": "public-prepared-input-r-component-executed",
      "executed": "Exact displayed native R Seurat QC component on the entire official public PBMC3k filtered MEX matrix.",
      "notExecuted": "The full FASTQ, alignment, bulk, other-species QC workflows or Scanpy alternative.",
      "source": {
        "page": "tutorials/quality-control-fundamentals.html",
        "blockID": "qc-single-cell-r",
        "codeSHA256": "93aa0bee173e2cc0806565ca5fa975786bf62e53421df5c81f3a8024c310847a"
      },
      "inputs": {
        "url": "https://cf.10xgenomics.com/samples/cell/pbmc3k/pbmc3k_filtered_gene_bc_matrices.tar.gz",
        "type": "official public prepared teaching matrix",
        "archiveSHA256": "847d6ebd9a1ec9a768f2be7e40ca42cbfe75ebeb6d76a4c24167041699dc28b5",
        "cells": 2700,
        "features": 32738,
        "subsampled": false
      },
      "checks": [
        "All supplied cells read",
        "Human MT- features found",
        "All three descriptive metric summaries printed",
        "Actual Seurat QC PNG saved"
      ],
      "figures": [
        {
          "path": "images/tutorial-figures/quality-control-r-public-pbmc3k-violin.png",
          "sha256": "3fa2ad3a24e80653541c660345b618579005109098257842b443c2dba9c01bde",
          "width": 2700,
          "height": 1200,
          "source": "actual R execution",
          "title": "Prepared-input single-cell QC"
        }
      ]
    },
    "scrna-seq-basics": {
      "status": "public-pbmc3k-r-core-executed",
      "executed": "Corrected displayed R Seurat core: QC, normalization, variable features, PCA, Louvain clustering and UMAP. Unused optional patchwork load removed.",
      "notExecuted": "Scanpy alternative, independent cell-type annotation or biological validation.",
      "source": {
        "page": "tutorials/scrna-seq-basics.html",
        "contains": "FindClusters",
        "codeSHA256": "65f9516fb31f7de082048fef07fe91109adab1cbb65980679bcdb9ea706c6f9d",
        "executedSnapshotSHA256": "af4fd8ecbe098a484797cb4dad8cbeea5b01f989ef7d4088ac8c9e0ff8de2d19",
        "snapshotNormalization": "HTML entities decoded; final newline added if absent."
      },
      "inputs": {
        "url": "https://cf.10xgenomics.com/samples/cell/pbmc3k/pbmc3k_filtered_gene_bc_matrices.tar.gz",
        "archiveSHA256": "847d6ebd9a1ec9a768f2be7e40ca42cbfe75ebeb6d76a4c24167041699dc28b5",
        "type": "official public prepared teaching matrix",
        "inputCells": 2700,
        "inputFeatures": 32738,
        "extraSubsampling": false
      },
      "checks": [
        "2700 input cells",
        "2638 cells retained by the shown example filters",
        "Nine Louvain communities in this environment",
        "Actual QC, elbow and cluster UMAP figures saved"
      ],
      "figures": [
        {
          "path": "images/tutorial-figures/scrna-seq-basics-r-pbmc3k-qc.png",
          "sha256": "b810a747c94e42529f4294230cb6ceace721453bb48374d85d0be5dfe99190e5",
          "width": 1200,
          "height": 400,
          "source": "actual corrected displayed R execution",
          "title": "Public PBMC3k QC"
        },
        {
          "path": "images/tutorial-figures/scrna-seq-basics-r-pbmc3k-elbow.png",
          "sha256": "ec4abce5bb95e1b708a65b310c29a8247af2fb678ba5817a507016f00af0e465",
          "width": 800,
          "height": 600,
          "source": "actual corrected displayed R execution",
          "title": "PCA elbow"
        },
        {
          "path": "images/tutorial-figures/scrna-seq-basics-r-pbmc3k-umap.png",
          "sha256": "d99ac52bdcf6b7b31f326873f13b43efc32a29e9d2e608f6af141c586d558011",
          "width": 800,
          "height": 600,
          "source": "actual corrected displayed R execution",
          "title": "Cluster UMAP"
        }
      ]
    },
    "wes-variant-calling-pipeline": {
      "status": "synthetic-command-contract-only",
      "executed": "Exact corrected displayed Rscript VAF plotting command on the preserved synthetic table from the lesson four-record VCF contract.",
      "notExecuted": "Read alignment, variant calling, real NA12878 analysis or any full WES workflow.",
      "source": {
        "page": "tutorials/wes-variant-calling-pipeline.html",
        "contains": "Rscript -e",
        "codeSHA256": "1bc262741583f607a8cfb74b603cd5c00a6a28a663e4528431f117f0646854c7",
        "executedSnapshotSHA256": "e5a1ad473b3929733a49b7e116c842e7c28300ca7870b0ad0345aee5e93e6a95",
        "snapshotNormalization": "HTML entities decoded; final newline added if absent."
      },
      "inputs": {
        "path": "files/wes-contract-fixture/filter_status_ad_dp.vcf",
        "sha256": "18eae6261f70a192425f12943106a795ae7bf65debf8f4471de021f931eb4cc0",
        "type": "explicitly invented four-record VCF contract fixture"
      },
      "checks": [
        "Illegal backslash-newlines removed from shell-quoted R source",
        "Exact displayed command returned 0",
        "800 by600 PNG created in private review workspace"
      ],
      "figures": []
    },
    "scrna-seq-quality-control": {
      "status": "separate-process-handoff-fixture-and-public-silhouette-only",
      "executed": "Corrected summary reloads saved LISI metadata in a fresh Rscript process; four-row known-format handoff fixture passed. R and Python silhouettes also ran on all 2638 retained public PBMC3k cells.",
      "notExecuted": "PBMC3k LISI: required patient_id and reviewed cell_type are absent. No batch or cell-type labels were invented.",
      "sources": [
        {
          "page": "tutorials/scrna-seq-quality-control.html",
          "contains": "compute_lisi(",
          "codeSHA256": "55bdf94859cad7298bf7ddf77559fb52499ab020402094baf7b6c85737e75cbc",
          "executedSnapshotSHA256": "f060e9a7901db28b102d9bed12c09cae4e3ef615d7612b55fe204e4f1fd1e309",
          "snapshotNormalization": "HTML entities decoded; final newline added if absent."
        }
      ],
      "summarySource": {
        "page": "tutorials/scrna-seq-quality-control.html",
        "contains": "read.csv(\"lisi_scores.csv\"",
        "codeSHA256": "b5ff68839acda7679055173320a91691ea80dd8f4dead0c39bcba1d0e8bec1f0",
        "executedSnapshotSHA256": "31851c737abee8d64c0f5243f790dcec8a279eb3bdb738fe0b7215bf00cbf844",
        "snapshotNormalization": "HTML entities decoded; final newline added if absent."
      },
      "checks": [
        "Summary no longer depends on a previous R process global variable",
        "Four-row format-test handoff passed in a separate Rscript process",
        "Missing-metadata negative case stopped",
        "True public PBMC3k LISI stopped at the required metadata preflight",
        "Public R and Python silhouette means approximately 0.08895722; not cell-type validation"
      ],
      "figures": []
    }
  }
}
