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.
- package/dist/component/util/line_model.d.ts +216 -0
- package/dist/{deflate-d8c3587b.js → deflate-e75a387d.js} +1 -1
- package/dist/{deflate-7fab1667.mjs → deflate-f4eb6480.mjs} +1 -1
- package/dist/index-42e52578.js +6188 -0
- package/dist/{index-3da84f0a.mjs → index-ca8e8a08.mjs} +57359 -54668
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/{lerc-0d1adc2b.js → lerc-1703e1aa.js} +1 -1
- package/dist/{lerc-88094759.mjs → lerc-b86782f1.mjs} +1 -1
- package/package.json +1 -1
- package/dist/index-5c0cd055.js +0 -6188
|
@@ -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-
|
|
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;
|