79 lines
3.3 KiB
JavaScript
79 lines
3.3 KiB
JavaScript
// Gera manifest-cell.json — as 5 organelas do sistema "citologia", com
|
|
// malha 3D REAL (ao contrário de "histologia", que continua sendo
|
|
// fotomicrografias 2D — ver build-manifest-microscopy.mjs).
|
|
//
|
|
// Fonte: célula HeLa (jrc_hela-2) reconstruída em 3D a partir de FIB-SEM
|
|
// real e segmentada por machine learning pelo projeto CellMap/COSEM do
|
|
// Janelia Research Campus (HHMI) — OpenOrganelle, CC BY 4.0.
|
|
// https://openorganelle.janelia.org/ — DOI da coleção:
|
|
// https://doi.org/10.25378/janelia.c.7456966
|
|
// Extração das malhas: data-pipeline/scripts/fetch-cell-organelles.py
|
|
// Simplificação/compressão final: data-pipeline/scripts/build-cell-model.mjs
|
|
//
|
|
// O nome de cada nó do citologia.glb (definido no script Python) é usado
|
|
// aqui como "meshName" — sem simplificação de nome/exclusão como no
|
|
// esquelético, já que são só 5 peças, cada uma com nome final único.
|
|
import { writeFileSync } from "node:fs";
|
|
import { fileURLToPath } from "node:url";
|
|
import path from "node:path";
|
|
|
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
const MODEL_FILE = "citologia.glb";
|
|
|
|
const CREDIT =
|
|
"Malha 3D real, segmentada por FIB-SEM (célula HeLa, jrc_hela-2) pelo projeto CellMap/Janelia Research Campus — OpenOrganelle, CC BY 4.0.";
|
|
|
|
function structure(slug, namePt, nameEn, description) {
|
|
return {
|
|
system: "citologia",
|
|
slug,
|
|
namePt,
|
|
nameEn,
|
|
synonyms: [],
|
|
description: `${description} ${CREDIT}`,
|
|
regionPath: ["Citologia", "Célula (HeLa) — FIB-SEM real"],
|
|
modelFile: MODEL_FILE,
|
|
meshName: slug,
|
|
};
|
|
}
|
|
|
|
const structures = [
|
|
structure(
|
|
"celula-membrana-plasmatica",
|
|
"Membrana Plasmática",
|
|
"Plasma Membrane",
|
|
"Envoltório que delimita a célula, controlando a entrada e saída de substâncias; formada por uma bicamada fosfolipídica com proteínas de membrana.",
|
|
),
|
|
structure(
|
|
"celula-nucleo",
|
|
"Núcleo",
|
|
"Nucleus",
|
|
"Organela que guarda o DNA da célula e comanda a síntese proteica; a forma irregular e volumosa vista aqui é real e típica de células HeLa (uma linhagem tumoral, com núcleo frequentemente atípico).",
|
|
),
|
|
structure(
|
|
"celula-reticulo-endoplasmatico",
|
|
"Retículo Endoplasmático",
|
|
"Endoplasmic Reticulum",
|
|
"Rede de membranas contínua com o envoltório nuclear, espalhada por todo o citoplasma; participa da síntese de proteínas (porção rugosa) e lipídios, além do armazenamento de cálcio.",
|
|
),
|
|
structure(
|
|
"celula-complexo-de-golgi",
|
|
"Complexo de Golgi",
|
|
"Golgi Apparatus",
|
|
"Conjunto de sáculos membranosos empilhados, tipicamente posicionado perto do núcleo (posição confirmada nesta reconstrução real); processa, modifica e empacota proteínas vindas do retículo endoplasmático.",
|
|
),
|
|
structure(
|
|
"celula-mitocondrias",
|
|
"Mitocôndrias",
|
|
"Mitochondria",
|
|
"População completa de mitocôndrias segmentadas nesta célula — organelas responsáveis pela produção de ATP por respiração celular; note a variação real de tamanho e forma entre elas, incluindo fragmentação, comum em linhagens tumorais.",
|
|
),
|
|
];
|
|
|
|
writeFileSync(
|
|
path.resolve(__dirname, "manifest-cell.json"),
|
|
JSON.stringify({ structures }, null, 2),
|
|
);
|
|
|
|
console.log(`manifest-cell.json gerado com ${structures.length} organelas.`);
|