brainsmatics 1.1.63 → 1.1.64

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,216 @@
1
+ import * as THREE from 'three';
2
+ interface SwcJson {
3
+ neuronIdx?: number;
4
+ line: Array<{
5
+ start: number;
6
+ end: number;
7
+ layer: number;
8
+ name?: string;
9
+ }>;
10
+ position: Array<{
11
+ x: number;
12
+ y: number;
13
+ z: number;
14
+ name?: string;
15
+ }>;
16
+ }
17
+ interface NeuronLine {
18
+ lineIdx: number;
19
+ start: number;
20
+ end: number;
21
+ startPos: [number, number, number];
22
+ endPos: [number, number, number];
23
+ startName?: string | null;
24
+ endName?: string | null;
25
+ length: number;
26
+ prev: number | null;
27
+ layer: number;
28
+ }
29
+ interface SplitPoint {
30
+ idx: number;
31
+ pos: [number, number, number];
32
+ dist: number;
33
+ lineIdx: number;
34
+ startSplit?: boolean;
35
+ childLineIdx?: number;
36
+ name?: string | null;
37
+ }
38
+ interface VisualizeResult {
39
+ AxisLines: NeuronLine[];
40
+ splitPointsMap: Record<string, SplitPoint[]>;
41
+ allLineVertices: any[];
42
+ }
43
+ interface PathSegment {
44
+ kind: 'start' | 'end' | 'split';
45
+ pos: [number, number, number];
46
+ name?: string | null;
47
+ dist?: number;
48
+ splitIdx?: number;
49
+ }
50
+ interface PathLineInfo {
51
+ neuronIdx: number;
52
+ lineIdx: number;
53
+ start: number;
54
+ end: number;
55
+ prev: number | null;
56
+ layer: number;
57
+ anchorSplit?: any;
58
+ segments: PathSegment[];
59
+ }
60
+ interface CompletePath {
61
+ pathId: number;
62
+ neuronIdx: number;
63
+ totalLines: number;
64
+ path: PathLineInfo[];
65
+ }
66
+ type Point3 = [number, number, number];
67
+ export declare class LineModel {
68
+ private scene;
69
+ group: THREE.Group;
70
+ constructor(scene: THREE.Scene);
71
+ /**
72
+ * 可视化单个神经元
73
+ * @param swcJson - SWC格式的神经元数据,包含 position 和 line 两个字段
74
+ * @param options - 可选参数
75
+ * @param scale - 缩放比例
76
+ * @param translate - 平移 [x, y, z]
77
+ * @param color - 线条颜色
78
+ */
79
+ visualizeNeuron(swcJson: SwcJson, options?: {
80
+ scale?: number;
81
+ translate?: [number, number, number];
82
+ color?: string | number;
83
+ }): VisualizeResult;
84
+ private euclideanDistSquared;
85
+ private getPointKey;
86
+ clusterMainAxisEndpoints(allMainAxes: any[], allSplitPointsMaps: any[], threshold?: number): {
87
+ endpoints: any[];
88
+ regionToIndices: Map<any, any>;
89
+ neuronStartClusters: never[][];
90
+ neuronEndClusters: never[][];
91
+ };
92
+ edgePathBundleNeuronsWithCluster(allMainAxes: any[], endpoints: any[], neuronStartClusters: any[], neuronEndClusters: any[], setk: number, regionToIndices: Map<any, any>, allSplitPointsMaps: any[], allRegionsSet: Set<any>): {
93
+ bundledSegments: any[];
94
+ unusedRegions: Set<unknown>;
95
+ unusedRegionDetails: any[];
96
+ completePaths: CompletePath[];
97
+ unusedLinesByNeuron: Map<any, any>;
98
+ coveredRegionsSet: Set<unknown>;
99
+ };
100
+ private extractCompletePathsFromBundledSets;
101
+ generateModels(swcDataArray: SwcJson[]): void;
102
+ getModelGroup(): THREE.Group;
103
+ clear(): void;
104
+ drawUnusedRegionPaths(unusedRegionDetails: any, allMainAxes: any, allSplitPointsMaps: any, endpoints: any): {
105
+ pathId: number;
106
+ neuronIdx: any;
107
+ totalLines: number;
108
+ path: {
109
+ neuronIdx: any;
110
+ lineIdx: any;
111
+ start: any;
112
+ end: any;
113
+ prev: any;
114
+ layer: any;
115
+ anchorSplit: null;
116
+ segments: never[];
117
+ }[];
118
+ }[] | undefined;
119
+ groupCompletePathsByEndpoints(completePaths: any[]): {
120
+ groups: any[];
121
+ groupMap: Map<any, any>;
122
+ };
123
+ mergeEndpointGroupsByMeanCoordinate(groups: any, distanceThresholdSq?: number): {
124
+ mergedGroups: {
125
+ groupIndices: number[];
126
+ averageEndCoordinate: any[] | null;
127
+ startRegions: Set<any>;
128
+ endRegions: Set<any>;
129
+ pathIds: any[];
130
+ sum: any;
131
+ count: any;
132
+ }[];
133
+ groupIndexMap: Map<any, any>;
134
+ };
135
+ groupPathsBySimilarityWithinMergedGroups(mergedGroups: any, pathInfoMap: any, options?: {}): {
136
+ mergedGroupClusters: any[];
137
+ pathToMergedSubgroup: Map<any, any>;
138
+ similarityThreshold?: undefined;
139
+ weightRegionSet?: undefined;
140
+ weightOrder?: undefined;
141
+ } | {
142
+ mergedGroupClusters: ({
143
+ mergedGroupIndex: number;
144
+ sourceGroupIndices: any;
145
+ subgroups: never[];
146
+ representativeEndCoordinate?: undefined;
147
+ pathIds?: undefined;
148
+ subgroupCount?: undefined;
149
+ } | {
150
+ mergedGroupIndex: number;
151
+ sourceGroupIndices: any;
152
+ representativeEndCoordinate: any;
153
+ pathIds: unknown[];
154
+ subgroupCount: number;
155
+ subgroups: {
156
+ subgroupIndex: number;
157
+ pathIds: any;
158
+ size: any;
159
+ averageSimilarity: number;
160
+ }[];
161
+ })[];
162
+ pathToMergedSubgroup: Map<any, any>;
163
+ similarityThreshold: any;
164
+ weightRegionSet: any;
165
+ weightOrder: any;
166
+ };
167
+ hslToHexColor(h: any, s: any, l: any): number;
168
+ generateGroupColorAssignments(mergedGroupClusters: any): {
169
+ pathColorMap: Map<any, any>;
170
+ bigGroupColorLegend: any[];
171
+ subgroupColorLegend: any[];
172
+ };
173
+ estimateGroupMergeDistance(allLineVerticesArr: any, sampleSize?: number): {
174
+ distance: number;
175
+ sampledNeurons: {
176
+ neuronIdx: unknown;
177
+ spanX: number;
178
+ spanY: number;
179
+ spanZ: number;
180
+ maxSpan: number;
181
+ diagonal: number;
182
+ }[];
183
+ averageMaxSpan: number;
184
+ averageDiagonal: number;
185
+ };
186
+ buildRegionGraphStructure(allRegionSequences: any): {
187
+ nodes: never[];
188
+ edges: never[];
189
+ totalNeuronCount?: undefined;
190
+ finalNodeCoordinates?: undefined;
191
+ } | {
192
+ nodes: {
193
+ id: any;
194
+ region: any;
195
+ pathCount: any;
196
+ neuronCount: number;
197
+ pathIds: any;
198
+ completePaths: any;
199
+ coordinates: unknown[];
200
+ }[];
201
+ edges: {
202
+ from: any;
203
+ to: any;
204
+ region: any;
205
+ pathCount: any;
206
+ neuronCount: number;
207
+ pathIds: any;
208
+ coordinates: unknown[];
209
+ }[];
210
+ totalNeuronCount: number;
211
+ finalNodeCoordinates: Map<any, any>;
212
+ };
213
+ averagePoint3(points: Point3[]): Point3;
214
+ renderRegionGraph(regionGraphStructure: any): void;
215
+ }
216
+ export {};
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-5c0cd055.js"),t=require("./basedecoder-0503cc54.js");require("react");require("react-dom");class d extends t.BaseDecoder{decodeBlock(e){return r.inflate_1(new Uint8Array(e)).buffer}}exports.default=d;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index-42e52578.js"),t=require("./basedecoder-0503cc54.js");require("react");require("react-dom");class d extends t.BaseDecoder{decodeBlock(e){return r.inflate_1(new Uint8Array(e)).buffer}}exports.default=d;
@@ -1,4 +1,4 @@
1
- import { i as r } from "./index-3da84f0a.mjs";
1
+ import { i as r } from "./index-ca8e8a08.mjs";
2
2
  import { B as o } from "./basedecoder-11034ec6.mjs";
3
3
  import "react";
4
4
  import "react-dom";