<!DOCTYPE html><html lang="en"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><title>Data Files - Sid Sijbrandij&#39;s Osteosarcoma Data</title><meta name="description" content="Comprehensive guide to all raw and processed data files in the osteosarcoma genomics project, organized by data type with contributor attributions."><link rel="canonical" href="https://osteosarc.com/data/"><link rel="icon" href="/favicon.ico" sizes="any"><!-- Open Graph --><meta property="og:type" content="website"><meta property="og:url" content="https://osteosarc.com/data/"><meta property="og:title" content="Data Files - Sid Sijbrandij's Osteosarcoma Data"><meta property="og:description" content="Comprehensive guide to all raw and processed data files in the osteosarcoma genomics project, organized by data type with contributor attributions."><meta property="og:image" content="https://osteosarc.com/img/sid_s_osteosarcoma_data.png"><!-- Twitter Card --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="Data Files - Sid Sijbrandij's Osteosarcoma Data"><meta name="twitter:description" content="Comprehensive guide to all raw and processed data files in the osteosarcoma genomics project, organized by data type with contributor attributions."><meta name="twitter:image" content="https://osteosarc.com/img/sid_s_osteosarcoma_data.png"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin><link rel="preconnect" href="https://cdn.jsdelivr.net"><link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet"><link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous"><!-- Structured data --><script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"Sid Sijbrandij's Osteosarcoma Data","url":"https://osteosarc.com","description":"Open research data portal for osteosarcoma: treatment timeline, bulk and single-cell RNA-seq, copy number variation, tissue imaging, gene set enrichment analysis, and clinical imaging.","about":{"@type":"MedicalCondition","name":"Osteosarcoma","code":{"@type":"MedicalCode","code":"C41.9","codingSystem":"ICD-10"}}}</script><link rel="stylesheet" href="/_astro/BaseLayout.DiZEP4QE.css">
<link rel="stylesheet" href="/_astro/data@_@astro.Dl4EQJ-L.css"></head> <body> <div class="navbar navbar-expand-lg navbar-light bg-light py-4"> <div class="container"> <a class="navbar-brand" href="/">Osteosarcoma</a> <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse sidebar-nav" id="navbarResponsive"> <ul class="navbar-nav ms-auto me-auto"> <li class="nav-item"> <a class="nav-link me-lg-2 me-xl-3 mt-2 mb-1" href="/timeline/" title="Timeline"> <span aria-hidden="true">🩺</span> Timeline </a> </li><li class="nav-item"> <a class="nav-link me-lg-2 me-xl-3 mt-2 mb-1" href="/genomics/" title="Genomics"> <span aria-hidden="true">🧬</span> Genomics </a> </li><li class="nav-item"> <a class="nav-link me-lg-2 me-xl-3 mt-2 mb-1" href="/imaging/" title="Imaging"> <span aria-hidden="true">🩻</span> Imaging </a> </li><li class="nav-item"> <a class="nav-link me-lg-2 me-xl-3 mt-2 mb-1" href="/pathology/" title="Pathology"> <span aria-hidden="true">🔬</span> Pathology </a> </li><li class="nav-item"> <a class="nav-link me-lg-2 me-xl-3 mt-2 mb-1 active" href="/data/" title="Data"> <span aria-hidden="true">🗂️</span> Data </a> </li><li class="nav-item"> <a class="nav-link me-lg-2 me-xl-3 mt-2 mb-1" href="/blog/" title="Blog"> <span aria-hidden="true">📰</span> Blog </a> </li> </ul> </div> </div> </div> <div class="container">   <div class="data-page"> <!-- Table of Contents (sidebar) --> <nav class="data-toc"> <h4>On this page</h4> <ul> <li><a href="#access">Data Access</a></li> <li><a href="#file-browser">File Browser</a></li> <li><a href="#overview">Overview</a></li> <li><a href="#bulk-dna">Bulk DNA Sequencing</a></li> <li><a href="#bulk-rna">Bulk RNA Sequencing</a></li> <li><a href="#scrna-tumor">Single Cell RNA-seq (Tumor)</a></li> <li><a href="#scrna-pbmc">Single Cell RNA-seq (PBMC)</a></li> <li><a href="#spatial">Spatial Transcriptomics</a></li> <li><a href="#pathology">Pathology &amp; Imaging</a></li> <li><a href="#hla">HLA Type</a></li> <li><a href="#upload">Uploading Data</a></li> </ul> </nav> <!-- Main content --> <div class="data-main"> <!-- Header --> <div class="data-header"> <h1>Data Files</h1> <p>
This page provides a comprehensive guide to all raw and processed data files
          in the osteosarcoma genomics project. Data is stored in a public AWS S3 bucket
          and organized by data type and time point. Each section attributes the data to the
          lab or individual who generated or processed it.
</p> <div class="data-table-wrap"> <table class="data-table"> <thead> <tr><th>Date</th><th>Timepoint</th><th>Location</th><th>Assays</th></tr> </thead> <tbody> <tr> <td>2022-12-16</td> <td>T0</td> <td>UCSF (spine resection)</td> <td>WES ×4, WGS, WTS</td> </tr><tr> <td>2024-06-06</td> <td>T1</td> <td>UCLA (Th4 biopsy)</td> <td>WGS, WTS, scRNA-seq</td> </tr><tr> <td>2025-01-28</td> <td>T2</td> <td>UCLA (Th4–Th5 biopsy)</td> <td>WGS, WTS, scRNA-seq</td> </tr><tr> <td>2025-04-17</td> <td>T3</td> <td>MSKCC (Th4–Th5 excision)</td> <td>scRNA-seq</td> </tr> </tbody> </table> </div> </div> <!-- ============================================================ --> <!-- Data Access --> <!-- ============================================================ --> <section class="data-section" id="access"> <h2>Data Access</h2> <p>
Every file in the <code>s3://sid-sijbrandij-osteosarc-dataset</code> bucket is publicly
          readable over HTTPS &mdash; no account or key is needed. You can download any file directly:
</p> <pre class="cmd-block">curl -O https://sid-sijbrandij-osteosarc-dataset.s3.us-west-2.amazonaws.com/&lt;path/to/file&gt;</pre> <p>
For bulk downloads, the bucket includes a
<a href="https://sid-sijbrandij-osteosarc-dataset.s3.us-west-2.amazonaws.com/manifest.txt" target="_blank" rel="noopener">manifest.txt</a>
listing the full download URL of every file, one per line. Fetch it, filter for the files
          you want, and feed the list to <code>wget</code>. For example, to download every VCF file
          while preserving the folder structure:
</p> <pre class="cmd-block"><span class="cmd-comment"># 1. grab the manifest and keep only the VCF URLs</span>
curl -s https://sid-sijbrandij-osteosarc-dataset.s3.us-west-2.amazonaws.com/manifest.txt | grep '\.vcf\.gz$' &gt; urls.txt

<span class="cmd-comment"># 2. download them all, recreating the bucket's directory layout</span>
wget -x -nH -i urls.txt</pre> <p>
Or, with the <a href="https://docs.aws.amazon.com/cli/latest/reference/s3/" target="_blank" rel="noopener">AWS CLI</a>
(no credentials needed for this public bucket), sync a whole folder at once:
</p> <pre class="cmd-block">aws s3 sync s3://sid-sijbrandij-osteosarc-dataset/&lt;folder&gt;/ ./&lt;folder&gt;/ --no-sign-request</pre> <p>
Swap the <code>grep</code> pattern for whatever you need &mdash; e.g.
<code>grep '\.bam$'</code> for all BAM files, or
<code>grep '^.*hudson_lab/'</code> for one collaborator&rsquo;s folder.
</p> <h3>Verify your downloads</h3> <p>
MD5 checksums for the curated analysis deliverables are published at
<a href="https://sid-sijbrandij-osteosarc-dataset.s3.us-west-2.amazonaws.com/md5sums.txt" target="_blank" rel="noopener">md5sums.txt</a>
(coreutils <code>md5sum -c</code> format, one <code>&lt;md5&gt;&nbsp;&nbsp;&lt;path&gt;</code> per line).
          After downloading, verify integrity from the bucket root:
</p> <pre class="cmd-block"><span class="cmd-comment"># fetch the checksum manifest, then check the files you downloaded</span>
curl -O https://sid-sijbrandij-osteosarc-dataset.s3.us-west-2.amazonaws.com/md5sums.txt
md5sum -c --ignore-missing md5sums.txt</pre> <p> <code>--ignore-missing</code> checks only the files present in your current directory tree, so you
          don&rsquo;t need the whole dataset. Checksums cover the curated deliverables
          (<code>hudson_lab</code>, <code>ucsf</code>, <code>kamil</code>, <code>ONT</code>, &hellip;), not every
          raw imaging tile.
</p> <h3>Pattern Unify System (RCRF)</h3> <p>
Several datasets are indexed in the <span class="contrib contrib-rcrf">RCRF Pattern Unify</span> system
          for programmatic access.
