import * as uchi from "npm:uchimata";
let chromatinScene = uchi.initScene();
let currentStartIndex = 0;
for (const m of chromosomeModels) {
const currentChrLength = m.data.numRows;
chromatinScene = uchi.addStructureToScene(
chromatinScene,
m,
{
scale: 0.005,
color: {
field: "index",
min: currentStartIndex,
max: currentStartIndex + currentChrLength,
colorScale: "Viridis",
},
links: true,
});
currentStartIndex += currentChrLength;
}
const [renderer, canvas] = uchi.display(chromatinScene, { alwaysRedraw: false});
invalidation.then(() => renderer.endDrawing());
display(renderer.getCanvasElement());
const chrNames = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t"];
const chromosomeModels = [];
for (const chr of chrNames) {
const chrId = `chr ${chr}`;
const chrModel = await uchi.selectChromosome(model.data, chrId);
chromosomeModels.push({ data: chrModel });
}
display(chromosomeModels);
const urlStevens = "https://pub-5c3f8ce35c924114a178c6e929fc3ac7.r2.dev/Stevens-2017_GSM2219500_Cell_4_model_1.arrow";
const model = await uchi.loadFromURL(urlStevens, {
center: true,
normalize: true,
});
const chrModel = {
data: await uchi.selectChromosome(model.data, "chr j")
}