diff --git a/client/__tests__/common/constants.ts b/client/__tests__/common/constants.ts
index 1f45a6c1e..ac8ab0539 100644
--- a/client/__tests__/common/constants.ts
+++ b/client/__tests__/common/constants.ts
@@ -3,7 +3,8 @@ import * as ENV_DEFAULT from "../../../environment.default.json";
export const DATASET = "pbmc3k.cxg";
export const DATASET_TRUNCATE = "truncation-test.cxg";
export const SPATIAL_DATASET = "super-cool-spatial.cxg";
-
+export const CELL_GUIDE_DATASET = "example.cxg";
+export const CELLGUIDE_CXGS_PATH = "cellguide-cxgs";
export const APP_URL_BASE =
process.env.CXG_URL_BASE || `http://localhost:${ENV_DEFAULT.CXG_CLIENT_PORT}`;
@@ -25,6 +26,14 @@ export const pageURLSpatial = [
"",
].join("/");
+export const pageURLCellGuide = [
+ APP_URL_BASE,
+ DEFAULT_BASE_PATH,
+ CELLGUIDE_CXGS_PATH,
+ CELL_GUIDE_DATASET,
+ "",
+].join("/");
+
export const BLUEPRINT_SAFE_TYPE_OPTIONS = { delay: 50 };
export const ERROR_NO_TEST_ID_OR_LOCATOR =
diff --git a/client/__tests__/e2e/cell-guide.test.ts b/client/__tests__/e2e/cell-guide.test.ts
new file mode 100644
index 000000000..4e4bc1877
--- /dev/null
+++ b/client/__tests__/e2e/cell-guide.test.ts
@@ -0,0 +1,148 @@
+/**
+ * Smoke test suite that will be run in GHA
+ * Tests included in this file are expected to be relatively stable and test core features
+ *
+ * (seve): `locator.click({force: true})` is required on some elements due to weirdness with bp3 elements which route clicks to non-target elements
+ * https://playwright.dev/docs/input#forcing-the-click
+ */
+
+/* eslint-disable no-await-in-loop -- await in loop is needed to emulate sequential user actions */
+import { test, expect } from "@chromatic-com/playwright";
+
+import { tryUntil } from "./puppeteerUtils";
+import mockSetup from "./playwright.global.setup";
+
+import {
+ deleteGeneset,
+ snapshotTestGraph,
+ expandGeneset,
+ expandMarkerGeneSetsHeader,
+} from "./cellxgeneActions";
+
+import { pageURLCellGuide } from "../common/constants";
+
+import { goToPage } from "../util/helpers";
+
+const { describe } = test;
+
+// TODO #754
+test.beforeEach(mockSetup);
+
+describe(`Testing CellGuideCXG at ${pageURLCellGuide}`, () => {
+ test("page launched", async ({ page }, testInfo) => {
+ await goToPage(page, pageURLCellGuide);
+
+ const element = await page.getByTestId("header").innerHTML();
+
+ expect(element).toMatchSnapshot();
+
+ await snapshotTestGraph(page, testInfo);
+ });
+
+ test("assert absence of 'Standard Categories' and 'Author Categories'", async ({
+ page,
+ }) => {
+ await goToPage(page, pageURLCellGuide);
+
+ // Check for the absence of 'Standard Categories'
+ const standardCategories = await page
+ .locator("text='Standard Categories'")
+ .count();
+ expect(standardCategories).toBe(0);
+
+ // Check for the absence of 'Author Categories'
+ const authorCategories = await page
+ .locator("text='Author Categories'")
+ .count();
+ expect(authorCategories).toBe(0);
+ });
+
+ test("assert 'Marker Gene Sets' header is present and collapsed", async ({
+ page,
+ }) => {
+ await goToPage(page, pageURLCellGuide);
+
+ // Check for the presence of 'Marker Gene Sets' header
+ const markerGeneSetsHeader = await page.locator(
+ "h5:has-text('Marker Gene Sets')"
+ );
+ await expect(markerGeneSetsHeader).toBeVisible();
+
+ // Check if the header is collapsed by looking for a child with a chevron-right icon
+ const chevronRightIcon = markerGeneSetsHeader.locator(
+ "svg[data-icon='chevron-right']"
+ );
+ await expect(chevronRightIcon).toBeVisible();
+ });
+
+ test("expansion of 'Marker Gene Sets' reveals specific genesets", async ({
+ page,
+ }) => {
+ await goToPage(page, pageURLCellGuide);
+
+ // Locate and expand the 'Marker Gene Sets' header
+ const markerGeneSetsHeader = await page.locator(
+ "h5:has-text('Marker Gene Sets')"
+ );
+
+ tryUntil(
+ async () => {
+ await markerGeneSetsHeader.click(); // Assuming clicking will expand the section
+
+ // Assert the presence of specific genesets
+ const geneset1 = await page.locator(
+ `div[data-testid="geneset"]:has-text("enteric smooth muscle cell")`
+ );
+ const geneset2 = await page.locator(
+ `div[data-testid="geneset"]:has-text("smooth muscle fiber of ileum")`
+ );
+
+ await expect(geneset1).toBeVisible();
+ await expect(geneset2).toBeVisible();
+ },
+ { page }
+ );
+ });
+
+ test("expansion of 'enteric smooth muscle cell' reveals genes", async ({
+ page,
+ }) => {
+ await goToPage(page, pageURLCellGuide);
+
+ await expandMarkerGeneSetsHeader(page);
+
+ // Locate and expand 'enteric smooth muscle cell' geneset
+ await expandGeneset("enteric smooth muscle cell - marker genes", page);
+
+ // Assert the presence of the genes div and that it contains 55 child divs
+ const genesDiv = await page.locator(`div[data-testid="gene-set-genes"]`);
+ await expect(genesDiv).toBeVisible();
+ const childDivs = await genesDiv.locator(
+ 'div[data-testid*=":gene-expand"]'
+ );
+ await expect(childDivs).toHaveCount(55);
+ });
+
+ test("deleting 'enteric smooth muscle cell' geneset and refreshing adds it back", async ({
+ page,
+ }) => {
+ await goToPage(page, pageURLCellGuide);
+
+ await expandMarkerGeneSetsHeader(page);
+
+ await deleteGeneset("enteric smooth muscle cell - marker genes", page);
+
+ // Refresh the page
+ await page.reload();
+
+ await expandMarkerGeneSetsHeader(page);
+
+ // Check if the geneset is added back
+ const genesetPresence = await page.locator(
+ `div[data-testid="geneset"]:has-text("enteric smooth muscle cell")`
+ );
+ await expect(genesetPresence).toBeVisible();
+ });
+});
+
+/* eslint-enable no-await-in-loop -- await in loop is needed to emulate sequential user actions */
diff --git a/client/__tests__/e2e/cell-guide.test.ts-snapshots/Testing-CellGuideCXG-at-http-localhost-5005-d-cellguide-cxgs-example-cxg-page-launched-1-chromium-darwin.txt b/client/__tests__/e2e/cell-guide.test.ts-snapshots/Testing-CellGuideCXG-at-http-localhost-5005-d-cellguide-cxgs-example-cxg-page-launched-1-chromium-darwin.txt
new file mode 100644
index 000000000..1e3db5b59
--- /dev/null
+++ b/client/__tests__/e2e/cell-guide.test.ts-snapshots/Testing-CellGuideCXG-at-http-localhost-5005-d-cellguide-cxgs-example-cxg-page-launched-1-chromium-darwin.txt
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/client/__tests__/e2e/cell-guide.test.ts-snapshots/Testing-CellGuideCXG-at-http-localhost-5005-d-cellguide-cxgs-example-cxg-page-launched-1-chromium-linux.txt b/client/__tests__/e2e/cell-guide.test.ts-snapshots/Testing-CellGuideCXG-at-http-localhost-5005-d-cellguide-cxgs-example-cxg-page-launched-1-chromium-linux.txt
new file mode 100644
index 000000000..1e3db5b59
--- /dev/null
+++ b/client/__tests__/e2e/cell-guide.test.ts-snapshots/Testing-CellGuideCXG-at-http-localhost-5005-d-cellguide-cxgs-example-cxg-page-launched-1-chromium-linux.txt
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/client/__tests__/e2e/cellxgeneActions.ts b/client/__tests__/e2e/cellxgeneActions.ts
index c035fcf27..c67c6eb2b 100644
--- a/client/__tests__/e2e/cellxgeneActions.ts
+++ b/client/__tests__/e2e/cellxgeneActions.ts
@@ -141,6 +141,50 @@ export async function getAllCategoriesAndCounts(
return Object.fromEntries(arrayOfLabelsAndCounts);
}
+export async function expandMarkerGeneSetsHeader(page: Page): Promise {
+ // Locate and expand the 'Marker Gene Sets' header if not already expanded
+ const markerGeneSetsHeader = await page.locator(
+ "h5:has-text('Marker Gene Sets')"
+ );
+ const chevronDownIcon = markerGeneSetsHeader.locator(
+ "svg[data-icon='chevron-down']"
+ );
+ await tryUntil(
+ async () => {
+ if ((await chevronDownIcon.count()) === 0) {
+ await markerGeneSetsHeader.click();
+ }
+ const count = await chevronDownIcon.count();
+ expect(count).toBeGreaterThan(0);
+ },
+ { page }
+ );
+}
+export async function getAllCategories(
+ category: string,
+ page: Page
+): Promise {
+ // these load asynchronously, so we have to wait for the specific category.
+ const categoryRows = await page
+ .getByTestId(`category-${category}`)
+ .getByTestId("categorical-row")
+ .all();
+
+ const arrayOfLabels = await Promise.all(
+ categoryRows.map(async (row): Promise => {
+ const cat = await row
+ .getByTestId("categorical-value")
+ .getAttribute("aria-label");
+
+ if (!cat) throw new Error("category value not found");
+
+ return cat;
+ })
+ );
+
+ return arrayOfLabels;
+}
+
export async function getCellSetCount(
num: number,
page: Page
@@ -405,10 +449,10 @@ export async function checkGenesetDescription(
const editButton = `${genesetName}:edit-genesetName-mode`;
await page.getByTestId(editButton).click({
- force: true
+ force: true,
/**
* (thuang): Don't wait for the default timeout, since we want to fail fast
- */,
+ */
timeout: 1 * 1000,
});
diff --git a/client/__tests__/e2e/data.ts b/client/__tests__/e2e/data.ts
index 1f1d531b8..8957211f6 100644
--- a/client/__tests__/e2e/data.ts
+++ b/client/__tests__/e2e/data.ts
@@ -87,13 +87,7 @@ export const datasets = {
categorical: {
louvain: {
"B cells": "342",
- "CD14+ Monocytes": "0",
- "CD4 T cells": "0",
- "CD8 T cells": "0",
- "Dendritic cells": "0",
- "FCGR3A+ Monocytes": "0",
Megakaryocytes: "15",
- "NK cells": "0",
},
},
lasso: {
@@ -242,31 +236,7 @@ export const datasets = {
categorical: {
cell_type: {
"B cell": "1",
- "CD14-low, CD16-positive monocyte": "0",
- "CD14-positive monocyte": "0",
- "CD8-positive, alpha-beta cytotoxic T cell": "0",
- "activated CD4-positive, alpha-beta T cell": "0",
- adipocyte: "0",
- "cardiac pacemaker cell of sinoatrial node": "0",
- "dendritic cell, human": "0",
- "endocardial cell": "0",
- "endothelial cell": "0",
- "endothelial cell of artery": "0",
- "endothelial cell of lymphatic vessel": "0",
- "fibroblast of cardiac tissue": "0",
"glial cell": "43",
- macrophage: "0",
- "mast cell": "0",
- monocyte: "0",
- "mucosal invariant T cell": "0",
- "naive thymus-derived CD4-positive, alpha-beta T cell": "0",
- neutrophil: "0",
- pericyte: "0",
- "plasma cell": "0",
- "regular atrial cardiac myocyte": "0",
- "smooth muscle cell": "0",
- "smooth muscle cell of the pulmonary artery": "0",
- "vein endothelial cell": "0",
},
},
lasso: {
diff --git a/client/__tests__/e2e/e2e.test.ts b/client/__tests__/e2e/e2e.test.ts
index 13f697fb0..9f64f1928 100644
--- a/client/__tests__/e2e/e2e.test.ts
+++ b/client/__tests__/e2e/e2e.test.ts
@@ -47,6 +47,7 @@ import {
checkGenesetDescription,
assertUndoRedo,
snapshotTestGraph,
+ getAllCategories,
} from "./cellxgeneActions";
import { datasets } from "./data";
@@ -290,6 +291,22 @@ for (const testDataset of testDatasets) {
await snapshotTestGraph(page, testInfo);
}
});
+ test("subset - categories with zero cells are filtered out", async ({
+ page,
+ }) => {
+ await goToPage(page, url);
+ const select = data.subset.cellset1[0];
+ await selectCategory(select.metadata, select.values, page, true);
+ await page.getByTestId("subset-button").click();
+
+ const actualCategories = await getAllCategoriesAndCounts(
+ select.metadata,
+ page
+ );
+ const actualCategoriesKeys = Object.keys(actualCategories).sort();
+ const expectedCateogriesKeys = select.values.slice().sort();
+ expect(actualCategoriesKeys).toEqual(expectedCateogriesKeys);
+ });
test("lasso after subset", async ({ page }, testInfo) => {
await goToPage(page, url);
@@ -659,6 +676,39 @@ for (const testDataset of testDatasets) {
await assertColorLegendLabel(meanExpressionBrushGenesetName, page);
await snapshotTestGraph(page, testInfo);
});
+ test("color by mean expression changes sorting of categories in 'cell_type'", async ({
+ page,
+ }) => {
+ await setup({ option, page, url });
+ const categories = await page
+ .locator('[data-testid*=":category-expand"]')
+ .all();
+ const category = categories[0];
+ const categoryName = (
+ await category.getAttribute("data-testid")
+ )?.split(":")[0] as string;
+
+ await expandCategory(categoryName, page);
+
+ await createGeneset(meanExpressionBrushGenesetName, page);
+ await addGeneToSetAndExpand(
+ meanExpressionBrushGenesetName,
+ "SIK1",
+ page
+ );
+
+ // Check initial order of categories
+ const initialOrder = await getAllCategories(categoryName, page);
+
+ // Color by the geneset mean expression
+ await colorByGeneset(meanExpressionBrushGenesetName, page);
+
+ // Check order of categories after sorting by mean expression
+ const sortedOrder = await getAllCategories(categoryName, page);
+
+ // Expect the sorted order to be different from the initial order
+ expect(sortedOrder).not.toEqual(initialOrder);
+ });
test("diffexp", async ({ page }, testInfo) => {
if (option.withSubset) return;
@@ -1007,17 +1057,3 @@ async function setup({
await subset({ x1: 0.1, y1: 0.15, x2: 0.8, y2: 0.85 }, page);
}
}
-
-// TODO(atarashansky): write this test suite
-// https://github.com/chanzuckerberg/single-cell-explorer/issues/811
-// async function goToCellGuideCxg(page: Page) {
-// await goToPage(page, "http://localhost:3000/d/cellguide-cxgs/example.cxg/");
-// }
-
-// describe(`CellGuide CXG tests`, () => {
-// test.only("author and standard category headers are not present", async ({
-// page,
-// }) => {
-// await goToPage(page, url);
-// });
-// });
diff --git a/client/playwright.config.ts b/client/playwright.config.ts
index 90a555f9f..f670727f3 100644
--- a/client/playwright.config.ts
+++ b/client/playwright.config.ts
@@ -108,7 +108,7 @@ export default defineConfig({
projects: [
{
name: "chromium",
- testMatch: "**/e2e.test.ts",
+ testMatch: "**/e2e/*.test.ts",
use: {
...devices["Desktop Chrome"],
userAgent: devices["Desktop Chrome"].userAgent + CZI_CHECKER,
diff --git a/client/src/components/categorical/category/index.tsx b/client/src/components/categorical/category/index.tsx
index 2b85c7429..9915ee418 100644
--- a/client/src/components/categorical/category/index.tsx
+++ b/client/src/components/categorical/category/index.tsx
@@ -612,7 +612,6 @@ const CategoryRender = React.memo(
colorData={colorData}
colorTable={colorTable}
colorMode={colorMode}
- isCellGuideCxg={isCellGuideCxg}
/>
) : null
}
@@ -631,7 +630,6 @@ interface CategoryValueListProps {
colorData: any;
colorTable: any;
colorMode: string;
- isCellGuideCxg: boolean;
}
const CategoryValueList = React.memo(
({
@@ -643,44 +641,40 @@ const CategoryValueList = React.memo(
colorData,
colorTable,
colorMode,
- isCellGuideCxg,
}: CategoryValueListProps) => {
- let tuples = [...categorySummary.categoryValueIndices];
- if (isCellGuideCxg) {
- tuples = tuples.filter(
- ([, index]) => categorySummary.categoryValueCounts[index] > 0
- );
+ const tuples = [...categorySummary.categoryValueIndices].filter(
+ ([, index]) => categorySummary.categoryValueCounts[index] > 0
+ );
- // sort categorical labels in descending order by average values of whatever
- // continuous metadata is currently being colored by
- if (
- colorMode === "color by continuous metadata" ||
- colorMode === "color by expression" ||
- colorMode === "color by geneset mean expression"
- ) {
- const categoryDataArray = categoryData.col(metadataField).asArray();
- const colorDataArray = colorData.icol(0).asArray();
- const categoryColorMap = new Map();
- categoryDataArray.forEach((category: string, index: number) => {
- if (!categoryColorMap.has(category)) {
- categoryColorMap.set(category, { sum: 0, count: 0 });
- }
- const colorValue = colorDataArray[index];
- const categoryColor = categoryColorMap.get(category);
- categoryColor.sum += colorValue;
- categoryColor.count += 1;
- });
-
- const categoryAverageColor = new Map();
- categoryColorMap.forEach((value, key) => {
- categoryAverageColor.set(key, value.sum / value.count);
- });
- tuples.sort((a, b) => {
- const colorA = categoryAverageColor.get(a[0]);
- const colorB = categoryAverageColor.get(b[0]);
- return colorB - colorA;
- });
- }
+ // sort categorical labels in descending order by average values of whatever
+ // continuous metadata is currently being colored by
+ if (
+ colorMode === "color by continuous metadata" ||
+ colorMode === "color by expression" ||
+ colorMode === "color by geneset mean expression"
+ ) {
+ const categoryDataArray = categoryData.col(metadataField).asArray();
+ const colorDataArray = colorData.icol(0).asArray();
+ const categoryColorMap = new Map();
+ categoryDataArray.forEach((category: string, index: number) => {
+ if (!categoryColorMap.has(category)) {
+ categoryColorMap.set(category, { sum: 0, count: 0 });
+ }
+ const colorValue = colorDataArray[index];
+ const categoryColor = categoryColorMap.get(category);
+ categoryColor.sum += colorValue;
+ categoryColor.count += 1;
+ });
+
+ const categoryAverageColor = new Map();
+ categoryColorMap.forEach((value, key) => {
+ categoryAverageColor.set(key, value.sum / value.count);
+ });
+ tuples.sort((a, b) => {
+ const colorA = categoryAverageColor.get(a[0]);
+ const colorB = categoryAverageColor.get(b[0]);
+ return colorB - colorA;
+ });
/*
Render the value list. If this is a user annotation, we use a flipper
diff --git a/example-dataset/cellguide-cxgs/example.cxg/Xc/__schema/__1708453211855_1708453211855_333a31bf1d47494ab91c53a92dd8dc5b b/example-dataset/cellguide-cxgs/example.cxg/Xc/__schema/__1708453211855_1708453211855_333a31bf1d47494ab91c53a92dd8dc5b
new file mode 100644
index 000000000..98e77464e
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/Xc/__schema/__1708453211855_1708453211855_333a31bf1d47494ab91c53a92dd8dc5b differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/Xr/__schema/__1708453211592_1708453211592_6e6401acdddd4283812d76bcfa50cac4 b/example-dataset/cellguide-cxgs/example.cxg/Xr/__schema/__1708453211592_1708453211592_6e6401acdddd4283812d76bcfa50cac4
new file mode 100644
index 000000000..64664d63e
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/Xr/__schema/__1708453211592_1708453211592_6e6401acdddd4283812d76bcfa50cac4 differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/__tiledb_group.tdb b/example-dataset/cellguide-cxgs/example.cxg/__tiledb_group.tdb
new file mode 100644
index 000000000..e69de29bb
diff --git a/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__commits/__1708453198615_1708453198615_0b65691a91ae463b8dcb0f6e3d632069_21.wrt b/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__commits/__1708453198615_1708453198615_0b65691a91ae463b8dcb0f6e3d632069_21.wrt
new file mode 100644
index 000000000..e69de29bb
diff --git a/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__fragments/__1708453198615_1708453198615_0b65691a91ae463b8dcb0f6e3d632069_21/__fragment_metadata.tdb b/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__fragments/__1708453198615_1708453198615_0b65691a91ae463b8dcb0f6e3d632069_21/__fragment_metadata.tdb
new file mode 100644
index 000000000..5778d523b
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__fragments/__1708453198615_1708453198615_0b65691a91ae463b8dcb0f6e3d632069_21/__fragment_metadata.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__fragments/__1708453198615_1708453198615_0b65691a91ae463b8dcb0f6e3d632069_21/a0.tdb b/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__fragments/__1708453198615_1708453198615_0b65691a91ae463b8dcb0f6e3d632069_21/a0.tdb
new file mode 100644
index 000000000..2f481a1d5
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__fragments/__1708453198615_1708453198615_0b65691a91ae463b8dcb0f6e3d632069_21/a0.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__meta/__1708453199221_1708453199221_6c3b6209f09f482d8594eb4a54631884 b/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__meta/__1708453199221_1708453199221_6c3b6209f09f482d8594eb4a54631884
new file mode 100644
index 000000000..a3d0c3ece
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__meta/__1708453199221_1708453199221_6c3b6209f09f482d8594eb4a54631884 differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__schema/__1708453198377_1708453198377_dec1b2c8c33b4137931f751ead711e55 b/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__schema/__1708453198377_1708453198377_dec1b2c8c33b4137931f751ead711e55
new file mode 100644
index 000000000..6c82441e3
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/cxg_group_metadata/__schema/__1708453198377_1708453198377_dec1b2c8c33b4137931f751ead711e55 differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/emb/__tiledb_group.tdb b/example-dataset/cellguide-cxgs/example.cxg/emb/__tiledb_group.tdb
new file mode 100644
index 000000000..e69de29bb
diff --git a/example-dataset/cellguide-cxgs/example.cxg/emb/umap/__commits/__1708453210908_1708453210908_93ac971d3a1245eaaab3f0aa08557592_21.wrt b/example-dataset/cellguide-cxgs/example.cxg/emb/umap/__commits/__1708453210908_1708453210908_93ac971d3a1245eaaab3f0aa08557592_21.wrt
new file mode 100644
index 000000000..e69de29bb
diff --git a/example-dataset/cellguide-cxgs/example.cxg/emb/umap/__fragments/__1708453210908_1708453210908_93ac971d3a1245eaaab3f0aa08557592_21/__fragment_metadata.tdb b/example-dataset/cellguide-cxgs/example.cxg/emb/umap/__fragments/__1708453210908_1708453210908_93ac971d3a1245eaaab3f0aa08557592_21/__fragment_metadata.tdb
new file mode 100644
index 000000000..2679532c1
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/emb/umap/__fragments/__1708453210908_1708453210908_93ac971d3a1245eaaab3f0aa08557592_21/__fragment_metadata.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/emb/umap/__fragments/__1708453210908_1708453210908_93ac971d3a1245eaaab3f0aa08557592_21/a0.tdb b/example-dataset/cellguide-cxgs/example.cxg/emb/umap/__fragments/__1708453210908_1708453210908_93ac971d3a1245eaaab3f0aa08557592_21/a0.tdb
new file mode 100644
index 000000000..843267088
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/emb/umap/__fragments/__1708453210908_1708453210908_93ac971d3a1245eaaab3f0aa08557592_21/a0.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/emb/umap/__schema/__1708453210605_1708453210605_86ab8b2c418e45378aa1845830dcea01 b/example-dataset/cellguide-cxgs/example.cxg/emb/umap/__schema/__1708453210605_1708453210605_86ab8b2c418e45378aa1845830dcea01
new file mode 100644
index 000000000..9eefafe4c
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/emb/umap/__schema/__1708453210605_1708453210605_86ab8b2c418e45378aa1845830dcea01 differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__commits/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21.wrt b/example-dataset/cellguide-cxgs/example.cxg/obs/__commits/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21.wrt
new file mode 100644
index 000000000..e69de29bb
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/__fragment_metadata.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/__fragment_metadata.tdb
new file mode 100644
index 000000000..a33108bbf
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/__fragment_metadata.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a0.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a0.tdb
new file mode 100644
index 000000000..e9571bde4
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a0.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a0_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a0_var.tdb
new file mode 100644
index 000000000..f46df0b05
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a0_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a1.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a1.tdb
new file mode 100644
index 000000000..f2927ffd6
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a1.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a10.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a10.tdb
new file mode 100644
index 000000000..03c9f044b
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a10.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a10_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a10_var.tdb
new file mode 100644
index 000000000..33bf7920f
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a10_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a11.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a11.tdb
new file mode 100644
index 000000000..9f4310dd5
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a11.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a11_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a11_var.tdb
new file mode 100644
index 000000000..62e96d023
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a11_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a12.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a12.tdb
new file mode 100644
index 000000000..41870ae50
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a12.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a13.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a13.tdb
new file mode 100644
index 000000000..305064d11
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a13.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a14.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a14.tdb
new file mode 100644
index 000000000..e042982f4
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a14.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a15.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a15.tdb
new file mode 100644
index 000000000..85d44f87f
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a15.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a16.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a16.tdb
new file mode 100644
index 000000000..f664932fd
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a16.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a17.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a17.tdb
new file mode 100644
index 000000000..41870ae50
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a17.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a1_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a1_var.tdb
new file mode 100644
index 000000000..d5a13d553
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a1_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a2.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a2.tdb
new file mode 100644
index 000000000..a0411b68e
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a2.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a2_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a2_var.tdb
new file mode 100644
index 000000000..e6b8a9531
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a2_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a3.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a3.tdb
new file mode 100644
index 000000000..70d8ab127
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a3.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a3_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a3_var.tdb
new file mode 100644
index 000000000..c664923e3
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a3_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a4.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a4.tdb
new file mode 100644
index 000000000..cc13f14dd
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a4.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a4_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a4_var.tdb
new file mode 100644
index 000000000..9c278053a
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a4_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a5.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a5.tdb
new file mode 100644
index 000000000..a5b09e666
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a5.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a5_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a5_var.tdb
new file mode 100644
index 000000000..f33d36096
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a5_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a6.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a6.tdb
new file mode 100644
index 000000000..2dac023a8
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a6.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a6_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a6_var.tdb
new file mode 100644
index 000000000..f17d9b66f
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a6_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a7.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a7.tdb
new file mode 100644
index 000000000..a163f4856
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a7.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a7_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a7_var.tdb
new file mode 100644
index 000000000..33fa893b7
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a7_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a8.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a8.tdb
new file mode 100644
index 000000000..fd17b1721
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a8.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a8_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a8_var.tdb
new file mode 100644
index 000000000..ffc13907d
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a8_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a9.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a9.tdb
new file mode 100644
index 000000000..21b431540
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a9.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a9_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a9_var.tdb
new file mode 100644
index 000000000..11c07d340
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__fragments/__1708453199767_1708453199767_97d9a8f157c84ce58b4d5aab9e45fcdc_21/a9_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__meta/__1708453199679_1708453199679_d60bb70ae7f84419aa8a80cc3bd1b2a8 b/example-dataset/cellguide-cxgs/example.cxg/obs/__meta/__1708453199679_1708453199679_d60bb70ae7f84419aa8a80cc3bd1b2a8
new file mode 100644
index 000000000..4f281c1c5
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__meta/__1708453199679_1708453199679_d60bb70ae7f84419aa8a80cc3bd1b2a8 differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__meta/__1709407662319_1709407662319_29983a11acc04bf4aa7aa1c568d539ac b/example-dataset/cellguide-cxgs/example.cxg/obs/__meta/__1709407662319_1709407662319_29983a11acc04bf4aa7aa1c568d539ac
new file mode 100644
index 000000000..105d7d958
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__meta/__1709407662319_1709407662319_29983a11acc04bf4aa7aa1c568d539ac differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/obs/__schema/__1708453199473_1708453199473_4b015ed39ceb47fa8866b4d83becceaf b/example-dataset/cellguide-cxgs/example.cxg/obs/__schema/__1708453199473_1708453199473_4b015ed39ceb47fa8866b4d83becceaf
new file mode 100644
index 000000000..112d7fc0e
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/obs/__schema/__1708453199473_1708453199473_4b015ed39ceb47fa8866b4d83becceaf differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/var/__commits/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21.wrt b/example-dataset/cellguide-cxgs/example.cxg/var/__commits/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21.wrt
new file mode 100644
index 000000000..e69de29bb
diff --git a/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/__fragment_metadata.tdb b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/__fragment_metadata.tdb
new file mode 100644
index 000000000..b7872611c
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/__fragment_metadata.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a0.tdb b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a0.tdb
new file mode 100644
index 000000000..9bbe20a75
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a0.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a0_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a0_var.tdb
new file mode 100644
index 000000000..b14dad490
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a0_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a1.tdb b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a1.tdb
new file mode 100644
index 000000000..8267d0286
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a1.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a2.tdb b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a2.tdb
new file mode 100644
index 000000000..7e7f36d44
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a2.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a2_var.tdb b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a2_var.tdb
new file mode 100644
index 000000000..8833f025d
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a2_var.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a3.tdb b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a3.tdb
new file mode 100644
index 000000000..5daee1361
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a3.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a4.tdb b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a4.tdb
new file mode 100644
index 000000000..6570b5a01
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a4.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a5.tdb b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a5.tdb
new file mode 100644
index 000000000..2d4e231ab
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/var/__fragments/__1708453207860_1708453207860_f4541162e5534aa59d77ab1a482f3dda_21/a5.tdb differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/var/__meta/__1708453207809_1708453207809_b1affd96a555468484707b907d879f5b b/example-dataset/cellguide-cxgs/example.cxg/var/__meta/__1708453207809_1708453207809_b1affd96a555468484707b907d879f5b
new file mode 100644
index 000000000..2984697e0
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/var/__meta/__1708453207809_1708453207809_b1affd96a555468484707b907d879f5b differ
diff --git a/example-dataset/cellguide-cxgs/example.cxg/var/__schema/__1708453207544_1708453207544_dcfccbcd56164df08cef84572c845305 b/example-dataset/cellguide-cxgs/example.cxg/var/__schema/__1708453207544_1708453207544_dcfccbcd56164df08cef84572c845305
new file mode 100644
index 000000000..042993ea8
Binary files /dev/null and b/example-dataset/cellguide-cxgs/example.cxg/var/__schema/__1708453207544_1708453207544_dcfccbcd56164df08cef84572c845305 differ