</p> <ol> <li>Email <a href="/cdn-cgi/l/email-protection#6a1f04030c13470b0e0703042a1809180c4405180d"><span class="__cf_email__" data-cfemail="3f4a51565946125e5b5256517f4d5c4d5911504d58">[email&#160;protected]</span></a> to request access.</li> <li>Go to <a href="https://data-commons.rcrf-dev.org" target="_blank" rel="noopener">data-commons.rcrf-dev.org</a> and create an account with the same email.</li> <li>Use the <a href="https://github.com/rcrf/patternq" target="_blank" rel="noopener">patternq</a> Python library to query data.</li> </ol> <div class="data-note"> <p><strong>Notebooks:</strong> <a href="https://colab.research.google.com/drive/1fEFvCdUfQNn4jnSJRLCZUQDrXEf_Ujs7?usp=sharing" target="_blank" rel="noopener">Example data access workflow</a> &middot;
<a href="https://colab.research.google.com/drive/1mZL6SyvmVDxtBjTXUs8h4TgFF0Vf_pDE?usp=sharing#scrollTo=RmrXjcpBDvMQ" target="_blank" rel="noopener">Ben&rsquo;s notebook for LLM/ML analysis</a> </p> </div> </section> <!-- ============================================================ --> <!-- File Browser --> <!-- ============================================================ --> <section class="data-section" id="file-browser"> <h2>File Browser</h2> <p>Browse and download every file in <code>s3://sid-sijbrandij-osteosarc-dataset</code>. Click a folder to navigate in, or search across all files.</p> <div class="bucket-donut" aria-label="Bucket total 37.2 TB across 395,536 files" data-astro-cid-ksc4iw5r> <figure class="bd-chart" data-astro-cid-ksc4iw5r> <svg viewBox="0 0 240 240" role="img" aria-hidden="true" data-astro-cid-ksc4iw5r> <g transform="rotate(-90 120 120)" data-astro-cid-ksc4iw5r> <circle cx="120" cy="120" r="84" fill="none" stroke="var(--bd-track)" stroke-width="30" data-astro-cid-ksc4iw5r></circle> <circle class="bd-seg" cx="120" cy="120" r="84" fill="none" stroke="#2a78d6" stroke-width="30" stroke-dasharray="187.6696312623899 340.1179345406954" stroke-dashoffset="0" data-astro-cid-ksc4iw5r></circle><circle class="bd-seg" cx="120" cy="120" r="84" fill="none" stroke="#eb6834" stroke-width="30" stroke-dasharray="109.04007309635864 418.74749270672663" stroke-dashoffset="-189.6696312623899" data-astro-cid-ksc4iw5r></circle><circle class="bd-seg" cx="120" cy="120" r="84" fill="none" stroke="#1baf7a" stroke-width="30" stroke-dasharray="84.3793834961844 443.40818230690087" stroke-dashoffset="-300.7097043587485" data-astro-cid-ksc4iw5r></circle><circle class="bd-seg" cx="120" cy="120" r="84" fill="none" stroke="#eda100" stroke-width="30" stroke-dasharray="27.922646336282444 499.8649194668028" stroke-dashoffset="-387.0890878549329" data-astro-cid-ksc4iw5r></circle><circle class="bd-seg" cx="120" cy="120" r="84" fill="none" stroke="#e87ba4" stroke-width="30" stroke-dasharray="20.211420795326113 507.5761450077592" stroke-dashoffset="-417.0117341912154" data-astro-cid-ksc4iw5r></circle><circle class="bd-seg" cx="120" cy="120" r="84" fill="none" stroke="#008300" stroke-width="30" stroke-dasharray="15.849267866799153 511.9382979362861" stroke-dashoffset="-439.2231549865415" data-astro-cid-ksc4iw5r></circle><circle class="bd-seg" cx="120" cy="120" r="84" fill="none" stroke="#4a3aa7" stroke-width="30" stroke-dasharray="13.981719537435055 513.8058462656502" stroke-dashoffset="-457.07242285334064" data-astro-cid-ksc4iw5r></circle><circle class="bd-seg" cx="120" cy="120" r="84" fill="none" stroke="#e34948" stroke-width="30" stroke-dasharray="13.870293882281738 513.9172719208035" stroke-dashoffset="-473.05414239077567" data-astro-cid-ksc4iw5r></circle><circle class="bd-seg" cx="120" cy="120" r="84" fill="none" stroke="#94a3b8" stroke-width="30" stroke-dasharray="36.86312953002781 490.92443627305744" stroke-dashoffset="-488.9244362730574" data-astro-cid-ksc4iw5r></circle> </g> <text class="bd-total" x="120" y="114" text-anchor="middle" data-astro-cid-ksc4iw5r>37.2 TB</text> <text class="bd-total-sub" x="120" y="136" text-anchor="middle" data-astro-cid-ksc4iw5r>total data</text> <text class="bd-files" x="120" y="154" text-anchor="middle" data-astro-cid-ksc4iw5r>395,536 files</text> </svg> </figure> <ul class="bd-legend" data-astro-cid-ksc4iw5r> <li class="bd-legend-item" data-astro-cid-ksc4iw5r> <span class="bd-swatch" style="background:#2a78d6" data-astro-cid-ksc4iw5r></span> <a class="bd-name" href="#path=hudson_lab" data-astro-cid-ksc4iw5r>hudson_lab</a> <span class="bd-size" data-astro-cid-ksc4iw5r>13.4 TB</span> <span class="bd-pct" data-astro-cid-ksc4iw5r>35.9%</span> </li><li class="bd-legend-item" data-astro-cid-ksc4iw5r> <span class="bd-swatch" style="background:#eb6834" data-astro-cid-ksc4iw5r></span> <a class="bd-name" href="#path=ucsf" data-astro-cid-ksc4iw5r>ucsf</a> <span class="bd-size" data-astro-cid-ksc4iw5r>7.8 TB</span> <span class="bd-pct" data-astro-cid-ksc4iw5r>21.0%</span> </li><li class="bd-legend-item" data-astro-cid-ksc4iw5r> <span class="bd-swatch" style="background:#1baf7a" data-astro-cid-ksc4iw5r></span> <a class="bd-name" href="#path=kamil" data-astro-cid-ksc4iw5r>kamil</a> <span class="bd-size" data-astro-cid-ksc4iw5r>6.1 TB</span> <span class="bd-pct" data-astro-cid-ksc4iw5r>16.4%</span> </li><li class="bd-legend-item" data-astro-cid-ksc4iw5r> <span class="bd-swatch" style="background:#eda100" data-astro-cid-ksc4iw5r></span> <a class="bd-name" href="#path=genomics" data-astro-cid-ksc4iw5r>genomics</a> <span class="bd-size" data-astro-cid-ksc4iw5r>2.1 TB</span> <span class="bd-pct" data-astro-cid-ksc4iw5r>5.7%</span> </li><li class="bd-legend-item" data-astro-cid-ksc4iw5r> <span class="bd-swatch" style="background:#e87ba4" data-astro-cid-ksc4iw5r></span> <a class="bd-name" href="#path=vendor" data-astro-cid-ksc4iw5r>vendor</a> <span class="bd-size" data-astro-cid-ksc4iw5r>1.6 TB</span> <span class="bd-pct" data-astro-cid-ksc4iw5r>4.2%</span> </li><li class="bd-legend-item" data-astro-cid-ksc4iw5r> <span class="bd-swatch" style="background:#008300" data-astro-cid-ksc4iw5r></span> <a class="bd-name" href="#path=genomics_reprocessing" data-astro-cid-ksc4iw5r>genomics_reprocessing</a> <span class="bd-size" data-astro-cid-ksc4iw5r>1.3 TB</span> <span class="bd-pct" data-astro-cid-ksc4iw5r>3.4%</span> </li><li class="bd-legend-item" data-astro-cid-ksc4iw5r> <span class="bd-swatch" style="background:#4a3aa7" data-astro-cid-ksc4iw5r></span> <a class="bd-name" href="#path=ONT" data-astro-cid-ksc4iw5r>ONT</a> <span class="bd-size" data-astro-cid-ksc4iw5r>1.1 TB</span> <span class="bd-pct" data-astro-cid-ksc4iw5r>3.0%</span> </li><li class="bd-legend-item" data-astro-cid-ksc4iw5r> <span class="bd-swatch" style="background:#e34948" data-astro-cid-ksc4iw5r></span> <a class="bd-name" href="#path=wgs" data-astro-cid-ksc4iw5r>wgs</a> <span class="bd-size" data-astro-cid-ksc4iw5r>1.1 TB</span> <span class="bd-pct" data-astro-cid-ksc4iw5r>3.0%</span> </li><li class="bd-legend-item" data-astro-cid-ksc4iw5r> <span class="bd-swatch" style="background:#94a3b8" data-astro-cid-ksc4iw5r></span> <span class="bd-name bd-name-other" data-astro-cid-ksc4iw5r>Other <span class="bd-folders" data-astro-cid-ksc4iw5r>(21 folders)</span></span> <span class="bd-size" data-astro-cid-ksc4iw5r>2.7 TB</span> <span class="bd-pct" data-astro-cid-ksc4iw5r>7.4%</span> </li> </ul> </div> <div class="fb-shell"> <div class="file-search"> <div class="file-search-box"> <svg class="file-search-icon" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"></circle><line x1="21" y1="21" x2="16.65" y2="16.65"></line></svg> <input class="file-search-input" type="text" placeholder="Search all files, or clear to browse..." id="bucket-search" autocomplete="off" disabled> </div> </div> <div class="fb" id="file-browser-view" hidden> <div class="fb-header"> <nav class="fb-breadcrumbs" id="fb-breadcrumbs" aria-label="Folder path"></nav> <button type="button" class="fb-download-btn" id="fb-download-btn" disabled> <svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4"></path><polyline points="7 10 12 15 17 10"></polyline><line x1="12" y1="15" x2="12" y2="3"></line></svg>
Download folder
</button> </div> <div class="fb-table-wrap"> <table class="fb-table" id="fb-table"> <thead> <tr><th class="fb-col-name">Name</th><th class="fb-col-size">Size</th><th class="fb-col-mtime">Modified</th></tr> </thead> <tbody id="fb-tbody"></tbody> </table> </div> <div class="fb-more" id="fb-more" hidden></div> </div> <div class="file-search-results" id="bucket-search-results"></div> </div> <div class="file-search-status" id="bucket-search-status">Loading file index&hellip;</div> </section> <!-- Download Folder modal --> <div class="fb-modal" id="fb-modal" hidden aria-hidden="true" role="dialog" aria-modal="true" aria-labelledby="fb-modal-title"> <div class="fb-modal-backdrop" data-fb-close></div> <div class="fb-modal-panel"> <div class="fb-modal-head"> <h3 id="fb-modal-title">Download folder</h3> <button type="button" class="fb-modal-close" data-fb-close aria-label="Close">&times;</button> </div> <div class="fb-modal-sub" id="fb-modal-sub"></div> <div class="fb-modal-tabs" id="fb-modal-tabs"> <button type="button" class="fb-tab active" data-tab="curl">curl</button> <button type="button" class="fb-tab" data-tab="wget">wget</button> <button type="button" class="fb-tab" data-tab="aws">aws CLI</button> </div> <div class="fb-modal-body"> <div class="fb-modal-note" id="fb-modal-note" hidden></div> <div class="fb-modal-cmdwrap"> <button type="button" class="fb-copy-btn" id="fb-copy-btn">Copy</button> <pre class="fb-modal-cmds" id="fb-modal-cmds"></pre> </div> </div> </div> </div> <!-- ============================================================ --> <!-- Overview --> <!-- ============================================================ --> <section class="data-section" id="overview"> <h2>Overview</h2> <p>
The dataset spans four clinical time points and includes whole genome sequencing (WGS),
          whole exome sequencing (WES), bulk RNA-seq, single-cell RNA-seq (Illumina &amp; Oxford Nanopore),
          spatial transcriptomics, flow cytometry, and pathology imaging.
</p> <p class="sm-legend">
Bulk sequencing coverage by provider and time point. WGS and WES cells show which
          tissues are available; RNA cells mark availability.
</p> <div class="data-table-wrap" data-astro-cid-cihxpmr5> <table class="data-table summary-matrix" data-astro-cid-cihxpmr5> <caption class="sm-caption" data-astro-cid-cihxpmr5>Whole Genome Sequencing (WGS)</caption> <colgroup data-astro-cid-cihxpmr5> <col style="width:28%" data-astro-cid-cihxpmr5> <col style="width:24.0000%" data-astro-cid-cihxpmr5><col style="width:24.0000%" data-astro-cid-cihxpmr5><col style="width:24.0000%" data-astro-cid-cihxpmr5> </colgroup> <thead data-astro-cid-cihxpmr5> <tr data-astro-cid-cihxpmr5> <th data-astro-cid-cihxpmr5>Provider</th> <th class="sm-col" data-astro-cid-cihxpmr5> <span class="sm-tp" data-astro-cid-cihxpmr5>T0</span> <span class="sm-date" data-astro-cid-cihxpmr5>Dec 2022</span> </th><th class="sm-col" data-astro-cid-cihxpmr5> <span class="sm-tp" data-astro-cid-cihxpmr5>T1</span> <span class="sm-date" data-astro-cid-cihxpmr5>Jun 2024</span> </th><th class="sm-col" data-astro-cid-cihxpmr5> <span class="sm-tp" data-astro-cid-cihxpmr5>T2</span> <span class="sm-date" data-astro-cid-cihxpmr5>Jan 2025</span> </th> </tr> </thead> <tbody data-astro-cid-cihxpmr5> <tr data-astro-cid-cihxpmr5> <td data-astro-cid-cihxpmr5><span class="contrib contrib-rcrf" data-astro-cid-cihxpmr5>Personalis</span></td> <td class="sm-cell" data-astro-cid-cihxpmr5>Tumor, Normal</td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td> </tr><tr data-astro-cid-cihxpmr5> <td data-astro-cid-cihxpmr5><span class="contrib contrib-ucla" data-astro-cid-cihxpmr5>UCLA</span></td> <td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td><td class="sm-cell" data-astro-cid-cihxpmr5>Tumor, Normal, Organoid</td><td class="sm-cell" data-astro-cid-cihxpmr5>Tumor</td> </tr><tr data-astro-cid-cihxpmr5> <td data-astro-cid-cihxpmr5><span class="contrib contrib-natera" data-astro-cid-cihxpmr5>Natera</span></td> <td class="sm-cell" data-astro-cid-cihxpmr5>Tumor, Normal</td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td> </tr> </tbody> </table> </div> <div class="data-table-wrap" data-astro-cid-cihxpmr5> <table class="data-table summary-matrix" data-astro-cid-cihxpmr5> <caption class="sm-caption" data-astro-cid-cihxpmr5>Whole Exome Sequencing (WES)</caption> <colgroup data-astro-cid-cihxpmr5> <col style="width:28%" data-astro-cid-cihxpmr5> <col style="width:24.0000%" data-astro-cid-cihxpmr5><col style="width:24.0000%" data-astro-cid-cihxpmr5><col style="width:24.0000%" data-astro-cid-cihxpmr5> </colgroup> <thead data-astro-cid-cihxpmr5> <tr data-astro-cid-cihxpmr5> <th data-astro-cid-cihxpmr5>Provider</th> <th class="sm-col" data-astro-cid-cihxpmr5> <span class="sm-tp" data-astro-cid-cihxpmr5>T0</span> <span class="sm-date" data-astro-cid-cihxpmr5>Dec 2022</span> </th><th class="sm-col" data-astro-cid-cihxpmr5> <span class="sm-tp" data-astro-cid-cihxpmr5>T1</span> <span class="sm-date" data-astro-cid-cihxpmr5>Jun 2024</span> </th><th class="sm-col" data-astro-cid-cihxpmr5> <span class="sm-tp" data-astro-cid-cihxpmr5>T2</span> <span class="sm-date" data-astro-cid-cihxpmr5>Jan 2025</span> </th> </tr> </thead> <tbody data-astro-cid-cihxpmr5> <tr data-astro-cid-cihxpmr5> <td data-astro-cid-cihxpmr5><span class="contrib contrib-bostongene" data-astro-cid-cihxpmr5>Boston Gene</span></td> <td class="sm-cell" data-astro-cid-cihxpmr5>Tumor, Normal</td><td class="sm-cell" data-astro-cid-cihxpmr5>Tumor, Normal</td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td> </tr><tr data-astro-cid-cihxpmr5> <td data-astro-cid-cihxpmr5><span class="contrib contrib-tempus" data-astro-cid-cihxpmr5>Tempus</span></td> <td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td><td class="sm-cell" data-astro-cid-cihxpmr5>Tumor, Normal</td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td> </tr><tr data-astro-cid-cihxpmr5> <td data-astro-cid-cihxpmr5><span class="contrib contrib-cegat" data-astro-cid-cihxpmr5>CeGaT</span></td> <td class="sm-cell" data-astro-cid-cihxpmr5>Tumor, Normal</td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td> </tr><tr data-astro-cid-cihxpmr5> <td data-astro-cid-cihxpmr5><span class="contrib contrib-natera" data-astro-cid-cihxpmr5>Natera</span></td> <td class="sm-cell" data-astro-cid-cihxpmr5>Tumor, Normal</td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td> </tr> </tbody> </table> </div> <div class="data-table-wrap" data-astro-cid-cihxpmr5> <table class="data-table summary-matrix" data-astro-cid-cihxpmr5> <caption class="sm-caption" data-astro-cid-cihxpmr5>Bulk RNA-seq</caption> <colgroup data-astro-cid-cihxpmr5> <col style="width:28%" data-astro-cid-cihxpmr5> <col style="width:24.0000%" data-astro-cid-cihxpmr5><col style="width:24.0000%" data-astro-cid-cihxpmr5><col style="width:24.0000%" data-astro-cid-cihxpmr5> </colgroup> <thead data-astro-cid-cihxpmr5> <tr data-astro-cid-cihxpmr5> <th data-astro-cid-cihxpmr5>Provider</th> <th class="sm-col" data-astro-cid-cihxpmr5> <span class="sm-tp" data-astro-cid-cihxpmr5>T0</span> <span class="sm-date" data-astro-cid-cihxpmr5>Dec 2022</span> </th><th class="sm-col" data-astro-cid-cihxpmr5> <span class="sm-tp" data-astro-cid-cihxpmr5>T1</span> <span class="sm-date" data-astro-cid-cihxpmr5>Jun 2024</span> </th><th class="sm-col" data-astro-cid-cihxpmr5> <span class="sm-tp" data-astro-cid-cihxpmr5>T2</span> <span class="sm-date" data-astro-cid-cihxpmr5>Jan 2025</span> </th> </tr> </thead> <tbody data-astro-cid-cihxpmr5> <tr data-astro-cid-cihxpmr5> <td data-astro-cid-cihxpmr5><span class="contrib contrib-bostongene" data-astro-cid-cihxpmr5>Boston Gene</span></td> <td class="sm-cell" data-astro-cid-cihxpmr5>✓</td><td class="sm-cell" data-astro-cid-cihxpmr5>✓</td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td> </tr><tr data-astro-cid-cihxpmr5> <td data-astro-cid-cihxpmr5><span class="contrib contrib-tempus" data-astro-cid-cihxpmr5>Tempus</span></td> <td class="sm-cell" data-astro-cid-cihxpmr5>✓</td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td> </tr><tr data-astro-cid-cihxpmr5> <td data-astro-cid-cihxpmr5><span class="contrib contrib-ucla" data-astro-cid-cihxpmr5>UCLA</span></td> <td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td><td class="sm-cell" data-astro-cid-cihxpmr5>✓</td> </tr><tr data-astro-cid-cihxpmr5> <td data-astro-cid-cihxpmr5><span class="contrib contrib-cegat" data-astro-cid-cihxpmr5>CeGaT</span></td> <td class="sm-cell" data-astro-cid-cihxpmr5>✓</td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td><td class="sm-cell" data-astro-cid-cihxpmr5><span class="sm-empty" data-astro-cid-cihxpmr5>&mdash;</span></td> </tr> </tbody> </table> </div> <div class="data-note"> <p><strong>Contributors:</strong> <span class="contrib contrib-bostongene">Boston Gene</span> <span class="contrib contrib-ucla">UCLA</span> <span class="contrib contrib-ucsf">UCSF</span> <span class="contrib contrib-tempus">Tempus</span> <span class="contrib contrib-elucidate">Elucidate Bio</span> <span class="contrib contrib-hudson">Hudson Lab</span> <span class="contrib contrib-pipeline">Jeremiah &amp; Alfredo</span> <span class="contrib contrib-rcrf">RCRF / Pattern Unify</span> <span class="contrib contrib-cegat">CeGaT</span> <span class="contrib contrib-natera">Natera</span> </p> </div> </section> <!-- ============================================================ --> <!-- Bulk DNA Sequencing --> <!-- ============================================================ --> <section class="data-section" id="bulk-dna"> <h2>Bulk DNA Sequencing</h2> <p>DNA sequencing is available at four time points (T0&ndash;T3), including both whole exome (WES) and whole genome (WGS) data.</p> <h3>Whole Genome Sequencing (WGS) &mdash; FASTQ</h3> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th><th data-astro-cid-cqsjuctf>Provider</th><th data-astro-cid-cqsjuctf>Tissue</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-rcrf" data-astro-cid-cqsjuctf>Personalis</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor + Normal </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-bulk/2022.12.16/DNA/2022.12.16.dna.personalis.WGS/fastqs</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>198 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>18</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucla" data-astro-cid-cqsjuctf>UCLA</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-bulk/2024.06.06/DNA/2024.06.06.dna.WGS/raw/tumor</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>184 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>2</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucla" data-astro-cid-cqsjuctf>UCLA</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Blood Normal </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-bulk/2024.06.06/DNA/2024.06.06.dna.WGS/raw/normal-blood</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>115 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>2</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucla" data-astro-cid-cqsjuctf>UCLA</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Organoid </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-bulk/2024.06.06/DNA/2024.06.06.dna.WGS/raw/organoid</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>185 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>2</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucla" data-astro-cid-cqsjuctf>UCLA</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-bulk/2025.01.06/DNA/2025.01.06.dna.WGS/fastqs/tumor</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>274 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr> </tbody> </table> </div> <h3>Whole Genome Sequencing (WGS) &mdash; BAM (reprocessed)</h3> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th><th data-astro-cid-cqsjuctf>Provider</th><th data-astro-cid-cqsjuctf>Tissue</th><th data-astro-cid-cqsjuctf>Processing</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-natera" data-astro-cid-cqsjuctf>Natera</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td><td class="ct-assay" data-astro-cid-cqsjuctf> Vendor BAM · GRCh37 · T/N inferred </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>vendor/natera/0198480a-d9d5-7fe4-baed-4d696baf665b.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>428 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-natera" data-astro-cid-cqsjuctf>Natera</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Normal </td><td class="ct-assay" data-astro-cid-cqsjuctf> Vendor BAM · GRCh37 · T/N inferred </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>vendor/natera/0196b23b-c139-7fb0-91ff-65f19670d743.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>154 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucla" data-astro-cid-cqsjuctf>UCLA</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td><td class="ct-assay" data-astro-cid-cqsjuctf> BQSR </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics_reprocessing/DNA/T1_2024_BAM/preprocessing/recalibrated/tumor/BAM</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>186 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>2</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucla" data-astro-cid-cqsjuctf>UCLA</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Blood Normal </td><td class="ct-assay" data-astro-cid-cqsjuctf> BQSR, cleaned </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>wgs_cleaned/blood.ss.cleaned.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>117 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucla" data-astro-cid-cqsjuctf>UCLA</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Organoid </td><td class="ct-assay" data-astro-cid-cqsjuctf> BQSR </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics_reprocessing/DNA/T1_2024_BAM/preprocessing/recalibrated/organoid</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>286 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucla" data-astro-cid-cqsjuctf>UCLA</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td><td class="ct-assay" data-astro-cid-cqsjuctf> BQSR </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics_reprocessing/DNA/T2_2025_01_BAM</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>442 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>2</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucla" data-astro-cid-cqsjuctf>UCLA</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td><td class="ct-assay" data-astro-cid-cqsjuctf> BQSR, cleaned </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>wgs_cleaned/SG.wgs.UCLA.2025.01.tumor_cleaned.recal.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>363 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr> </tbody> </table> </div> <div class="data-note"> <p><strong>Coverage:</strong> T2 January 2025 WGS &mdash; 130.97&times;. &ensp;T1 Blood Normal WGS &mdash; 62.56&times;.</p> </div> <h3>Variant Calling (WGS)</h3> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th><th data-astro-cid-cqsjuctf>Pipeline</th><th data-astro-cid-cqsjuctf>Callers</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-pipeline" data-astro-cid-cqsjuctf>Sarek 3.5.1</span> </td><td class="ct-callers" data-astro-cid-cqsjuctf> ASCAT, CNVkit, FreeBayes, HaplotypeCaller, Manta, Mutect2, Strelka </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics_reprocessing/DNA/T1_2024_WGS_sarek_variants</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>20.8 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>369</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-pipeline" data-astro-cid-cqsjuctf>Sarek 3.5.1</span> </td><td class="ct-callers" data-astro-cid-cqsjuctf> ASCAT, Manta, Mutect2, Strelka </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics_reprocessing/DNA/T2_2025_01_WGS_sarek_variants/variant_calling</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>2.0 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>42</td> </tr> </tbody> </table> </div> <h3>Whole Exome Sequencing (WES) &mdash; FASTQ</h3> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th><th data-astro-cid-cqsjuctf>Provider</th><th data-astro-cid-cqsjuctf>Tissue</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-bostongene" data-astro-cid-cqsjuctf>Boston Gene</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-bulk/2022.12.16/DNA/2022.12.16.dna.bostongene.WES/fastqs/tumor</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>19.5 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>2</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-bostongene" data-astro-cid-cqsjuctf>Boston Gene</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Normal (Blood) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-bulk/2022.12.16/DNA/2022.12.16.dna.bostongene.WES/fastqs/normal-blood</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>9.9 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>2</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-cegat" data-astro-cid-cqsjuctf>CeGaT</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>vendor/cegat/P116686_2_S000048</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>40.2 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>18</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-cegat" data-astro-cid-cqsjuctf>CeGaT</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Normal </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>vendor/cegat/P116686_1_S000048</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>21.5 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>13</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-bostongene" data-astro-cid-cqsjuctf>Boston Gene</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-bulk/2024.06.06/DNA/2024.06.06.dna.bostongene.WES/raw/tumor</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>16.9 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>2</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-tempus" data-astro-cid-cqsjuctf>Tempus</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>rna-seq/tempus/TL-24-5GQLV9WSXQ/wes</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>12.6 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>7</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-tempus" data-astro-cid-cqsjuctf>Tempus</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor + Normal </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>rna-seq/tempus/TL-24-ALMY2X4KMV/WES</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>42.6 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>11</td> </tr> </tbody> </table> </div> <h3>Whole Exome Sequencing (WES) &mdash; BAM</h3> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th><th data-astro-cid-cqsjuctf>Provider</th><th data-astro-cid-cqsjuctf>Tissue</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-bostongene" data-astro-cid-cqsjuctf>Boston Gene</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-duplicates/sarek_bostongene22/sarek_bostongene22_alignment/alignment/preprocessing/recalibrated/tumor_bg22/tumor_bg22.recal.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>22.7 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-bostongene" data-astro-cid-cqsjuctf>Boston Gene</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Normal (Blood) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-duplicates/sarek_bostongene22/sarek_bostongene22_alignment/alignment/preprocessing/recalibrated/normal_bg22/normal_bg22.recal.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>11.9 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-cegat" data-astro-cid-cqsjuctf>CeGaT</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>vendor/cegat/P116686_2_S000048/P116686_2.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>12.0 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-cegat" data-astro-cid-cqsjuctf>CeGaT</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Normal </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>vendor/cegat/P116686_1_S000048/P116686_1.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>10.1 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-natera" data-astro-cid-cqsjuctf>Natera</span> (Ashion) </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>vendor/natera/28578842.1-2-FXG_C069-018634_WF00085349_I006353-01D-01L_TumorDNA.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>20.9 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-natera" data-astro-cid-cqsjuctf>Natera</span> (Ashion) </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Normal </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>vendor/natera/28578183.3-2-BXE_C069-018634_WF00085349_i005199-01D-01L_GermlineDNA.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>10.2 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-bostongene" data-astro-cid-cqsjuctf>Boston Gene</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-duplicates/sarek24_bostongene/alignment/preprocessing/recalibrated/tumor_bg24/tumor_bg24.recal.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>20.9 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-bostongene" data-astro-cid-cqsjuctf>Boston Gene</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Normal (Blood) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-duplicates/sarek24_bostongene/alignment/preprocessing/recalibrated/normal_bg24/normal_bg24.recal.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>11.9 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-tempus" data-astro-cid-cqsjuctf>Tempus</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>rna-seq/tempus/TL-24-5GQLV9WSXQ/wes/TL-24-5GQLV9WSXQ_T.sorted.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>4.7 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-tempus" data-astro-cid-cqsjuctf>Tempus</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Tumor </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>rna-seq/tempus/TL-24-ALMY2X4KMV/WES/TL-24-ALMY2X4KMV_T.sorted.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>11.1 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-tempus" data-astro-cid-cqsjuctf>Tempus</span> </td><td class="ct-tissue" data-astro-cid-cqsjuctf> Normal (Blood) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>rna-seq/tempus/TL-24-ALMY2X4KMV/WES/TL-24-ALMY2X4KMV_N.sorted.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>6.8 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr> </tbody> </table> </div> <div class="data-note"> <p><strong>Vendor panels (CeGaT, Natera) &mdash; read before combining:</strong> these
            2026 deliveries sequence T0 material but are aligned to <strong>GRCh37, not hg38</strong>
(CeGaT: hg19 primary assembly, 25 contigs; Natera/Ashion: hs37d5, 86 contigs), with
            differing <code>chr</code>-prefix conventions &mdash; lift over or realign before joining
            the project&rsquo;s hg38 analyses. CeGaT is a hybrid-capture WES-scale panel (37.3&nbsp;Mb)
            with germline/somatic/CNV calls; <code>P116686_2_somatic.tsv</code> holds the somatic
            calls. Natera&rsquo;s WGS tumour/normal assignment is <strong>inferred from allele
            fractions, not vendor-confirmed</strong> &mdash; verify before somatic use. Natera also
            provides FASTQ regenerated from the BAMs at
<code>vendor/natera/fastq/</code>.</p> </div> </section> <!-- ============================================================ --> <!-- Bulk RNA Sequencing --> <!-- ============================================================ --> <section class="data-section" id="bulk-rna"> <h2>Bulk RNA Sequencing</h2> <p>Bulk RNA-sequencing is available at three tumor time points (T0, T1, T2), from Boston Gene, Tempus, UCLA, and CeGaT. The CeGaT tumor RNA (STAR-aligned to hg19/GRCh37) is delivered inside its <code>P116686_2</code> WES sample folder.</p> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th><th data-astro-cid-cqsjuctf>Provider</th><th data-astro-cid-cqsjuctf>Assay</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-bostongene" data-astro-cid-cqsjuctf>Boston Gene</span> </td><td class="ct-assay" data-astro-cid-cqsjuctf> FASTQ </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>rna-seq/fastq/bostongene_2022</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>9.9 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>2</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-bostongene" data-astro-cid-cqsjuctf>Boston Gene</span> </td><td class="ct-assay" data-astro-cid-cqsjuctf> STAR alignments </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-bulk/2022.12.16/RNA/2022.12.16.rna.bostongene/processed</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>40.6 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>13</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-cegat" data-astro-cid-cqsjuctf>CeGaT</span> </td><td class="ct-assay" data-astro-cid-cqsjuctf> Tumor RNA — STAR BAM (+ FASTQ) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>vendor/cegat/P116686_2_S000048/P116686_3.bam</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>7.8 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-tempus" data-astro-cid-cqsjuctf>Tempus</span> </td><td class="ct-assay" data-astro-cid-cqsjuctf> FASTQ </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>rna-seq/fastq/tempus_2022</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>2.6 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-bostongene" data-astro-cid-cqsjuctf>Boston Gene</span> </td><td class="ct-assay" data-astro-cid-cqsjuctf> FASTQ </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>rna-seq/fastq/bostongene_2024</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>8.2 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>2</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-bostongene" data-astro-cid-cqsjuctf>Boston Gene</span> </td><td class="ct-assay" data-astro-cid-cqsjuctf> STAR alignments </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-bulk/2024.06.06/RNA/2024.06.06.rna.bostongene/processed</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>44.2 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>7</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucla" data-astro-cid-cqsjuctf>UCLA</span> </td><td class="ct-assay" data-astro-cid-cqsjuctf> FASTQ </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>rna-seq/fastq/ucla_2025</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>10.2 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>2</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucla" data-astro-cid-cqsjuctf>UCLA</span> </td><td class="ct-assay" data-astro-cid-cqsjuctf> STAR alignments </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>genomics/genomics-bulk/2025.01.06/RNA/2025.01.06.rna.ucla-core/processed/STAR</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>28.7 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>9</td> </tr> </tbody> </table> </div> </section> <!-- ============================================================ --> <!-- Single Cell RNA-seq (Tumor) --> <!-- ============================================================ --> <section class="data-section" id="scrna-tumor"> <h2>Single Cell RNA-seq (Tumor)</h2> <p>
Tumor single-cell and long-read RNA sequencing data from UCSF, spanning time points T1&ndash;T3.
          Includes 10x Illumina scRNA-seq plus Oxford Nanopore (ONT) and PacBio long-read sequencing.
</p> <h3>Illumina scRNA-seq (UCSF)</h3> <p>All Illumina scRNA-seq data generated by <span class="contrib contrib-ucsf">UCSF</span>.</p> <h4>FASTQ</h4> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th><th data-astro-cid-cqsjuctf>Library</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-assay" data-astro-cid-cqsjuctf> GEX </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T1/FASTQ/IPISRC044_T1_SCG1</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>36.9 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-assay" data-astro-cid-cqsjuctf> TCR </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T1/FASTQ/IPISRC044_T1_TCR</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>7.4 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-assay" data-astro-cid-cqsjuctf> BCR </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T1/FASTQ/IPISRC044_T1_BCR</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>7.7 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td><td class="ct-assay" data-astro-cid-cqsjuctf> GEX </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T2/FASTQ/IPISRC044_T2_SCG1</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>38.4 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td><td class="ct-assay" data-astro-cid-cqsjuctf> TCR </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T2/FASTQ/IPISRC044_T2_TCR</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>22.0 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td><td class="ct-assay" data-astro-cid-cqsjuctf> BCR </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T2/FASTQ/IPISRC044_T2_BCR</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>27.5 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td><td class="ct-assay" data-astro-cid-cqsjuctf> ADT / CITE </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T2/FASTQ/IPISRC044_T2_ADT</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>8.3 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Apr 2025 (T3) </td><td class="ct-assay" data-astro-cid-cqsjuctf> GEX </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T3/FASTQ/IPISRC044_T3_SCG1</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>49.1 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Apr 2025 (T3) </td><td class="ct-assay" data-astro-cid-cqsjuctf> GEX (CD45- enriched) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T3/FASTQ/IPISRC044_T3_CD45neg_enriched_illumina</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>60.8 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Apr 2025 (T3) </td><td class="ct-assay" data-astro-cid-cqsjuctf> TCR </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T3/FASTQ/IPISRC044_T3_TCR</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>12.0 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Apr 2025 (T3) </td><td class="ct-assay" data-astro-cid-cqsjuctf> BCR </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T3/FASTQ/IPISRC044_T3_BCR</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>14.2 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Apr 2025 (T3) </td><td class="ct-assay" data-astro-cid-cqsjuctf> ADT / CITE </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T3/FASTQ/IPISRC044_T3_ADT</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>15.4 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>4</td> </tr> </tbody> </table> </div> <h4>Aligned BAMs</h4> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T1/illumina_bams</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>21.1 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>2</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T2/illumina_bams</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>33.8 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>2</td> </tr> </tbody> </table> </div> <h4>Cell Ranger output</h4> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Apr 2025 (T3) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T3/cellranger_output/</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>62.4 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>131</td> </tr> </tbody> </table> </div> <h4>Seurat RDS</h4> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T1/seurat_objects/IPISRC044_T1_scrna_live_processed_annot_101824.rds</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>969 MB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T2/seurat_objects/biopsy_01225.rds</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>3.1 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Apr 2025 (T3) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T3/seurat_objects/biopsy_20250417.rds</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>1.7 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr> </tbody> </table> </div> <h4>Merged Objects (T1 + T2 + T3)</h4> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Description</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-assay" data-astro-cid-cqsjuctf> Loupe object for T1-T2-T3 merge </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/misc_seurat_loupe_objects/T3-T2-T1-merge.loupe.object.UCSF.annot/ucsf_seurat_20250806_100527.cloupe.cloupe</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>378 MB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-assay" data-astro-cid-cqsjuctf> Seurat RDS merged (Harmony-integrated) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/misc_seurat_loupe_objects/src044_for_pfo/072925_IPISRC044_T1_T2_T3_sobj_merged_processed_tcr_bcr_mutMap_tcMap_annot_final.rds</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>5.3 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>1</td> </tr> </tbody> </table> </div> <div class="data-note"> <p><strong>Annotations guide:</strong> Tumor cell labels are in <code>T1_T2_T3_overall_TC_identity</code>.
          Final cell type annotations are in <code>fine_final_annot</code>.
          Cluster labels are in <code>merged_louvain_res1.5</code>.
          Coarse annotations are in <code>coarse_final_annot</code>.</p> </div> <div class="data-note"> <p><strong>Key findings:</strong> Tumor cell percentage (relative to whole sample) decreases by T3, consistent with histopathology.
          Increase in immune infiltration across time points.
          See <a href="https://docs.google.com/presentation/d/11CLZKPKIwV5KHn2EIZjBYJfKlGb6O67cHD2sdMqplX8/edit?slide=id.g39a00333a75_0_73#slide=id.g39a00333a75_0_73" target="_blank" rel="noopener">Darya Orlova&rsquo;s analysis</a>.</p> </div> <h3>Kamil&rsquo;s Tumor scRNA-seq Analysis (GEX, TCR, CNV)</h3> <p>
Re-analysis of tumor scRNA-seq data by <strong>Kamil</strong>, including Cell Ranger multi outputs (GEX + TCR + BCR),
          scanpy-based clustering, cell type prediction, and CNV analysis.
</p> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th><th data-astro-cid-cqsjuctf>Assay</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-assay" data-astro-cid-cqsjuctf> Cell Ranger output </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>kamil/tumor/output/T1</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>29.1 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>113</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td><td class="ct-assay" data-astro-cid-cqsjuctf> Cell Ranger output </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>kamil/tumor/output/T2</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>52.9 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>141</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Apr 2025 (T3) </td><td class="ct-assay" data-astro-cid-cqsjuctf> Cell Ranger output </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>kamil/tumor/output/T3</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>61.2 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>141</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Apr 2025 (T3) </td><td class="ct-assay" data-astro-cid-cqsjuctf> Cell Ranger output (CD45-) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>kamil/tumor/output/T3_CD45neg</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>40.4 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>59</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> T1–T3 </td><td class="ct-assay" data-astro-cid-cqsjuctf> Analysis (h5ad, markers, CNV, TCR) </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>kamil/tumor/analysis</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>3.3 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>70</td> </tr> </tbody> </table> </div> <h3>Oxford Nanopore (ONT) Long-Read RNA-seq</h3> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th><th data-astro-cid-cqsjuctf>Assay</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-assay" data-astro-cid-cqsjuctf> FASTQ </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ONT/IPISRC044_ONT_upload/IPISRC044_ONT/fastqs/IPISRC044_T1_ONT_fastqs/fastq_pass</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>223 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>97</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-assay" data-astro-cid-cqsjuctf> BAMs </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ONT/IPISRC044_ONT_upload/IPISRC044_ONT/processed/IPISRC044_T1_sclrs_ONT/IPISRC044_T1_sclrs_ONT</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>117 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>28</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td><td class="ct-assay" data-astro-cid-cqsjuctf> FASTQ </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ONT/IPISRC044_ONT_upload/IPISRC044_ONT/fastqs/IPISRC044_T2_ONT_fastqs/fastq_pass</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>227 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>97</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jan 2025 (T2) </td><td class="ct-assay" data-astro-cid-cqsjuctf> BAMs </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ONT/IPISRC044_ONT_upload/IPISRC044_ONT/processed/IPISRC044_T2_sclrs_ONT/IPISRC044_T2_sclrs_ONT</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>164 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>28</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Apr 2025 (T3) </td><td class="ct-assay" data-astro-cid-cqsjuctf> FASTQ </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ONT/IPISRC044_ONT_upload/IPISRC044_ONT/fastqs/IPISRC044_T3_ONT_fastqs/fastq_pass</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>235 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>97</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Apr 2025 (T3) </td><td class="ct-assay" data-astro-cid-cqsjuctf> BAMs </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ONT/IPISRC044_ONT_upload/IPISRC044_ONT/processed/IPISRC044_T3_sclrs_ONT/IPISRC044_T3_sclrs_ONT</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>161 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>28</td> </tr> </tbody> </table> </div> <p>All ONT data generated by <span class="contrib contrib-ucsf">UCSF</span></p> <h3>PacBio Single-Cell Long-Read RNA-seq</h3> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th><th data-astro-cid-cqsjuctf>Assay</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Jun 2024 (T1) </td><td class="ct-assay" data-astro-cid-cqsjuctf> Aligned BAMs </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>ucsf/T1/pacbio_bams/IPISRC044_T1_sclrs</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>308 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>54</td> </tr> </tbody> </table> </div> <p>PacBio single-cell long-read data generated by <span class="contrib contrib-ucsf">UCSF</span></p> </section> <!-- ============================================================ --> <!-- Single Cell RNA-seq (PBMC) --> <!-- ============================================================ --> <section class="data-section" id="scrna-pbmc"> <h2>Longitudinal Single Cell RNA-seq (PBMC)</h2> <p>
Sorted live T cells (CD3+) from PBMCs at multiple time points. This dataset
          is growing as additional time points are collected. Data includes up to 2026-01-13.
</p> <h3>Hudson Lab (FASTQ + Seurat + Flow)</h3> <ul> <li><strong>FASTQ:</strong> <code>hudson_lab/PBMC_scRNAseq/FASTQ</code>
&mdash; time points: Jan 2025, Apr 2025, May 2025, Jun 2025, Jul 2025, Aug 2025, Sep 2025, Nov 2025, Dec 2025</li> <li><strong>Cell Ranger output:</strong> <code>hudson_lab/PBMC_scRNAseq/cellranger</code></li> <li><strong>Seurat objects:</strong> <code>hudson_lab/PBMC_scRNAseq/seurat_objects</code></li> <li><strong>Flow data:</strong> <code>hudson_lab/flow_data</code></li> <li><strong>Peptide expansion:</strong> <code>hudson_lab/peptide_expansion</code></li> </ul> <p>Data generated by <span class="contrib contrib-hudson">Hudson Lab</span></p> <h3>Kamil&rsquo;s PBMC scRNA-seq Analysis (GEX, TCR, CNV, CITE)</h3> <p>
Re-analysis of PBMC scRNA-seq data by <strong>Kamil</strong>, including Cell Ranger multi outputs
          for GEX, TCR&alpha;&beta;, TCR&gamma;&delta;, and CITE-seq across multiple blood draw time points.
</p> <ul> <li><strong>Cell Ranger outputs:</strong> <code>kamil/blood/output</code>
&mdash; GEX, TCR&alpha;&beta;, TCR&gamma;&delta;, CITE-seq pools for each time point</li> <li><strong>Analysis:</strong> <code>kamil/blood/analysis</code>
&mdash; combined CNV (h5ad), TCR clonotype analysis, database matching</li> </ul> </section> <!-- ============================================================ --> <!-- Spatial --> <!-- ============================================================ --> <section class="data-section" id="spatial"> <h2>Spatial Transcriptomics &amp; Proteomics</h2> <h3>Elucidate Bio (Phenocycler Fusion + Visium HD)</h3> <p>
Generated by <span class="contrib contrib-elucidate">Elucidate Bio</span>.
          Includes multiplexed IF data with Phenocycler Fusion instrument and custom conjugated antibodies,
          plus Visium HD run on the same section.
</p> <ul> <li>Data dictionary</li> <li>Raw and processed data &mdash; <code>elucidate/SIN-01_20250915</code></li> <li>Consolidated proteomics &amp; transcriptomics (h5mu, by segmented cell)</li> </ul> <div class="data-note"> <p><strong>Note:</strong> The Visium data is quite sparse. Web summaries:
<a href="https://sid-sijbrandij-osteosarc-dataset.s3.us-west-2.amazonaws.com/elucidate/SIN-01_20250915/VISIUMHD/SPACERANGER/SIN01-E0202/outs/web_summary.html" target="_blank" rel="noopener">Sample 1</a> &middot;
<a href="https://sid-sijbrandij-osteosarc-dataset.s3.us-west-2.amazonaws.com/elucidate/SIN-01_20250915/VISIUMHD/SPACERANGER/SIN01-A0201/outs/web_summary.html" target="_blank" rel="noopener">Sample 2</a>.
            Elucidate extracted signal from Visium by pseudobulking RNA counts by cell type as called by proteins.
<a href="https://drive.google.com/file/d/1i20gy7DniYj-wZ6OlwPH0IOYibT3lBQm/view?usp=drive_link" target="_blank" rel="noopener">See presentation</a>.
</p> </div> <h3>Xenium (10x In Situ)</h3> <p>
Xenium in-situ spatial transcriptomics across six tumor sections, all run on the same
          custom <code>hMulti_428g</code> panel (design KC8JUE). The panel targets 428 genes:
          ~299 from the 10x Human Multi-Tissue &amp; Cancer base panel, 33 mutation-specific
<strong>WT/ALT probe pairs</strong> for allele-resolved detection of this tumor's somatic
          mutations in situ (ATRX, MAP2, ASPM, and 30 others), and 63 <strong>TCR clonotype probes</strong>
(31 TR&alpha; + 32 TR&beta; CDR3 sequences) for spatial mapping of expanded T-cell clones,
          plus 20 negative-control probes.
</p> <div class="data-table-wrap"> <table class="data-table"> <thead> <tr><th>Timepoint</th><th>Section</th><th>Cells</th><th>Median genes/cell</th><th>Median tx/cell</th></tr> </thead> <tbody> <tr><td>T0</td><td>B3 (0078011)</td><td>318,320</td><td>44</td><td>148</td></tr> <tr><td>T0</td><td>C3 (0078018)</td><td>426,526</td><td>57</td><td>198</td></tr> <tr><td>T1</td><td>0102917 (batch 2)</td><td>34,478</td><td>86</td><td>289</td></tr> <tr><td>T2</td><td>0102913 (batch 2)</td><td>122,202</td><td>70</td><td>170</td></tr> <tr><td>T3</td><td>0103076 (batch 3)</td><td>273,156</td><td>25</td><td>42</td></tr> <tr><td>T3</td><td>0103350 (batch 3)</td><td>201,503</td><td>36</td><td>71</td></tr> </tbody> </table> </div> <ul> <li><code>xenium/T0/output-XETG00279__0078011__B3__20260211__182948</code> &mdash; Block B3 (T0)</li> <li><code>xenium/T0/output-XETG00279__0078018__C3__20260211__182947</code> &mdash; Block C3 (T0)</li> <li><code>xenium/20260513__172829__jw_batch2/</code> &mdash; Batch 2 (cassettes 0102913, 0102917)</li> <li><code>xenium/20260515__160744__jw_batch3/</code> &mdash; Batch 3 (cassettes 0103076, 0103350)</li> <li><code>xenium/cartoscope</code> &mdash; Cartoscope visualization output</li> </ul> <h3>HMS ORION Multiplex Imaging</h3> <p>
ORION highly multiplexed immunofluorescence imaging and Minerva story visualizations.
</p> <ul> <li><code>hms_spatial/orion</code> &mdash; ORION OME-TIFF images</li> <li><code>hms_spatial/minerva</code> &mdash; Minerva stories for H&amp;E blocks, ORION, and IHC (B7-H3, EphA2)</li> </ul> </section> <!-- ============================================================ --> <!-- Pathology --> <!-- ============================================================ --> <section class="data-section" id="pathology"> <h2>Pathology &amp; Imaging</h2> <p>Histopathology slides and immunohistochemistry images. Viewable at <a href="/imaging/">osteosarc.com/imaging</a>.</p> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th><th data-astro-cid-cqsjuctf>Provider</th><th data-astro-cid-cqsjuctf>Blocks / Stain</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-elucidate" data-astro-cid-cqsjuctf>Elucidate</span> (scanned) </td><td class="ct-assay" data-astro-cid-cqsjuctf> H&amp;E — B1, B2, B3, B4, C3 </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>elucidate/HE_images/</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>17.6 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>5</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Dec 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucsf" data-astro-cid-cqsjuctf>UCSF</span> (Zeiss) </td><td class="ct-assay" data-astro-cid-cqsjuctf> H&amp;E — B9, B10, B12, B14, B15, B16, C1, C3, D1, D2, D3 </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>pathology_images/czi_scans_ucsf_2022</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>148 GB</td> <td class="ct-num" data-astro-cid-cqsjuctf>33</td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Apr 2025 (T3) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucsf" data-astro-cid-cqsjuctf>UCSF</span> </td><td class="ct-assay" data-astro-cid-cqsjuctf> B7-H3 IHC </td> <td data-astro-cid-cqsjuctf></td> <td class="ct-num" data-astro-cid-cqsjuctf></td> <td class="ct-num" data-astro-cid-cqsjuctf></td> </tr><tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Apr 2025 (T3) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucsf" data-astro-cid-cqsjuctf>UCSF</span> </td><td class="ct-assay" data-astro-cid-cqsjuctf> EphA2 IHC </td> <td data-astro-cid-cqsjuctf></td> <td class="ct-num" data-astro-cid-cqsjuctf></td> <td class="ct-num" data-astro-cid-cqsjuctf></td> </tr> </tbody> </table> </div> <h3>Clinical CT (DICOM)</h3> <p>The original radiology DICOM files, de-identified before publication.
          Browse them in an interactive viewer at <a href="/imaging/dicom/">osteosarc.com/imaging/dicom</a>.</p> <div class="data-table-wrap" data-astro-cid-cqsjuctf> <table class="data-table" data-astro-cid-cqsjuctf> <thead data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <th data-astro-cid-cqsjuctf>Timepoint</th><th data-astro-cid-cqsjuctf>Provider</th><th data-astro-cid-cqsjuctf>Study</th> <th data-astro-cid-cqsjuctf>Bucket Path</th> <th data-astro-cid-cqsjuctf>Size</th> <th data-astro-cid-cqsjuctf>Files</th> </tr> </thead> <tbody data-astro-cid-cqsjuctf> <tr data-astro-cid-cqsjuctf> <td class="ct-timepoint" data-astro-cid-cqsjuctf> Nov 2022 (T0) </td><td class="ct-provider" data-astro-cid-cqsjuctf>  <span class="contrib contrib-ucsf" data-astro-cid-cqsjuctf>UCSF</span> </td><td class="ct-assay" data-astro-cid-cqsjuctf> CT chest with contrast — 7 series, 666 images </td> <td data-astro-cid-cqsjuctf><code data-astro-cid-cqsjuctf>DICOM/dicom</code></td> <td class="ct-num" data-astro-cid-cqsjuctf>141 MB</td> <td class="ct-num" data-astro-cid-cqsjuctf>666</td> </tr> </tbody> </table> </div> </section> <!-- ============================================================ --> <!-- HLA --> <!-- ============================================================ --> <section class="data-section" id="hla"> <h2>HLA Type</h2> <p>Red Cross HLA typing results.</p> <h3>Class I</h3> <div class="data-table-wrap"> <table class="data-table hla-table"> <thead> <tr><th>HLA-A</th><th>HLA-B</th><th>HLA-C</th></tr> </thead> <tbody> <tr><td>A*01:01</td><td>B*08:01</td><td>C*01:02</td></tr> <tr><td>A*01:11N</td><td>B*27:05</td><td>C*07:01</td></tr> </tbody> </table> </div> <h3>Class II</h3> <div class="data-table-wrap"> <table class="data-table hla-table"> <thead> <tr><th>Locus</th><th>Allele 1</th><th>Allele 2</th></tr> </thead> <tbody> <tr><td>HLA-DPA1</td><td>*01:03</td><td>*02:01</td></tr> <tr><td>HLA-DPB1</td><td>*04:01</td><td>*11:01</td></tr> <tr><td>HLA-DQA1</td><td>*05:01</td><td>*04:01</td></tr> <tr><td>HLA-DQB1</td><td>*04:02</td><td>*02:01</td></tr> <tr><td>HLA-DRB1</td><td>*03:01</td><td>*08:01</td></tr> <tr><td>HLA-DRB3</td><td>*01:01</td><td>*01:01</td></tr> <tr><td>HLA-DRB4</td><td colspan="2">Absent</td></tr> <tr><td>HLA-DRB5</td><td colspan="2">Absent</td></tr> </tbody> </table> </div> </section> <!-- ============================================================ --> <!-- Uploading Data --> <!-- ============================================================ --> <section class="data-section" id="upload"> <h2>Uploading Data</h2> <p>
If you are a collaborator contributing new data, please upload it
<strong>directly</strong> to the <code>s3://sid-sijbrandij-osteosarc-dataset</code> bucket
          using the <a href="https://docs.aws.amazon.com/cli/latest/reference/s3/" target="_blank" rel="noopener">AWS CLI</a>.
          If your data currently lives in Google Cloud Storage or Google Drive, download it once and
          upload it here &mdash; do not leave it there, as Google&rsquo;s egress fees for repeatedly
          moving large datasets are very high.
</p> <h3>1. Request an access key</h3> <p>
Email <a href="/cdn-cgi/l/email-protection#781b19161b1d0a380b010c0b1d561b1715"><span class="__cf_email__" data-cfemail="fa999b94999f88ba89838e899fd4999597">[email&#160;protected]</span></a> to request upload access.
          We will send you an <strong>AWS access key ID</strong> and <strong>secret access key</strong>
scoped to write into the bucket. Keep these credentials private &mdash; reading and
          downloading from the bucket is public and needs no key, but uploading does.
</p> <h3>2. Install the AWS CLI</h3> <p>
Follow the
<a href="https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html" target="_blank" rel="noopener">official install guide</a>
for your platform, then confirm it is on your <code>PATH</code>:
</p> <pre class="cmd-block">aws --version</pre> <h3>3. Configure the CLI</h3> <p>Run this once on the machine you will upload from, using the credentials we send you:</p> <pre class="cmd-block"><span class="cmd-comment"># paste the key ID and secret when prompted</span>
aws configure
<span class="cmd-comment"># Default region name: us-west-2</span>
<span class="cmd-comment"># Default output format: json</span></pre> <div class="data-note"> <p>
The bucket is in the <code>us-west-2</code> region &mdash; set that as your default region
            (or pass <code>--region us-west-2</code> on each command) so uploads route correctly.
</p> </div> <h3>4. Upload your data with <code>aws s3 sync</code></h3> <p> <code>aws s3 sync</code> recursively copies a local folder to the bucket and skips files
          that are already uploaded, so it is safe to re-run if a transfer is interrupted (large
          files are uploaded as multipart automatically). Point it at a clearly-named top-level
          folder in the bucket:
</p> <pre class="cmd-block"><span class="cmd-comment"># preview what would be uploaded (no changes made)</span>
aws s3 sync ./my-local-folder/ s3://sid-sijbrandij-osteosarc-dataset/my-dataset/ --dryrun

<span class="cmd-comment"># do the upload</span>
aws s3 sync ./my-local-folder/ s3://sid-sijbrandij-osteosarc-dataset/my-dataset/</pre> <p> <code>aws s3 sync</code> copies the <em>contents</em> of the local folder, not the folder
          itself. After the command above, a local file at <code>./my-local-folder/sample.bam</code>
lands at <code>s3://sid-sijbrandij-osteosarc-dataset/my-dataset/sample.bam</code> &mdash; it
          is <strong>not</strong> nested under an extra <code>my-local-folder/</code> level.
</p> <p>
Use a descriptive folder name (for example your lab name plus the data type and date).
          There is no strict naming convention &mdash; we will reorganize files into the site&rsquo;s
          structure as needed. When the upload finishes, let us know at
<a href="/cdn-cgi/l/email-protection#4526242b26203705363c3136206b262a28"><span class="__cf_email__" data-cfemail="d6b5b7b8b5b3a496a5afa2a5b3f8b5b9bb">[email&#160;protected]</span></a> so we can index the new files.
</p> <div class="data-note"> <p> <strong>Non-destructive by default:</strong> <code>aws s3 sync</code> only adds new files
            and overwrites files at the exact same path. It <strong>never deletes</strong> files in
            the bucket that are missing from your local folder unless you explicitly pass
<code>--delete</code>. Uploading into a shared folder will not remove anyone else&rsquo;s
            files.
</p> </div> <div class="data-note"> <p> <strong>Tips:</strong> run inside <code>tmux</code> or <code>screen</code> for
            long-running uploads; and to send a single file instead of a folder, use
<code>aws s3 cp ./path/to/file.bam s3://sid-sijbrandij-osteosarc-dataset/my-dataset/file.bam</code>.
</p> </div> </section> </div><!-- .data-main --> </div> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script>
  // Highlight active TOC link on scroll
  (function() {
    const sections = document.querySelectorAll('.data-section');
    const tocLinks = document.querySelectorAll('.data-toc a');
    const observer = new IntersectionObserver(entries => {
      entries.forEach(entry => {
        if (entry.isIntersecting) {
          tocLinks.forEach(a => a.classList.remove('active'));
          const active = document.querySelector('.data-toc a[href="#' + entry.target.id + '"]');
          if (active) active.classList.add('active');
        }
      });
    }, { rootMargin: '-20% 0px -70% 0px' });
    sections.forEach(s => observer.observe(s));
  })();

  // Bucket file browser + search
  (function() {
    const PAGE_SIZE = 200;
    const LARGE_FOLDER_THRESHOLD = 100;
    const SEARCH_DEBOUNCE_MS = 250;  // wait for a typing pause before searching
    const SEARCH_RENDER_CHUNK = 200; // result rows rendered per batch (grows on scroll)

    const input     = document.getElementById('bucket-search');
    const status    = document.getElementById('bucket-search-status');
    const results   = document.getElementById('bucket-search-results');
    const browser   = document.getElementById('file-browser-view');
    const crumbs    = document.getElementById('fb-breadcrumbs');
    const tbody     = document.getElementById('fb-tbody');
    const moreEl    = document.getElementById('fb-more');
    const dlBtn     = document.getElementById('fb-download-btn');

    const modal     = document.getElementById('fb-modal');
    const modalSub  = document.getElementById('fb-modal-sub');
    const modalNote = document.getElementById('fb-modal-note');
    const modalCmds = document.getElementById('fb-modal-cmds');
    const modalTabs = document.getElementById('fb-modal-tabs');
    const copyBtn   = document.getElementById('fb-copy-btn');

    let meta = null;             // { bucket, download_base, files: [[path,size,mtime], ...] }
    let allFiles = [];           // filtered ref to meta.files
    let lcPaths = [];            // lowercase of each allFiles[i][0], precomputed for search
    let byDir = new Map();       // dir -> { folders: Set<string>, files: Array<{name,size,mtime,path}> }
    let recCount = new Map();    // dir -> recursive file count (includes subtree)
    let recBytes = new Map();    // dir -> recursive total bytes
    let currentPath = '';        // current folder path, no leading/trailing slash
    let visibleLimit = PAGE_SIZE;
    let kbIndex = -1;
    let currentDescendants = []; // files in subtree rooted at currentPath, for Download modal
    let currentTab = 'curl';
    let highlightFile = null;    // file name to flash after navigation
    let searchHits = [];         // full sorted result set for the current query
    let searchRendered = 0;      // count of searchHits currently rendered into the DOM
    let checksums = new Map();    // path -> md5, for files with a published checksum

    const dtFmt = new Intl.DateTimeFormat('en', { dateStyle: 'medium' });
    const dtIso = (s) => new Date(s * 1000).toISOString().replace(/\.\d+Z$/, 'Z');
    const dtShort = (s) => dtFmt.format(new Date(s * 1000));

    function humanBytes(n) {
      if (n === 0) return '0 B';
      const units = ['B', 'KB', 'MB', 'GB', 'TB'];
      const i = Math.min(units.length - 1, Math.floor(Math.log10(n) / 3));
      const v = n / Math.pow(1000, i);
      return (v >= 100 || i === 0 ? v.toFixed(0) : v.toFixed(1)) + ' ' + units[i];
    }

    function esc(s) {
      return s.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;');
    }

    function encodePath(p) {
      return p.split('/').map(encodeURIComponent).join('/');
    }

    // --- Index building -----------------------------------------------------

    function buildIndex(files) {
      byDir = new Map();
      recCount = new Map();
      recBytes = new Map();
      function ensure(dir) {
        let e = byDir.get(dir);
        if (!e) { e = { folders: new Set(), files: [] }; byDir.set(dir, e); }
        return e;
      }
      function bump(dir, size) {
        recCount.set(dir, (recCount.get(dir) || 0) + 1);
        recBytes.set(dir, (recBytes.get(dir) || 0) + size);
      }
      ensure('');
      for (let i = 0; i < files.length; i++) {
        const row = files[i];
        const path = row[0];
        const size = row[1];
        const parts = path.split('/');
        const name = parts.pop();
        bump('', size);
        let dir = '';
        for (let j = 0; j < parts.length; j++) {
          const parent = dir;
          dir = dir ? dir + '/' + parts[j] : parts[j];
          ensure(parent).folders.add(parts[j]);
          ensure(dir);
          bump(dir, size);
        }
        ensure(dir).files.push({ name: name, size: size, mtime: row[2], path: path });
      }
    }

    function getDescendants(dirPath) {
      const prefix = dirPath ? dirPath + '/' : '';
      const out = [];
      for (let i = 0; i < allFiles.length; i++) {
        const r = allFiles[i];
        if (!prefix || r[0].startsWith(prefix)) {
          out.push({ name: r[0].split('/').pop(), size: r[1], mtime: r[2], path: r[0] });
        }
      }
      return out;
    }

    function collapseChain(basePath) {
      const segments = [basePath.split('/').pop()];
      let path = basePath;
      while (true) {
        const entry = byDir.get(path);
        if (!entry || entry.files.length > 0 || entry.folders.size !== 1) break;
        const nextSeg = entry.folders.values().next().value;
        segments.push(nextSeg);
        path = path + '/' + nextSeg;
      }
      return { path: path, segments: segments };
    }

    // --- URL hash routing ---------------------------------------------------

    function parseHash() {
      const h = location.hash.replace(/^#/, '');
      const params = new URLSearchParams(h);
      const p = (params.get('path') || '').replace(/^\/+|\/+$/g, '');
      const hl = params.get('file');
      return { path: p, file: hl };
    }

    function setHash(path, opts) {
      opts = opts || {};
      const params = new URLSearchParams();
      if (path) params.set('path', path);
      if (opts.file) params.set('file', opts.file);
      const s = params.toString();
      const next = s ? '#' + s : '#file-browser';
      if (opts.replace) history.replaceState(null, '', next);
      else if (location.hash !== next) location.hash = next;
      else render();
    }

    // --- Search -------------------------------------------------------------

    // words: already-lowercased, non-empty query words. lt: precomputed lowercase path.
    function multiWordMatch(words, lt) {
      const indices = [];
      for (let w = 0; w < words.length; w++) {
        const word = words[w];
        const start = lt.indexOf(word);
        if (start === -1) return null;
        for (let j = 0; j < word.length; j++) indices.push(start + j);
      }
      return indices;
    }

    function scoreMatch(indices, text) {
      let s = 0;
      const boundaries = new Set([0]);
      for (let i = 1; i < text.length; i++) {
        const c = text[i - 1];
        if (c === '/' || c === '_' || c === '-' || c === '.') boundaries.add(i);
      }
      for (let i = 0; i < indices.length; i++) {
        if (!boundaries.has(indices[i])) s += 1;
      }
      s += text.length * 0.1;
      return s;
    }

    function highlightMatch(text, indices) {
      const set = new Set(indices);
      let out = '';
      let inMark = false;
      const lastSlash = text.lastIndexOf('/');
      for (let i = 0; i < text.length; i++) {
        const isMark = set.has(i);
        if (isMark && !inMark) out += '<mark>';
        if (!isMark && inMark) out += '</mark>';
        if (i === 0 && lastSlash > 0) out += '<span class="dir-part">';
        const ch = text[i] === '<' ? '&lt;' : text[i] === '>' ? '&gt;' : text[i] === '&' ? '&amp;' : text[i];
        out += ch;
        if (i === lastSlash && lastSlash > 0) out += '</span>';
        inMark = isMark;
      }
      if (inMark) out += '</mark>';
      return out;
    }

    // "Copy MD5" button HTML for files that have a published checksum.
    function md5Button(path) {
      const m = checksums.get(path);
      return m ? '<button type="button" class="fb-md5" data-md5="' + m + '" title="Copy MD5: ' + m + '">md5</button>' : '';
    }

    function copyMd5(btn) {
      const m = btn.getAttribute('data-md5');
      if (!m) return;
      navigator.clipboard.writeText(m).then(() => {
        btn.textContent = 'copied';
        btn.classList.add('copied');
        setTimeout(() => { btn.textContent = 'md5'; btn.classList.remove('copied'); }, 1200);
      }).catch(() => {});
    }

    // Build the HTML for one result row. i is the absolute index into searchHits.
    function searchRowHtml(h, i) {
      const path = h.row[0];
      const size = h.row[1];
      const mtime = h.row[2];
      const parts = path.split('/');
      const dir = parts.slice(0, -1).join('/');
      const url = meta.download_base + encodePath(path);
      return '<tr class="fb-row-file" data-idx="' + i + '" data-dir="' + esc(dir) + '" data-name="' + esc(parts[parts.length - 1]) + '">' +
               '<td class="fb-col-name"><a class="fb-name-link" href="' + esc(url) + '" target="_blank" rel="noopener">' +
                 '<svg class="fb-icon" xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>' +
                 '<span>' + highlightMatch(path, h.indices) + '</span>' +
               '</a>' + md5Button(path) + '</td>' +
               '<td class="fb-col-size">' + humanBytes(size) + '</td>' +
               '<td class="fb-col-mtime" title="' + dtIso(mtime) + '">' + dtShort(mtime) + '</td>' +
             '</tr>';
    }

    // Append the next batch of rows to the results table (list grows as the user scrolls).
    function appendMoreSearchRows() {
      const tb = document.getElementById('bucket-search-tbody');
      if (!tb) return;
      const end = Math.min(searchRendered + SEARCH_RENDER_CHUNK, searchHits.length);
      let html = '';
      for (let i = searchRendered; i < end; i++) html += searchRowHtml(searchHits[i], i);
      tb.insertAdjacentHTML('beforeend', html);
      searchRendered = end;
    }

    function runSearch(query) {
      kbIndex = -1;
      if (!meta || query.trim().length < 2) {
        searchHits = [];
        searchRendered = 0;
        results.classList.remove('visible');
        results.innerHTML = '';
        browser.hidden = false;
        if (meta) status.textContent = meta.files.length.toLocaleString() + ' files indexed \u2014 start typing to search, or browse below';
        return;
      }
      browser.hidden = true;
      const words = query.toLowerCase().split(/\s+/).filter(Boolean);
      const hits = [];
      for (let i = 0; i < allFiles.length; i++) {
        const row = allFiles[i];
        const m = multiWordMatch(words, lcPaths[i]);
        if (m) hits.push({ row: row, indices: m, score: scoreMatch(m, row[0]) });
      }
      hits.sort((a, b) => a.score - b.score);

      if (hits.length === 0) {
        searchHits = [];
        searchRendered = 0;
        results.innerHTML = '<div class="fb-empty">No files match your query.</div>';
        status.textContent = '0 results';
        results.classList.add('visible');
        return;
      }

      // Keep the full result set, but render only the first batch; more are
      // appended on scroll so the DOM stays small even for tens of thousands of hits.
      searchHits = hits;
      searchRendered = 0;
      results.innerHTML = '<div class="fb-table-wrap"><table class="fb-table">' +
        '<thead><tr><th class="fb-col-name">Name</th><th class="fb-col-size">Size</th><th class="fb-col-mtime">Modified</th></tr></thead>' +
        '<tbody id="bucket-search-tbody"></tbody></table></div>';
      appendMoreSearchRows();
      results.scrollTop = 0;

      const total = hits.length;
      status.textContent = total.toLocaleString() + ' result' + (total === 1 ? '' : 's') +
        ' \u2014 click to download, or Enter to open folder';
      results.classList.add('visible');
    }

    function exitSearch() {
      input.value = '';
      results.classList.remove('visible');
      results.innerHTML = '';
      browser.hidden = false;
      kbIndex = -1;
      searchHits = [];
      searchRendered = 0;
    }

    results.addEventListener('click', (e) => {
      const md5btn = e.target.closest('.fb-md5');
      if (md5btn) { e.preventDefault(); copyMd5(md5btn); return; }
      const row = e.target.closest('tr.fb-row-file');
      if (!row) return;
      // If the user clicked the link itself, let it navigate (download).
      if (e.target.closest('a.fb-name-link')) return;
      e.preventDefault();
      const dir = row.getAttribute('data-dir') || '';
      const name = row.getAttribute('data-name') || '';
      exitSearch();
      highlightFile = name;
      setHash(dir);
    });

    // Copy-MD5 buttons in the folder table (file rows are plain links otherwise).
    tbody.addEventListener('click', (e) => {
      const md5btn = e.target.closest('.fb-md5');
      if (md5btn) { e.preventDefault(); copyMd5(md5btn); }
    });

    // --- Folder view --------------------------------------------------------

    function renderCrumbs(path) {
      const root = meta ? meta.bucket : 'osteosarc-data';
      if (!path) {
        crumbs.innerHTML = '<span class="fb-crumb-current">' + esc(root) + '</span>';
        return;
      }
      const parts = path.split('/');
      let acc = '';
      let html = '<a href="#path=">' + esc(root) + '</a>';
      for (let i = 0; i < parts.length; i++) {
        acc = acc ? acc + '/' + parts[i] : parts[i];
        html += '<span class="fb-crumb-sep">/</span>';
        if (i === parts.length - 1) html += '<span class="fb-crumb-current">' + esc(parts[i]) + '</span>';
        else html += '<a href="#path=' + encodePath(acc) + '">' + esc(parts[i]) + '</a>';
      }
      crumbs.innerHTML = html;
    }

    function renderFolder() {
      const entry = byDir.get(currentPath);
      if (!entry) {
        tbody.innerHTML = '<tr><td colspan="3"><div class="fb-empty">Folder not found. <a href="#path=">Back to root</a>.</div></td></tr>';
        moreEl.hidden = true;
        dlBtn.disabled = true;
        dlBtn.textContent = 'Download folder';
        return;
      }

      const folders = Array.from(entry.folders).sort();
      const files = entry.files.slice().sort((a, b) => a.name.localeCompare(b.name));

      let rows = '';
      if (currentPath) {
        const parentPath = currentPath.includes('/') ? currentPath.slice(0, currentPath.lastIndexOf('/')) : '';
        rows += '<tr class="fb-row-folder">' +
                  '<td class="fb-col-name"><a class="fb-name-link" href="#path=' + encodePath(parentPath) + '">' +
                    '<svg class="fb-icon" xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><polyline points="15 18 9 12 15 6"/></svg>' +
                    '<span>../</span></a></td>' +
                  '<td class="fb-col-size"></td><td class="fb-col-mtime"></td></tr>';
      }

      for (let i = 0; i < folders.length; i++) {
        const fname = folders[i];
        const fpath = currentPath ? currentPath + '/' + fname : fname;
        const chain = collapseChain(fpath);
        const display = chain.segments.join('/') + '/';
        const bytes = recBytes.get(chain.path) || 0;
        const count = recCount.get(chain.path) || 0;
        const sizeCell = bytes > 0 ? humanBytes(bytes) : '';
        const sizeTitle = count > 0 ? count.toLocaleString() + ' file' + (count === 1 ? '' : 's') : '';
        rows += '<tr class="fb-row-folder">' +
                  '<td class="fb-col-name"><a class="fb-name-link" href="#path=' + encodePath(chain.path) + '">' +
                    '<svg class="fb-icon" xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z"/></svg>' +
                    '<span>' + esc(display) + '</span></a></td>' +
                  '<td class="fb-col-size" title="' + sizeTitle + '">' + sizeCell + '</td>' +
                  '<td class="fb-col-mtime"></td></tr>';
      }

      const shownFiles = files.slice(0, visibleLimit);
      for (let i = 0; i < shownFiles.length; i++) {
        const f = shownFiles[i];
        const url = meta.download_base + encodePath(f.path);
        const hl = (highlightFile && f.name === highlightFile) ? ' fb-row-highlight' : '';
        rows += '<tr class="fb-row-file' + hl + '" data-name="' + esc(f.name) + '">' +
                  '<td class="fb-col-name"><a class="fb-name-link" href="' + esc(url) + '" target="_blank" rel="noopener">' +
                    '<svg class="fb-icon" xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"/><polyline points="14 2 14 8 20 8"/></svg>' +
                    '<span>' + esc(f.name) + '</span></a>' + md5Button(f.path) + '</td>' +
                  '<td class="fb-col-size">' + humanBytes(f.size) + '</td>' +
                  '<td class="fb-col-mtime" title="' + dtIso(f.mtime) + '">' + dtShort(f.mtime) + '</td>' +
                '</tr>';
      }

      if (!rows) rows = '<tr><td colspan="3"><div class="fb-empty">(empty folder)</div></td></tr>';
      tbody.innerHTML = rows;

      if (files.length > visibleLimit) {
        moreEl.innerHTML = 'Showing ' + visibleLimit.toLocaleString() + ' of ' + files.length.toLocaleString() + ' files. ' +
          '<button type="button" id="fb-show-more">Show all</button>';
        moreEl.hidden = false;
        const btn = document.getElementById('fb-show-more');
        if (btn) btn.addEventListener('click', () => { visibleLimit = Infinity; renderFolder(); });
      } else {
        moreEl.hidden = true;
      }

      const recN = recCount.get(currentPath) || 0;
      dlBtn.disabled = recN === 0;
      dlBtn.textContent = recN > 0
        ? 'Download folder (' + recN.toLocaleString() + ' file' + (recN === 1 ? '' : 's') + ')'
        : 'Download folder';

      if (highlightFile) {
        const hlRow = tbody.querySelector('tr.fb-row-highlight');
        if (hlRow) hlRow.scrollIntoView({ block: 'center', behavior: 'smooth' });
        highlightFile = null;
      }
    }

    function render() {
      const h = parseHash();
      currentPath = h.path;
      if (h.file) highlightFile = h.file;
      visibleLimit = PAGE_SIZE;
      renderCrumbs(currentPath);
      renderFolder();
    }

    // --- Download modal -----------------------------------------------------

    const CMD_CAP = 1000;

    function buildCommands(tab) {
      const bucket = meta.bucket;
      const base = meta.download_base;
      const files = currentDescendants;
      const leaf = currentPath ? currentPath.split('/').pop() : bucket;
      const prefix = currentPath ? currentPath + '/' : '';

      if (tab === 'aws') {
        const src = 's3://' + bucket + (currentPath ? '/' + currentPath : '') + '/';
        return 'aws s3 sync "' + src + '" "./' + leaf + '/" --no-sign-request';
      }

      const capped = files.length > CMD_CAP ? files.slice(0, CMD_CAP) : files;
      const header = 'mkdir -p "' + leaf + '" && cd "' + leaf + '"';
      const trunc = files.length > CMD_CAP
        ? '# ... truncated ' + (files.length - CMD_CAP).toLocaleString() + ' more files. Use the "aws CLI" tab (aws s3 sync) for the full recursive download.'
        : null;

      if (tab === 'curl') {
        const lines = [header];
        for (let i = 0; i < capped.length; i++) {
          const f = capped[i];
          const rel = f.path.substring(prefix.length);
          lines.push('curl --create-dirs -o "' + rel + '" "' + base + encodePath(f.path) + '"');
        }
        if (trunc) lines.push(trunc);
        return lines.join('\n');
      }
      // wget
      const cutDirs = currentPath ? currentPath.split('/').length : 0;
      const lines = [header];
      for (let i = 0; i < capped.length; i++) {
        const f = capped[i];
        lines.push('wget -x -nH --cut-dirs=' + cutDirs + ' "' + base + encodePath(f.path) + '"');
      }
      if (trunc) lines.push(trunc);
      return lines.join('\n');
    }

    function openModal() {
      const descendants = getDescendants(currentPath);
      if (!descendants.length) return;
      currentDescendants = descendants;
      const totalBytes = recBytes.get(currentPath) || 0;
      const src = currentPath ? meta.bucket + '/' + currentPath : meta.bucket;
      modalSub.textContent = src + '  \u00b7  ' + descendants.length.toLocaleString() + ' file' + (descendants.length === 1 ? '' : 's') + ', ' + humanBytes(totalBytes);
      renderModalNote();
      renderModalCmds();
      modal.hidden = false;
      modal.setAttribute('aria-hidden', 'false');
      document.body.style.overflow = 'hidden';
    }

    function closeModal() {
      modal.hidden = true;
      modal.setAttribute('aria-hidden', 'true');
      document.body.style.overflow = '';
    }

    function renderModalNote() {
      const n = currentDescendants.length;
      if (currentTab === 'aws' || n <= LARGE_FOLDER_THRESHOLD) {
        modalNote.hidden = true;
        return;
      }
      modalNote.innerHTML = 'This subtree has <strong>' + n.toLocaleString() + '</strong> files. curl/wget emit one line per file' +
        (n > CMD_CAP ? ' (capped at ' + CMD_CAP.toLocaleString() + ')' : '') +
        '. For a single-command recursive download, use the <strong>aws CLI</strong> tab.';
      modalNote.hidden = false;
    }

    function renderModalCmds() {
      modalCmds.textContent = buildCommands(currentTab);
      copyBtn.classList.remove('copied');
      copyBtn.textContent = 'Copy';
    }

    dlBtn.addEventListener('click', openModal);
    modal.addEventListener('click', (e) => {
      if (e.target.hasAttribute('data-fb-close')) closeModal();
    });
    document.addEventListener('keydown', (e) => {
      if (e.key === 'Escape' && !modal.hidden) closeModal();
    });
    modalTabs.addEventListener('click', (e) => {
      const btn = e.target.closest('.fb-tab');
      if (!btn) return;
      currentTab = btn.getAttribute('data-tab');
      modalTabs.querySelectorAll('.fb-tab').forEach(el => el.classList.toggle('active', el === btn));
      renderModalNote();
      renderModalCmds();
    });
    copyBtn.addEventListener('click', async () => {
      try {
        await navigator.clipboard.writeText(modalCmds.textContent);
        copyBtn.textContent = 'Copied!';
        copyBtn.classList.add('copied');
        setTimeout(() => { copyBtn.textContent = 'Copy'; copyBtn.classList.remove('copied'); }, 1500);
      } catch (_) {
        copyBtn.textContent = 'Copy failed';
      }
    });

    // --- Search input wiring -----------------------------------------------

    let debounce = null;
    input.addEventListener('input', () => {
      clearTimeout(debounce);
      debounce = setTimeout(() => runSearch(input.value.trim()), SEARCH_DEBOUNCE_MS);
    });

    // Grow the rendered result list as the user scrolls toward the bottom.
    results.addEventListener('scroll', () => {
      if (searchRendered >= searchHits.length) return;
      if (results.scrollTop + results.clientHeight >= results.scrollHeight - 400) {
        appendMoreSearchRows();
      }
    });

    input.addEventListener('keydown', (e) => {
      let rows = results.querySelectorAll('tr.fb-row-file');
      if (!rows.length) return;
      if (e.key === 'ArrowDown') {
        e.preventDefault();
        // Stepping off the end of the rendered window: pull in the next batch first.
        if (kbIndex + 1 >= rows.length && searchRendered < searchHits.length) {
          appendMoreSearchRows();
          rows = results.querySelectorAll('tr.fb-row-file');
        }
        kbIndex = Math.min(kbIndex + 1, rows.length - 1);
      } else if (e.key === 'ArrowUp') {
        e.preventDefault();
        kbIndex = Math.max(kbIndex - 1, 0);
      } else if (e.key === 'Enter' && kbIndex >= 0) {
        e.preventDefault();
        const row = rows[kbIndex];
        const dir = row.getAttribute('data-dir') || '';
        const name = row.getAttribute('data-name') || '';
        exitSearch();
        highlightFile = name;
        setHash(dir);
        return;
      } else {
        return;
      }
      rows.forEach(el => el.classList.remove('kb-active'));
      rows[kbIndex].classList.add('kb-active');
      rows[kbIndex].scrollIntoView({ block: 'nearest' });
    });

    window.addEventListener('hashchange', () => {
      exitSearch();
      render();
    });

    // --- Load ---------------------------------------------------------------

    Promise.all([
      fetch('/bucket_listing.json').then(r => r.json()),
      // Checksums are a nice-to-have: degrade gracefully if the file is absent.
      fetch('/checksums.json').then(r => r.json()).catch(() => ({})),
    ])
      .then(([data, sums]) => {
        meta = data;
        allFiles = data.files;
        checksums = new Map(Object.entries(sums));
        lcPaths = new Array(allFiles.length);
        for (let i = 0; i < allFiles.length; i++) lcPaths[i] = allFiles[i][0].toLowerCase();
        buildIndex(allFiles);
        input.disabled = false;
        status.textContent = allFiles.length.toLocaleString() + ' files indexed \u2014 start typing to search, or browse below';
        browser.hidden = false;
        render();
      })
      .catch(() => {
        status.textContent = 'Could not load file index.';
      });
  })();
  </script>  <div id="contact" class="row my-5"> <div class="col"> <div class="contact-section"> <h2 class="mb-3"><span aria-hidden="true">✉️</span> Contact Us</h2> <p class="mb-0">
Please <a class="link-primary" href="/cdn-cgi/l/email-protection#7417151a17110634070d0007115a171b19">contact us</a> with any questions or comments.
</p> </div> </div> </div> </div> <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script><script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js" integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI" crossorigin="anonymous"></script> <script data-goatcounter="https://osteosarc.goatcounter.com/count" async src="//gc.zgo.at/count.js"></script> </body> </html>